Skip to content

Commit cda2423

Browse files
committed
Added support for code injection comments in commsdsl2c.
1 parent cbad135 commit cda2423

10 files changed

Lines changed: 50 additions & 26 deletions

File tree

app/commsdsl2c/src/CCmake.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,9 @@ bool CCmake::cWriteInternal() const
218218

219219
util::GenReplacementMap repl = {
220220
{"PROJ_NAME", m_cGenerator.genProtocolSchema().genMainNamespace()},
221-
{"APPEND", util::genReadFileContents(util::genPathAddElem(m_cGenerator.genGetCodeDir(), strings::genCmakeListsFileStr()) + strings::genAppendFileSuffixStr())},
221+
{"APPEND", m_cGenerator.genReadScriptCodeInjectCode(strings::genCmakeListsFileStr() + strings::genAppendFileSuffixStr(), "Append here")},
222222
{"SOURCES", util::genStrListToString(sources, "\n", "")},
223-
{"EXTRA_SOURCES", util::genReadFileContents(util::genPathAddElem(m_cGenerator.genGetCodeDir(), strings::genCmakeListsFileStr()) + strings::genSourcesFileSuffixStr())},
223+
{"EXTRA_SOURCES", m_cGenerator.genReadScriptCodeInjectCode(strings::genCmakeListsFileStr() + strings::genSourcesFileSuffixStr(), "Append sources")},
224224
};
225225

226226
auto str = commsdsl::gen::util::genProcessTemplate(Templ, repl, true);

app/commsdsl2c/src/CDoxygen.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ bool CDoxygen::cWriteConfInternal() const
144144

145145
util::GenReplacementMap repl = {
146146
{"PROJ_NAME", m_cGenerator.genProtocolSchema().genDisplayName()},
147-
{"APPEND", util::genReadFileContents(m_cGenerator.cInputAbsPathForDoc(FileName) + strings::genAppendFileSuffixStr())},
147+
{"APPEND", m_cGenerator.genReadScriptCodeInjectCode(m_cGenerator.cInputRelPathForDoc(FileName) + strings::genAppendFileSuffixStr(), "Append here")},
148148
};
149149

150150
return cWriteFileInternal(FileName, util::genProcessTemplate(Templ, repl), m_cGenerator);
@@ -360,7 +360,7 @@ bool CDoxygen::cWriteMainpageInternal() const
360360
util::GenReplacementMap repl = {
361361
{"INPUT", cInputDocInternal()},
362362
{"OUTPUT", cOutputDocInternal()},
363-
{"APPEND", util::genReadFileContents(m_cGenerator.cInputAbsPathForDoc(FileName) + strings::genAppendFileSuffixStr())},
363+
{"APPEND", m_cGenerator.genReadCodeInjectCode(m_cGenerator.cInputRelPathForDoc(FileName) + strings::genAppendFileSuffixStr(), "Append here")},
364364
{"TITLE", "\"C\" Interface for the \"" + dispName + "\" Protocol Definition."},
365365
{"DESC", schemaObj.parseDescription()},
366366
};

app/commsdsl2c/src/CField.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ bool CField::cWriteHeaderInternal() const
595595
{"GENERATED", CGenerator::cFileGeneratedComment()},
596596
{"INCLUDES", cHeaderIncludesInternal()},
597597
{"CODE", cHeaderCode()},
598-
{"APPEND", util::genReadFileContents(generator.cInputAbsHeaderFor(m_genField) + strings::genAppendFileSuffixStr())},
598+
{"APPEND", generator.genReadCodeInjectCode(generator.cInputRelHeaderFor(m_genField) + strings::genAppendFileSuffixStr(), "Append here")},
599599
{"CPP_GUARD_BEGIN", CGenerator::cCppGuardBegin()},
600600
{"CPP_GUARD_END", CGenerator::cCppGuardEnd()},
601601
};
@@ -637,7 +637,7 @@ bool CField::cWriteSrcInternal() const
637637
{"HEADER", generator.cRelHeaderFor(m_genField)},
638638
{"INCLUDES", cSourceIncludesInternal()},
639639
{"CODE", cSourceCode()},
640-
{"APPEND", util::genReadFileContents(generator.cInputAbsSourceFor(m_genField) + strings::genAppendFileSuffixStr())},
640+
{"APPEND", generator.genReadCodeInjectCode(generator.cInputRelSourceFor(m_genField) + strings::genAppendFileSuffixStr(), "Append here")},
641641
};
642642

643643
stream << util::genProcessTemplate(Templ, repl, true);
@@ -696,7 +696,7 @@ std::string CField::cHeaderIncludesInternal() const
696696
auto& cGenerator = CGenerator::cCast(m_genField.genGenerator());
697697
util::GenReplacementMap repl = {
698698
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
699-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(m_genField) + strings::genIncFileSuffixStr())},
699+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(m_genField) + strings::genIncFileSuffixStr(), "Add includes here")},
700700
};
701701

702702
return util::genProcessTemplate(Templ, repl);
@@ -716,7 +716,7 @@ std::string CField::cSourceIncludesInternal() const
716716

717717
util::GenReplacementMap repl = {
718718
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
719-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsSourceFor(m_genField) + strings::genIncFileSuffixStr())},
719+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(m_genField) + strings::genIncFileSuffixStr(), "Add includes here")},
720720
};
721721

722722
return util::genProcessTemplate(Templ, repl);

app/commsdsl2c/src/CFrame.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ bool CFrame::cWriteHeaderInternal() const
191191
{"CPP_GUARD_BEGIN", CGenerator::cCppGuardBegin()},
192192
{"CPP_GUARD_END", CGenerator::cCppGuardEnd()},
193193
{"FRAME", cHeaderFrameCodeInternal()},
194-
{"APPEND", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(*this) + strings::genAppendFileSuffixStr())},
194+
{"APPEND", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(*this) + strings::genAppendFileSuffixStr(), "Append here")},
195195
};
196196

197197
stream << util::genProcessTemplate(Templ, repl, true);
@@ -233,7 +233,7 @@ bool CFrame::cWriteSourceInternal() const
233233
{"INCLUDES", cSourceIncludesInternal()},
234234
{"LAYERS", cSourceLayersCodeInternal()},
235235
{"FRAME", cSourceFrameCodeInternal()},
236-
{"APPEND", util::genReadFileContents(cGenerator.cInputAbsSourceFor(*this) + strings::genAppendFileSuffixStr())},
236+
{"APPEND", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(*this) + strings::genAppendFileSuffixStr(), "Append here")},
237237
};
238238

239239
stream << util::genProcessTemplate(Templ, repl, true);
@@ -308,7 +308,7 @@ std::string CFrame::cHeaderIncludesInternal() const
308308
auto& cGenerator = CGenerator::cCast(genGenerator());
309309
util::GenReplacementMap repl = {
310310
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
311-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(*this) + strings::genIncFileSuffixStr())},
311+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(*this) + strings::genIncFileSuffixStr(), "Add includes here")},
312312
};
313313

314314
return util::genProcessTemplate(Templ, repl);
@@ -488,7 +488,7 @@ std::string CFrame::cSourceIncludesInternal() const
488488
auto& cGenerator = CGenerator::cCast(genGenerator());
489489
util::GenReplacementMap repl = {
490490
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
491-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsSourceFor(*this) + strings::genIncFileSuffixStr())},
491+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(*this) + strings::genIncFileSuffixStr(), "Add includes here")},
492492
};
493493

494494
return util::genProcessTemplate(Templ, repl);

app/commsdsl2c/src/CGenerator.cpp

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,24 +231,44 @@ std::string CGenerator::cAbsPathForDoc(const std::string& name) const
231231
return genGetOutputDir() + '/' + cRelPathForDoc(name);
232232
}
233233

234+
std::string CGenerator::cInputRelHeaderFor(const GenElem& elem) const
235+
{
236+
return strings::genIncludeDirStr() + '/' + cRelHeaderFor(elem);
237+
}
238+
234239
std::string CGenerator::cInputAbsHeaderFor(const GenElem& elem) const
235240
{
236-
return genGetCodeDir() + '/' + strings::genIncludeDirStr() + '/' + cRelHeaderFor(elem);
241+
return genGetCodeDir() + '/' + cInputRelHeaderFor(elem);
242+
}
243+
244+
std::string CGenerator::cInputRelSourceFor(const GenElem& elem) const
245+
{
246+
return cRelSourceFor(elem);
237247
}
238248

239249
std::string CGenerator::cInputAbsSourceFor(const GenElem& elem) const
240250
{
241-
return genGetCodeDir() + '/' + cRelSourceFor(elem);
251+
return genGetCodeDir() + '/' + cInputRelSourceFor(elem);
252+
}
253+
254+
std::string CGenerator::cInputRelPathForDoc(const std::string& name) const
255+
{
256+
return cRelPathForDoc(name);
242257
}
243258

244259
std::string CGenerator::cInputAbsPathForDoc(const std::string& name) const
245260
{
246-
return genGetCodeDir() + '/' + cRelPathForDoc(name);
261+
return genGetCodeDir() + '/' + cInputRelPathForDoc(name);
262+
}
263+
264+
std::string CGenerator::cInputRelRootHeaderFor(const std::string& name) const
265+
{
266+
return strings::genIncludeDirStr() + '/' + cRelRootHeaderFor(name);
247267
}
248268

249269
std::string CGenerator::cInputAbsRootHeaderFor(const std::string& name) const
250270
{
251-
return genGetCodeDir() + '/' + cRelRootHeaderFor(name);
271+
return genGetCodeDir() + '/' + cInputRelRootHeaderFor(name);
252272
}
253273

254274
std::string CGenerator::cNameFor(const GenElem& elem) const

app/commsdsl2c/src/CGenerator.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,13 @@ class CGenerator final : public commsdsl::gen::GenGenerator
7777
std::string cRelPathForDoc(const std::string& name) const;
7878
std::string cAbsPathForDoc(const std::string& name) const;
7979

80+
std::string cInputRelHeaderFor(const GenElem& elem) const;
8081
std::string cInputAbsHeaderFor(const GenElem& elem) const;
82+
std::string cInputRelSourceFor(const GenElem& elem) const;
8183
std::string cInputAbsSourceFor(const GenElem& elem) const;
84+
std::string cInputRelPathForDoc(const std::string& name) const;
8285
std::string cInputAbsPathForDoc(const std::string& name) const;
86+
std::string cInputRelRootHeaderFor(const std::string& name) const;
8387
std::string cInputAbsRootHeaderFor(const std::string& name) const;
8488

8589
std::string cNameFor(const GenElem& elem) const;

app/commsdsl2c/src/CInterface.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ bool CInterface::cWriteHeaderInternal() const
166166
{"DEF", cHeaderCodeInternal()},
167167
{"CPP_GUARD_BEGIN", CGenerator::cCppGuardBegin()},
168168
{"CPP_GUARD_END", CGenerator::cCppGuardEnd()},
169-
{"APPEND", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(*this) + strings::genAppendFileSuffixStr())},
169+
{"APPEND", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(*this) + strings::genAppendFileSuffixStr(), "Append here")},
170170
};
171171

172172
stream << util::genProcessTemplate(Templ, repl, true);
@@ -208,7 +208,7 @@ bool CInterface::cWriteSourceInternal() const
208208
{"INCLUDES", cSourceIncludesInternal()},
209209
{"FIELDS", cSourceFieldsInternal()},
210210
{"CODE", cSourceCodeInternal()},
211-
{"APPEND", util::genReadFileContents(cGenerator.cInputAbsSourceFor(*this) + strings::genAppendFileSuffixStr())},
211+
{"APPEND", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(*this) + strings::genAppendFileSuffixStr(), "Append here")},
212212
};
213213

214214
stream << util::genProcessTemplate(Templ, repl, true);
@@ -337,7 +337,7 @@ std::string CInterface::cHeaderIncludesInternal() const
337337
auto& cGenerator = CGenerator::cCast(genGenerator());
338338
util::GenReplacementMap repl = {
339339
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
340-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(*this) + strings::genIncFileSuffixStr())},
340+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(*this) + strings::genIncFileSuffixStr(), "Add includes here")},
341341
};
342342

343343
return util::genProcessTemplate(Templ, repl);
@@ -450,7 +450,7 @@ std::string CInterface::cSourceIncludesInternal() const
450450
auto& cGenerator = CGenerator::cCast(genGenerator());
451451
util::GenReplacementMap repl = {
452452
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
453-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsSourceFor(*this) + strings::genIncFileSuffixStr())},
453+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(*this) + strings::genIncFileSuffixStr(), "Add includes here")},
454454
};
455455

456456
return util::genProcessTemplate(Templ, repl);

app/commsdsl2c/src/CMessage.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ bool CMessage::cWriteHeaderInternal() const
160160
{"DEF", cHeaderCodeInternal()},
161161
{"CPP_GUARD_BEGIN", CGenerator::cCppGuardBegin()},
162162
{"CPP_GUARD_END", CGenerator::cCppGuardEnd()},
163-
{"APPEND", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(*this) + strings::genAppendFileSuffixStr())},
163+
{"APPEND", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(*this) + strings::genAppendFileSuffixStr(), "Append here")},
164164
};
165165

166166
stream << util::genProcessTemplate(Templ, repl, true);
@@ -202,7 +202,7 @@ bool CMessage::cWriteSourceInternal() const
202202
{"INCLUDES", cSourceIncludesInternal()},
203203
{"FIELDS", cSourceFieldsInternal()},
204204
{"CODE", cSourceCodeInternal()},
205-
{"APPEND", util::genReadFileContents(cGenerator.cInputAbsSourceFor(*this) + strings::genAppendFileSuffixStr())},
205+
{"APPEND", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(*this) + strings::genAppendFileSuffixStr(), "Append here")},
206206
};
207207

208208
stream << util::genProcessTemplate(Templ, repl, true);
@@ -281,7 +281,7 @@ std::string CMessage::cHeaderIncludesInternal() const
281281

282282
util::GenReplacementMap repl = {
283283
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
284-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsHeaderFor(*this) + strings::genIncFileSuffixStr())},
284+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelHeaderFor(*this) + strings::genIncFileSuffixStr(), "Add includes here")},
285285
};
286286

287287
return util::genProcessTemplate(Templ, repl);
@@ -404,7 +404,7 @@ std::string CMessage::cSourceIncludesInternal() const
404404
auto& cGenerator = CGenerator::cCast(genGenerator());
405405
util::GenReplacementMap repl = {
406406
{"INCLUDES", util::genStrListToString(includes, "\n", "\n")},
407-
{"EXTRA", util::genReadFileContents(cGenerator.cInputAbsSourceFor(*this) + strings::genIncFileSuffixStr())},
407+
{"EXTRA", cGenerator.genReadCodeInjectCode(cGenerator.cInputRelSourceFor(*this) + strings::genIncFileSuffixStr(), "Add includes here")},
408408
};
409409

410410
return util::genProcessTemplate(Templ, repl);

app/commsdsl2c/src/CVersion.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ bool CVersion::cWriteHeaderInternal() const
6969
{"VERSION", util::genNumToString(m_cGenerator.genProtocolSchema().genSchemaVersion())},
7070
{"PREFIX", util::genStrToUpper(m_cGenerator.cNamesPrefix())},
7171
{"CODE_VER_DEFINE", cCodeVersionDefineInternal()},
72-
{"APPEND", util::genReadFileContents(m_cGenerator.cInputAbsRootHeaderFor(strings::genVersionFileNameStr()))},
72+
{"APPEND", m_cGenerator.genReadCodeInjectCode(m_cGenerator.cInputRelRootHeaderFor(strings::genVersionFileNameStr()) + strings::genAppendFileSuffixStr(), "Append here")},
7373
};
7474

7575
stream << util::genProcessTemplate(Templ, repl, true);

app/commsdsl2c/test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ foreach (name ${tests})
8484
set (output_tgt ${APP_NAME}.${name}_output_tgt)
8585
add_custom_target(${output_tgt} ALL
8686
COMMAND ${CMAKE_COMMAND} -E remove_directory ${output_dir}.tmp
87-
COMMAND $<TARGET_FILE:${APP_NAME}> -d -s --warn-as-err ${code_input_param} ${msgs_params} ${extra_params} -o ${output_dir}.tmp ${schema_files}
87+
COMMAND $<TARGET_FILE:${APP_NAME}> -d -s --warn-as-err --code-inject-comments ${code_input_param} ${msgs_params} ${extra_params} -o ${output_dir}.tmp ${schema_files}
8888
COMMAND ${CMAKE_COMMAND}
8989
-DGENERATED="${output_dir}.tmp" -DOUTPUT="${output_dir}" -DCLEANUP_DIRS="."
9090
-P "${PROJECT_SOURCE_DIR}/cmake/CopyGenerated.cmake"

0 commit comments

Comments
 (0)