cbp2make
Makefile generation tool for Code::Blocks IDE
cbptarget.h
Go to the documentation of this file.
1 /*
2  cbp2make : Makefile generation tool for the Code::Blocks IDE
3  Copyright (C) 2010-2013 Mirai Computing (mirai.computing@gmail.com)
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 //------------------------------------------------------------------------------
20 #ifndef CBP_TARGET_H
21 #define CBP_TARGET_H
22 //------------------------------------------------------------------------------
23 #include "stlstrings.h"
24 #include "platforms.h"
25 //------------------------------------------------------------------------------
26 
27 class TiXmlNode;
28 class TiXmlElement;
29 class CCodeBlocksProject;
30 
32 {
33  public:
35  {
41  ttNative // windows-only ".sys" files
42  };
44  {
49  };
50  private:
78  //
83  public:
84  CString Title(void) const { return m_Title; }
85  CStringList Platforms(void) const { return m_Platforms; }
86  CString Output(void) const { return m_Output; }
87  CString ObjectOutput(void) const { return m_ObjectOutput; }
88  TargetType Type(void) const { return m_Type; }
89  bool AutoPrefix(void) const { return m_AutoPrefix; }
90  bool AutoExtension(void) const { return m_AutoExtension; }
91  CString Compiler(void) const { return m_Compiler; }
97  int& NameCase(void) { return m_NameCase; }
98  CString UCName(void) const { return m_UCName; }
99  CString LCName(void) const { return m_LCName; }
100  CString MFName(void) const { return m_MFName; }
101  CString Name(const CString& Prefix, const int Case) const;
102  CString Name(const CString& Prefix) const;
103  //
105  CString TargetTypeName(void);
109  CString AutoFileExtension(CString& Platform);
110  CString AutoFileExtension(const int Platform);
111  CString MakeOptions(const OptionsRelation Relation,
112  const CString& ProjectOptions,
113  const CString& TargetOptions);
114  CString CFlags(void);
115  CString CFlags(const CString& ProjectCFlags);
116  CString RCFlags(void);
117  CString RCFlags(const CString& ProjectRCFlags);
118  CString LdFlags(void);
119  CString LdFlags(const CString& ProjectLdFlags);
120  CString IncDirs(const CString& IncDirSwitch);
121  CString IncDirs(const CString& ProjectIncDirs, const CString& IncDirSwitch);
122  CString ResDirs(const CString& IncDirSwitch);
123  CString ResDirs(const CString& ProjectResDirs, const CString& IncDirSwitch);
124  CString LibDirs(const CString& LibDirSwitch);
125  CString LibDirs(const CString& ProjectLibDirs, const CString& LibDirSwitch);
126  CString Libs(const CPlatform& Platform, const CString& LinkLibSwitch);
127  CString ExtDeps(void);
128  public:
129  void Clear(void);
130  void Read(const TiXmlElement *TargetRoot);
131  void Show(void);
132  public:
133  CBuildTarget(void);
134  ~CBuildTarget(void);
135 };
136 
138 {
139  //friend class CCodeBlocksProject;
140  private:
143  //
148  public:
149  CString Alias(void) const { return m_Alias; }
150  CStringList& Targets(void) { return m_Targets; }
151  int& NameCase(void) { return m_NameCase; }
152  CString UCName(void) const { return m_UCName; }
153  CString LCName(void) const { return m_LCName; }
154  CString MFName(void) const { return m_MFName; }
155  CString Name(const CString& Prefix) const;
156  CString Name(const CString& Prefix, const int TargetIndex) const;
157  //
158  void Clear(void);
159  void Read(const TiXmlElement *TargetRoot);
160  void Show(void);
161  public:
162  CVirtualTarget(void);
163  ~CVirtualTarget(void);
164 };
165 
166 #endif
167 //------------------------------------------------------------------------------
TargetType Type(void) const
Definition: cbptarget.h:88
CString MakeOptions(const OptionsRelation Relation, const CString &ProjectOptions, const CString &TargetOptions)
Definition: cbptarget.cpp:184
CString UCName(void) const
Definition: cbptarget.h:152
CString Compiler(void) const
Definition: cbptarget.h:91
CString IncDirs(const CString &IncDirSwitch)
Definition: cbptarget.cpp:242
CString m_WorkingDirectory
Definition: cbptarget.h:54
CString Output(void) const
Definition: cbptarget.h:86
CStringList AfterBuildCommands(void) const
Definition: cbptarget.h:94
CString m_UCName
Definition: cbptarget.h:145
CString LdFlags(void)
Definition: cbptarget.cpp:227
CString m_Compiler
Definition: cbptarget.h:60
~CBuildTarget(void)
Definition: cbptarget.cpp:34
TargetType m_Type
Definition: cbptarget.h:57
CStringList m_ResourceCompilerDirectories
Definition: cbptarget.h:70
CString m_Alias
Definition: cbptarget.h:141
Definition: cbptarget.h:31
bool ForceAfterBuildCommands(void) const
Definition: cbptarget.h:96
CString Alias(void) const
Definition: cbptarget.h:149
CString m_LCName
Definition: cbptarget.h:81
CString Title(void) const
Definition: cbptarget.h:84
Definition: cbptarget.h:40
CStringList CompilerDirectories(void) const
Definition: cbptarget.h:92
CString CFlags(void)
Definition: cbptarget.cpp:197
TargetType
Definition: cbptarget.h:34
OptionsRelation m_CompilerOptionsRelation
Definition: cbptarget.h:72
CString AutoFilePrefix(const CPlatform::OS_Type OS)
Definition: cbptarget.cpp:72
bool m_ForceAfterBuildCommands
Definition: cbptarget.h:69
CString MFName(void) const
Definition: cbptarget.h:154
CString m_LCName
Definition: cbptarget.h:146
int m_NameCase
Definition: cbptarget.h:144
Definition: cbptarget.h:37
Definition: stlstrings.h:98
CString m_Title
Definition: cbptarget.h:51
CString m_MFName
Definition: cbptarget.h:147
bool AutoPrefix(void) const
Definition: cbptarget.h:89
CString ExtDeps(void)
Definition: cbptarget.cpp:308
CStringList m_ResourceCompilerOptions
Definition: cbptarget.h:71
int m_NameCase
Definition: cbptarget.h:79
OptionsRelation m_ResourceCompilerOptionsRelation
Definition: cbptarget.h:77
CStringList & Targets(void)
Definition: cbptarget.h:150
CString AutoFileExtension(const CPlatform::OS_Type OS, const CBuildTarget::TargetType Type)
Definition: cbptarget.cpp:123
void Show(void)
Definition: cbptarget.cpp:566
CStringList m_CompilerOptions
Definition: cbptarget.h:61
Definition: cbptarget.h:48
Definition: cbptarget.h:38
CString RCFlags(void)
Definition: cbptarget.cpp:212
CString Libs(const CPlatform &Platform, const CString &LinkLibSwitch)
Definition: cbptarget.cpp:287
bool m_ForceBeforeBuildCommands
Definition: cbptarget.h:68
Definition: stlstrings.h:32
CString Name(const CString &Prefix, const int Case) const
Definition: cbptarget.cpp:544
Definition: cbptarget.h:41
CString m_ObjectOutput
Definition: cbptarget.h:55
Definition: cbptarget.h:137
bool ForceBeforeBuildCommands(void) const
Definition: cbptarget.h:95
CStringList m_LinkerLibraries
Definition: cbptarget.h:64
OptionsRelation m_IncludeDirectoriesRelation
Definition: cbptarget.h:74
CStringList Platforms(void) const
Definition: cbptarget.h:85
CString LCName(void) const
Definition: cbptarget.h:99
CString m_MFName
Definition: cbptarget.h:82
Definition: cbptarget.h:46
Definition: cbptarget.h:39
OptionsRelation m_LibraryDirectoriesRelation
Definition: cbptarget.h:76
CStringList m_AfterBuildCommands
Definition: cbptarget.h:67
OptionsRelation m_ResourceIncludeDirectoriesRelation
Definition: cbptarget.h:75
CString TargetTypeName(void)
Definition: cbptarget.cpp:54
CStringList m_LinkerDirectories
Definition: cbptarget.h:65
Definition: cbptarget.h:47
OptionsRelation
Definition: cbptarget.h:43
CString UCName(void) const
Definition: cbptarget.h:98
CString ObjectOutput(void) const
Definition: cbptarget.h:87
CStringList m_BeforeBuildCommands
Definition: cbptarget.h:66
Project description.
Definition: cbproject.h:39
bool AutoExtension(void) const
Definition: cbptarget.h:90
CStringList m_Platforms
Definition: cbptarget.h:52
int & NameCase(void)
Definition: cbptarget.h:151
Contains platform-specific settings and generates commands from templates.
Definition: platforms.h:34
int & NameCase(void)
Definition: cbptarget.h:97
CString m_UCName
Definition: cbptarget.h:80
OS_Type
Type of Operating System for a platform.
Definition: platforms.h:37
CString MFName(void) const
Definition: cbptarget.h:100
void Clear(void)
Definition: cbptarget.cpp:318
CBuildTarget(void)
Definition: cbptarget.cpp:29
CString OptionsRelationName(const OptionsRelation Relation)
Definition: cbptarget.cpp:59
CString LCName(void) const
Definition: cbptarget.h:153
CStringList m_Targets
Definition: cbptarget.h:142
CString ResDirs(const CString &IncDirSwitch)
Definition: cbptarget.cpp:257
Definition: cbptarget.h:45
Definition: cbptarget.h:36
CStringList BeforeBuildCommands(void) const
Definition: cbptarget.h:93
CStringList m_ExternalDependencies
Definition: cbptarget.h:56
bool m_AutoPrefix
Definition: cbptarget.h:58
CStringList m_CompilerDirectories
Definition: cbptarget.h:62
OptionsRelation m_LinkerOptionsRelation
Definition: cbptarget.h:73
CString m_Output
Definition: cbptarget.h:53
CString LibDirs(const CString &LibDirSwitch)
Definition: cbptarget.cpp:272
void Read(const TiXmlElement *TargetRoot)
Definition: cbptarget.cpp:348
CStringList m_LinkerOptions
Definition: cbptarget.h:63
bool m_AutoExtension
Definition: cbptarget.h:59
Platform / Operating System specific functions.