NCBI C++ ToolKit
msvc_project_context.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef PROJECT_TREE_BUILDER__PROJECT_CONTEXT__HPP
2 #define PROJECT_TREE_BUILDER__PROJECT_CONTEXT__HPP
3 
4 /* $Id: msvc_project_context.hpp 80812 2018-01-11 15:08:49Z gouriano $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Author: Viatcheslav Gorelenkov
30  *
31  */
32 
33 #include<list>
34 #include<string>
35 #include<map>
36 
37 #include "proj_item.hpp"
38 #include "msvc_prj_utils.hpp"
39 #include "msvc_makefile.hpp"
40 #include "proj_builder_app.hpp"
41 
42 #include <corelib/ncbienv.hpp>
43 
45 
46 
47 /////////////////////////////////////////////////////////////////////////////
48 ///
49 /// CMsvcPrjProjectContext --
50 ///
51 /// Abstraction of MSVC project-specific context.
52 ///
53 /// Project context provides project-specific information for
54 /// project generation.
55 
57 {
58 public:
59  //no value type semantics
60  CMsvcPrjProjectContext(const CProjItem& project);
61 
62  //Compiler::General
63  string AdditionalIncludeDirectories(const SConfigInfo& cfg_info) const;
64 
65  const string& ProjectName(void) const
66  {
67  return m_ProjectName;
68  }
69  const string& ProjectId(void) const
70  {
71  return m_ProjectId;
72  }
73 
74 
75  string AdditionalLinkerOptions(const SConfigInfo& cfg_info) const;
76 
77 #if 0
78  string AdditionalLibrarianOptions(const SConfigInfo& cfg_info) const;
79 #endif
80 
81 
82  string AdditionalLibraryDirectories(const SConfigInfo& cfg_info) const;
83 
84 
85  const string& ProjectDir(void) const
86  {
87  return m_ProjectDir;
88  }
89 
91  {
92  return m_ProjType;
93  }
94 
95  const list<string>& SourcesDirsAbs(void) const
96  {
97  return m_SourcesDirsAbs;
98  }
99 
100  const list<string>& IncludeDirsAbs(void) const
101  {
102  return m_IncludeDirsAbs;
103  }
104 
105  const list<string>& InlineDirsAbs(void) const
106  {
107  return m_InlineDirsAbs;
108  }
109 
110 
112 
113 
114  static bool IsRequiresOk(const CProjItem& prj, string* unmet);
115 
116 
117  bool IsConfigEnabled(const SConfigInfo& config, string* unmet, string* unmet_req) const;
118 
119 
120  const list<SCustomBuildInfo>& GetCustomBuildInfo(void) const
121  {
122  return m_CustomBuildInfo;
123  }
124 
125 
126  const list<string> Defines(const SConfigInfo& cfg_info) const;
127 
128 
129  const list<CProjKey>& PreBuilds(void) const
130  {
131  return m_PreBuilds;
132  }
133 
135  {
136  return m_MakeType;
137  }
138 
139  static const set<string>& GetEnabledPackages(const string& config_name)
140  {
141  return s_EnabledPackages[config_name];
142  }
143  static const set<string>& GetDisabledPackages(const string& config_name)
144  {
145  return s_DisabledPackages[config_name];
146  }
147  const string& GetSrcRoot(void) const
148  {
149  return m_SrcRoot;
150  }
151  bool IsPchEnabled(const SConfigInfo& config) const;
152  string GetPchHeader(
153  const string& project_id,
154  const string& source_file_full_path,
155  const string& tree_src_dir, const SConfigInfo& config) const;
156  string GetConfigData( const string& section, const string& entry,
157  const SConfigInfo& config) const;
158 
159 private:
160  // Prohibited to:
164 
165 
167  string m_ProjectId;
168 
170 
171  string m_ProjectDir;
172 
174 
175  list<string> m_SourcesDirsAbs;
176  list<string> m_IncludeDirsAbs;
177  list<string> m_InlineDirsAbs;
178 
179  list<string> m_ProjectIncludeDirs;
180  list<string> m_ProjectLibs;
181 
182  void CreateLibsList(list<string>* libs_list) const;
183 
184  unique_ptr<CMsvcProjectMakefile> m_MsvcProjectMakefile;
185  unique_ptr<CMsvcCombinedProjectMakefile> m_MsvcCombinedProjectMakefile;
186 
188  list<string> m_Requires;
189 
190  list<SCustomBuildInfo> m_CustomBuildInfo;
191 
192  list<string> m_Defines;
193 
194  list<CProjKey> m_PreBuilds;
195 
196  list<string> m_NcbiCLibs;
197 
199 
202  string m_SrcRoot;
204 
207 };
208 
209 
210 /////////////////////////////////////////////////////////////////////////////
211 ///
212 /// CMsvcPrjGeneralContext --
213 ///
214 /// Abstraction of MSVC project "general" context.
215 ///
216 /// Project context provides specific information for particular type of
217 /// project (Exe, Lib, Dll). This information not project-specific, but
218 /// more project type specific.
219 
221 {
222 public:
223  //no value type semantics
225  const CMsvcPrjProjectContext& prj_context);
226 
227  typedef enum {
234 
236 
237  //Configuration::General
238  string OutputDirectory(void) const
239  {
240  return m_OutputDirectory;
241  }
242 
243  string ConfigurationName(void) const
244  {
245  return m_Config.GetConfigFullName();
246  }
247 
249  {
250  return m_MsvcMetaMakefile;
251  }
252 
253 private:
254  /// Prohibited to:
258 
261 
263 };
264 
265 
266 /////////////////////////////////////////////////////////////////////////////
267 ///
268 /// ITool --
269 ///
270 /// Base class for all MSVC tools.
271 ///
272 /// Polymorphic hierarchy base class.
273 
274 struct ITool
275 {
276  virtual string Name(void) const = 0;
277 
278  virtual ~ITool(void)
279  {
280  }
281 };
282 
283 
284 /////////////////////////////////////////////////////////////////////////////
285 ///
286 /// IConfiguration --
287 ///
288 /// "Configuration" interface.
289 ///
290 /// Abstract class.
291 
292 struct IConfiguration : public ITool
293 {
294  //Name : Configuration+'|'+"Win32"
295  virtual string OutputDirectory(void) const = 0;
296  virtual string IntermediateDirectory(void) const = 0;
297  virtual string ConfigurationType(void) const = 0;
298  virtual string CharacterSet(void) const = 0;
299  virtual string PlatformToolset(void) const = 0;
300  virtual string BuildLogFile(void) const = 0;
301 };
302 
303 
304 /////////////////////////////////////////////////////////////////////////////
305 ///
306 /// ICompilerTool --
307 ///
308 /// "CompilerTool" interface.
309 ///
310 /// Abstract class.
311 
312 struct ICompilerTool : public ITool
313 {
314  //string Name : "VCCLCompilerTool"
315  virtual string Optimization(void) const = 0;
316  virtual string AdditionalIncludeDirectories(void) const = 0;
317 
318  // Preprocessor definition:
319  // LIB (Debug) WIN32;_DEBUG;_LIB
320  // LIB (Release) WIN32;NDEBUG;_LIB
321  // APP (Debug) WIN32;_DEBUG;_CONSOLE
322  // APP (Release) WIN32;NDEBUG;_CONSOLE
323  // DLL (Debug) WIN32;_DEBUG;_WINDOWS;_USRDLL;XNCBI_EXPORTS
324  // (project_name(uppercase)+"_EXPORTS")
325 
326  // DLL (Relese) WIN32;NDEBUG;_WINDOWS;_USRDLL;XNCBI_EXPORTS
327  // (project_name(uppercase)+"_EXPORTS")
328 
329  // All configurations:
330  virtual string PreprocessorDefinitions(void) const = 0;
331 
332  virtual string MinimalRebuild(void) const = 0;
333  virtual string BasicRuntimeChecks(void) const = 0;
334  virtual string RuntimeLibrary(void) const = 0;
335  virtual string RuntimeTypeInfo(void) const = 0;
336  virtual string UsePrecompiledHeader(void) const = 0;
337  virtual string WarningLevel(void) const = 0;
338  virtual string Detect64BitPortabilityProblems(void) const = 0;
339  virtual string DebugInformationFormat(void) const = 0;
340  virtual string CompileAs(void) const = 0;
341 
342  //For release - EXE DLL LIB
343  virtual string InlineFunctionExpansion(void) const = 0;
344  virtual string OmitFramePointers(void) const = 0;
345  virtual string StringPooling(void) const = 0;
346  virtual string EnableFunctionLevelLinking(void) const = 0;
347 
348  //Latest additions
349  virtual string OptimizeForProcessor(void) const = 0;
350  virtual string StructMemberAlignment(void) const = 0;
351  virtual string CallingConvention(void) const = 0;
352  virtual string IgnoreStandardIncludePath(void) const = 0;
353  virtual string ExceptionHandling(void) const = 0;
354  virtual string BufferSecurityCheck(void) const = 0;
355  virtual string DisableSpecificWarnings(void) const = 0;
356  virtual string UndefinePreprocessorDefinitions(void) const = 0;
357  virtual string AdditionalOptions(void) const = 0;
358 
359  virtual string GlobalOptimizations(void) const = 0;
360  virtual string FavorSizeOrSpeed(void) const = 0;
361  virtual string BrowseInformation(void) const = 0;
362  virtual string ProgramDataBaseFileName(void) const = 0;
363 };
364 
365 
366 /////////////////////////////////////////////////////////////////////////////
367 ///
368 /// ILinkerTool --
369 ///
370 /// "LinkerTool" interface.
371 ///
372 /// Abstract class.
373 
374 struct ILinkerTool : public ITool
375 {
376  //string Name : "VCLinkerTool"
377  virtual string AdditionalDependencies(void) const = 0;
378  virtual string AdditionalOptions(void) const = 0;
379  virtual string OutputFile(void) const = 0;
380  virtual string LinkIncremental(void) const = 0;
381  virtual string LargeAddressAware(void) const = 0;
382  virtual string GenerateDebugInformation(void) const = 0;
383  virtual string ProgramDatabaseFile(void) const = 0;
384  virtual string SubSystem(void) const = 0;
385  virtual string ImportLibrary(void) const = 0;
386  virtual string TargetMachine(void) const = 0;
387  virtual string ImageHasSafeExceptionHandlers(void) const = 0;
388 
389  //release - EXE DLL +=
390  virtual string OptimizeReferences(void) const = 0;
391  virtual string EnableCOMDATFolding(void) const = 0;
392 
393  //Latest additions
394  virtual string IgnoreAllDefaultLibraries(void) const = 0;
395  virtual string IgnoreDefaultLibraryNames(void) const = 0;
396  virtual string AdditionalLibraryDirectories(void) const = 0;
397  virtual string FixedBaseAddress(void) const = 0;
398  virtual string GenerateManifest(void) const = 0;
399  virtual string EmbedManifest(void) const = 0;
400 };
401 
402 
403 /////////////////////////////////////////////////////////////////////////////
404 ///
405 /// ILibrarianTool --
406 ///
407 /// "LibrarianTool" interface.
408 ///
409 /// Abstract class.
410 
411 struct ILibrarianTool : public ITool
412 {
413  //string Name : "VCLibrarianTool"
414  virtual string AdditionalOptions(void) const = 0;
415  virtual string OutputFile(void) const = 0;
416  virtual string IgnoreAllDefaultLibraries(void) const = 0;
417  virtual string IgnoreDefaultLibraryNames(void) const = 0;
418 
419  //Latest additions
420  virtual string AdditionalLibraryDirectories(void) const = 0;
421  virtual string TargetMachine(void) const = 0;
422 };
423 
424 /// Dummies - Name - only tools. Must present in msvc proj:
425 struct ICustomBuildTool : public ITool
426 {
427  //Name : "VCCustomBuildTool"
428 };
429 struct IMIDLTool : public ITool
430 {
431  //Name : "VCMIDLTool"
432 };
433 struct IPostBuildEventTool : public ITool
434 {
435  //Name : "VCPostBuildEventTool"
436 };
437 
438 /// Not a dummy for lib projects
439 struct IPreBuildEventTool : public ITool
440 {
441  //Name : "VCPreBuildEventTool"
442  virtual string CommandLine(void) const = 0;
443 };
444 
445 struct IPreLinkEventTool : public ITool
446 {
447  //Name : "VCPreLinkEventTool"
448 };
449 
450 
451 /////////////////////////////////////////////////////////////////////////////
452 ///
453 /// IResourceCompilerTool --
454 ///
455 /// "ResourceCompilerTool" interface.
456 ///
457 /// Abstract class.
458 
460 {
461  //Name : "VCResourceCompilerTool"
462  //must be implemented for Dll and Windows apps
463  virtual string AdditionalIncludeDirectories(void) const = 0;
464  virtual string AdditionalOptions(void) const = 0;
465  virtual string Culture(void) const = 0;
466  virtual string PreprocessorDefinitions(void) const = 0;
467 };
468 
469 
470 /// Dummies - Name - only tools. Must present in msvc proj:
472 {
473  //Name : "VCWebServiceProxyGeneratorTool"
474 };
476 {
477  //Name : "VCXMLDataGeneratorTool"
478 };
480 {
481  //Name : "VCManagedWrapperGeneratorTool"
482 };
484 {
485  //Name : "VCAuxiliaryManagedWrapperGeneratorTool"
486 };
487 
488 
489 /////////////////////////////////////////////////////////////////////////////
490 ///
491 /// CMsvcTools --
492 ///
493 /// Abstraction of MSVC 7.10 C++ project build tools.
494 ///
495 /// Provides all tools interfaces. Tools implementation will depends upon
496 /// project general and project specific contexts.
497 
499 {
500 public:
501  CMsvcTools(const CMsvcPrjGeneralContext& general_context,
502  const CMsvcPrjProjectContext& project_context);
503 
504  ~CMsvcTools();
505 
506  IConfiguration * Configuration (void) const;
507  ICompilerTool * Compiler (void) const;
508  ILinkerTool * Linker (void) const;
509  ILibrarianTool * Librarian (void) const;
510  ICustomBuildTool * CustomBuid (void) const;
511  IMIDLTool * MIDL (void) const;
512  IPostBuildEventTool * PostBuildEvent(void) const;
513  IPreBuildEventTool * PreBuildEvent (void) const;
514  IPreLinkEventTool * PreLinkEvent (void) const;
515 
517  ResourceCompiler (void) const;
518 
520  WebServiceProxyGenerator (void) const;
521 
523  XMLDataGenerator (void) const;
524 
526  ManagedWrapperGenerator (void) const;
527 
530 
531 private:
532  unique_ptr<IConfiguration> m_Configuration;
533  unique_ptr<ICompilerTool> m_Compiler;
534  unique_ptr<ILinkerTool> m_Linker;
535  unique_ptr<ILibrarianTool> m_Librarian;
536 
537  unique_ptr<ICustomBuildTool> m_CustomBuid;
538  unique_ptr<IMIDLTool> m_MIDL;
539  unique_ptr<IPostBuildEventTool> m_PostBuildEvent;
540  unique_ptr<IPreBuildEventTool> m_PreBuildEvent;
541  unique_ptr<IPreLinkEventTool> m_PreLinkEvent;
542 
543  unique_ptr<IResourceCompilerTool> m_ResourceCompiler;
544 
545  unique_ptr<IWebServiceProxyGeneratorTool>
547 
548  unique_ptr<IXMLDataGeneratorTool> m_XMLDataGenerator;
549 
550  unique_ptr<IManagedWrapperGeneratorTool>
552 
553  unique_ptr<IAuxiliaryManagedWrapperGeneratorTool>
555 
556  //this is not a value-type class
560 };
561 
562 
564 
565 #endif //PROJECT_TREE_BUILDER__PROJECT_CONTEXT__HPP
Combining of rules and project makefile.
CMsvcMetaMakefile –.
CMsvcPrjGeneralContext –.
CMsvcPrjGeneralContext(const CMsvcPrjGeneralContext &)
string OutputDirectory(void) const
CMsvcPrjGeneralContext & operator=(const CMsvcPrjGeneralContext &)
const CMsvcMetaMakefile & GetMsvcMetaMakefile(void) const
const CMsvcMetaMakefile & m_MsvcMetaMakefile
string ConfigurationName(void) const
CMsvcPrjGeneralContext(void)
Prohibited to:
CMsvcPrjProjectContext –.
string AdditionalLinkerOptions(const SConfigInfo &cfg_info) const
string GetConfigData(const string &section, const string &entry, const SConfigInfo &config) const
bool IsConfigEnabled(const SConfigInfo &config, string *unmet, string *unmet_req) const
string AdditionalLibraryDirectories(const SConfigInfo &cfg_info) const
bool IsPchEnabled(const SConfigInfo &config) const
static map< string, set< string > > s_EnabledPackages
const list< CProjKey > & PreBuilds(void) const
list< SCustomBuildInfo > m_CustomBuildInfo
string AdditionalIncludeDirectories(const SConfigInfo &cfg_info) const
unique_ptr< CMsvcProjectMakefile > m_MsvcProjectMakefile
CMsvcPrjProjectContext(const CMsvcPrjProjectContext &)
const string & ProjectDir(void) const
const list< SCustomBuildInfo > & GetCustomBuildInfo(void) const
static map< string, set< string > > s_DisabledPackages
void CreateLibsList(list< string > *libs_list) const
unique_ptr< CMsvcCombinedProjectMakefile > m_MsvcCombinedProjectMakefile
static const set< string > & GetEnabledPackages(const string &config_name)
string GetPchHeader(const string &project_id, const string &source_file_full_path, const string &tree_src_dir, const SConfigInfo &config) const
static bool IsRequiresOk(const CProjItem &prj, string *unmet)
const list< string > Defines(const SConfigInfo &cfg_info) const
EMakeFileType GetMakeType(void) const
CMsvcPrjProjectContext & operator=(const CMsvcPrjProjectContext &)
const string & ProjectName(void) const
static const set< string > & GetDisabledPackages(const string &config_name)
const list< string > & SourcesDirsAbs(void) const
CProjItem::TProjType ProjectType(void) const
const list< string > & IncludeDirsAbs(void) const
const string & ProjectId(void) const
CProjItem::TProjType m_ProjType
const list< string > & InlineDirsAbs(void) const
const CMsvcCombinedProjectMakefile & GetMsvcProjectMakefile(void) const
const string & GetSrcRoot(void) const
CMsvcTools –.
unique_ptr< ILibrarianTool > m_Librarian
IManagedWrapperGeneratorTool * ManagedWrapperGenerator(void) const
ICustomBuildTool * CustomBuid(void) const
ILinkerTool * Linker(void) const
IXMLDataGeneratorTool * XMLDataGenerator(void) const
IPostBuildEventTool * PostBuildEvent(void) const
unique_ptr< IPostBuildEventTool > m_PostBuildEvent
unique_ptr< IMIDLTool > m_MIDL
CMsvcTools & operator=(const CMsvcTools &)
unique_ptr< IManagedWrapperGeneratorTool > m_ManagedWrapperGenerator
unique_ptr< IXMLDataGeneratorTool > m_XMLDataGenerator
unique_ptr< IResourceCompilerTool > m_ResourceCompiler
unique_ptr< IConfiguration > m_Configuration
IPreLinkEventTool * PreLinkEvent(void) const
ILibrarianTool * Librarian(void) const
unique_ptr< IPreBuildEventTool > m_PreBuildEvent
IWebServiceProxyGeneratorTool * WebServiceProxyGenerator(void) const
unique_ptr< IAuxiliaryManagedWrapperGeneratorTool > m_AuxiliaryManagedWrapperGenerator
ICompilerTool * Compiler(void) const
IAuxiliaryManagedWrapperGeneratorTool * AuxiliaryManagedWrapperGenerator(void) const
CMsvcTools(const CMsvcTools &)
unique_ptr< ICustomBuildTool > m_CustomBuid
IMIDLTool * MIDL(void) const
unique_ptr< ILinkerTool > m_Linker
unique_ptr< IPreLinkEventTool > m_PreLinkEvent
unique_ptr< IWebServiceProxyGeneratorTool > m_WebServiceProxyGenerator
IConfiguration * Configuration(void) const
IResourceCompilerTool * ResourceCompiler(void) const
IPreBuildEventTool * PreBuildEvent(void) const
unique_ptr< ICompilerTool > m_Compiler
CProjItem –.
Definition: proj_item.hpp:54
Definition: map.hpp:338
EMakeFileType
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
Defines unified interface to application:
ICompilerTool –.
virtual string BrowseInformation(void) const =0
virtual string FavorSizeOrSpeed(void) const =0
virtual string OmitFramePointers(void) const =0
virtual string StringPooling(void) const =0
virtual string DisableSpecificWarnings(void) const =0
virtual string CallingConvention(void) const =0
virtual string BasicRuntimeChecks(void) const =0
virtual string OptimizeForProcessor(void) const =0
virtual string Detect64BitPortabilityProblems(void) const =0
virtual string DebugInformationFormat(void) const =0
virtual string RuntimeTypeInfo(void) const =0
virtual string BufferSecurityCheck(void) const =0
virtual string MinimalRebuild(void) const =0
virtual string UndefinePreprocessorDefinitions(void) const =0
virtual string AdditionalIncludeDirectories(void) const =0
virtual string ExceptionHandling(void) const =0
virtual string Optimization(void) const =0
virtual string IgnoreStandardIncludePath(void) const =0
virtual string UsePrecompiledHeader(void) const =0
virtual string GlobalOptimizations(void) const =0
virtual string AdditionalOptions(void) const =0
virtual string StructMemberAlignment(void) const =0
virtual string WarningLevel(void) const =0
virtual string RuntimeLibrary(void) const =0
virtual string CompileAs(void) const =0
virtual string ProgramDataBaseFileName(void) const =0
virtual string PreprocessorDefinitions(void) const =0
virtual string InlineFunctionExpansion(void) const =0
virtual string EnableFunctionLevelLinking(void) const =0
IConfiguration –.
virtual string IntermediateDirectory(void) const =0
virtual string OutputDirectory(void) const =0
virtual string CharacterSet(void) const =0
virtual string ConfigurationType(void) const =0
virtual string PlatformToolset(void) const =0
virtual string BuildLogFile(void) const =0
Dummies - Name - only tools. Must present in msvc proj:
ILibrarianTool –.
virtual string TargetMachine(void) const =0
virtual string AdditionalOptions(void) const =0
virtual string IgnoreDefaultLibraryNames(void) const =0
virtual string AdditionalLibraryDirectories(void) const =0
virtual string OutputFile(void) const =0
virtual string IgnoreAllDefaultLibraries(void) const =0
ILinkerTool –.
virtual string ProgramDatabaseFile(void) const =0
virtual string AdditionalDependencies(void) const =0
virtual string TargetMachine(void) const =0
virtual string OutputFile(void) const =0
virtual string SubSystem(void) const =0
virtual string AdditionalOptions(void) const =0
virtual string ImportLibrary(void) const =0
virtual string EmbedManifest(void) const =0
virtual string GenerateManifest(void) const =0
virtual string ImageHasSafeExceptionHandlers(void) const =0
virtual string LinkIncremental(void) const =0
virtual string AdditionalLibraryDirectories(void) const =0
virtual string OptimizeReferences(void) const =0
virtual string GenerateDebugInformation(void) const =0
virtual string IgnoreDefaultLibraryNames(void) const =0
virtual string EnableCOMDATFolding(void) const =0
virtual string LargeAddressAware(void) const =0
virtual string IgnoreAllDefaultLibraries(void) const =0
virtual string FixedBaseAddress(void) const =0
Not a dummy for lib projects.
virtual string CommandLine(void) const =0
IResourceCompilerTool –.
virtual string PreprocessorDefinitions(void) const =0
virtual string AdditionalOptions(void) const =0
virtual string Culture(void) const =0
virtual string AdditionalIncludeDirectories(void) const =0
ITool –.
virtual string Name(void) const =0
virtual ~ITool(void)
Dummies - Name - only tools. Must present in msvc proj:
SConfigInfo –.
string GetConfigFullName(void) const
Modified on Fri Sep 20 14:58:04 2024 by modify_doxy.py rev. 669887