80 PVecString templatedef;
82 ProjectParam projectParam;
83 projectParam.configFile = PPath(
"");
84 projectParam.outputTestDir = PPath(
"./");
85 projectParam.outputSourceDir = PPath(
"./");
86 classMode.getValue(className,
"name");
87 classMode.getValue(projectParam.configFile,
"config");
88 classMode.getValue(templatedef,
"template");
89 classMode.getValue(projectParam.outputTestDir,
"testdir");
90 classMode.getValue(projectParam.outputSourceDir,
"outputpath");
92 GeneratorMode & mode = projectParam.mode;
93 mode.enableSetter =
true;
94 mode.enableGetter =
true;
95 mode.enableCopy =
true;
96 mode.enableFromString =
true;
97 mode.enableDataStream = classMode.isOptionExist(
"datastream");
98 mode.enableTypeStream = classMode.isOptionExist(
"typestream");
99 mode.enableConfigStream = classMode.isOptionExist(
"configstream");
100 mode.enableCheckStream = classMode.isOptionExist(
"checkstream");
101 mode.enableUnitTest = classMode.isOptionExist(
"tests");
103 PTraitBackendManager manager;
104 manager.addTraitBackend<CppTraitFromString>();
105 manager.addTraitBackend<CppTraitCopy>();
106 manager.addTraitBackend<CppTraitSetter>();
107 manager.addTraitBackend<CppTraitGetter>();
108 manager.addTraitBackend<CppTraitTypeStream>();
109 manager.addTraitBackend<CppTraitDataStream>();
110 manager.addTraitBackend<CppTraitConfigStream>();
111 manager.addTraitBackend<CppTraitCheckStream>();
112 if(projectParam.configFile !=
""){
114 className = projectParam.configFile.getFileName().eraseExtension();
116 classMode.getValue(projectParam.name,
"projectname");
118 PDataConfig dataConfig;
119 dataConfig.setFileName(projectParam.configFile);
120 if(!parserClassConfig(dataConfig.getVecClassConfig(), dataConfig.getVecInclude(), projectParam.configFile)){
121 std::cerr <<
"createClass : unexisting configuration file '"<<projectParam.configFile<<
"'" << std::endl;
124 projectParam.vecDataConfig.push_back(dataConfig);
125 if(!generator_class_full(manager, projectParam)){
126 std::cerr <<
"createClass : can't save file '"<<className<<
"'[.h or .cpp] with configuration file '"<<projectParam.configFile<<
"'" << std::endl;
131 std::cerr <<
"createClass : cannot create class with empty name" << std::endl;
134 PVecClassConfig vecClassConfig;
135 PClassConfig classConfig;
136 classConfig.setName(className);
138 classConfig.setListTemplate(templatedef);
140 vecClassConfig.push_back(classConfig);
141 if(!generator_class_cpp(manager, vecClassConfig, projectParam.outputSourceDir, className, projectParam.mode, PVecPath())){
142 std::cerr <<
"createClass : can't save file '"<<className<<
"'[.h or .cpp]" << std::endl;
166 PPath descriptionFile;
167 PVecPath vecConfigFile;
169 projectMode.getValue(vecConfigFile,
"config");
170 projectMode.getValue(descriptionFile,
"description");
171 projectMode.getValue(projectType,
"type");
174 mode.enableDataStream = projectMode.isOptionExist(
"datastream");
175 mode.enableTypeStream = projectMode.isOptionExist(
"typestream");
176 mode.enableConfigStream = projectMode.isOptionExist(
"configstream");
177 mode.enableCheckStream = projectMode.isOptionExist(
"checkstream");
178 mode.enableUnitTest = projectMode.isOptionExist(
"tests");
180 return simple_project_generator(descriptionFile, vecConfigFile, projectType, mode);
int main(int argc, char **argv)
bool createProjectSource(const OptionMode &projectMode)
Create project.
bool createClass(const OptionMode &classMode)
Class creator.
OptionParser createOptionParser()
Create the OptionParser of this program.
bool createHeaderSource(const OptionMode &sourceMode)
Create header and source file name.