@@ -40,6 +40,7 @@ class ProjMgrCbuild : public ProjMgrCbuildBase {
4040 void SetBooksNode (YAML::Node node, const std::vector<BookItem>& books, const std::string& dir);
4141 void SetDebugConfigNode (YAML::Node node, const ContextItem* context);
4242 void SetPLMStatus (YAML::Node node, const ContextItem* context, const string& file);
43+ void SetWestNode (YAML::Node node, const ContextItem* context);
4344 bool m_ignoreRteFileMissing;
4445};
4546
@@ -85,11 +86,11 @@ void ProjMgrCbuild::SetContextNode(YAML::Node contextNode, const ContextItem* co
8586 }
8687 SetBooksNode (contextNode[YAML_DEVICE_BOOKS], context->deviceBooks , context->directories .cbuild );
8788 SetDebugConfigNode (contextNode[YAML_DBGCONF], context);
88- if (!context->imageOnly ) {
89+ if (!context->imageOnly && !context-> westOn ) {
8990 SetProcessorNode (contextNode[YAML_PROCESSOR], context->targetAttributes );
9091 }
9192 SetPacksNode (contextNode[YAML_PACKS], context);
92- if (!context->imageOnly ) {
93+ if (!context->imageOnly && !context-> westOn ) {
9394 SetControlsNode (contextNode, context, context->controls .processed );
9495 vector<string> defines;
9596 if (context->rteActiveTarget != nullptr ) {
@@ -108,7 +109,14 @@ void ProjMgrCbuild::SetContextNode(YAML::Node contextNode, const ContextItem* co
108109 }
109110 }
110111 SetOutputDirsNode (contextNode[YAML_OUTPUTDIRS], context);
111- SetOutputNode (contextNode[YAML_OUTPUT], context);
112+ }
113+ if (context->westOn ) {
114+ string outDir = context->directories .outdir ;
115+ RteFsUtils::NormalizePath (outDir, context->directories .cprj );
116+ SetNodeValue (contextNode[YAML_OUTPUTDIRS][YAML_OUTPUT_OUTDIR], FormatPath (outDir, context->directories .cbuild ));
117+ }
118+ SetOutputNode (contextNode[YAML_OUTPUT], context);
119+ if (!context->imageOnly && !context->westOn ) {
112120 SetComponentsNode (contextNode[YAML_COMPONENTS], context);
113121 SetApisNode (contextNode[YAML_APIS], context);
114122 SetGeneratorsNode (contextNode[YAML_GENERATORS], context);
@@ -117,6 +125,9 @@ void ProjMgrCbuild::SetContextNode(YAML::Node contextNode, const ContextItem* co
117125 SetConstructedFilesNode (contextNode[YAML_CONSTRUCTEDFILES], context);
118126 }
119127 SetLicenseInfoNode (contextNode[YAML_LICENSES], context);
128+ if (context->westOn ) {
129+ SetWestNode (contextNode[YAML_WEST], context);
130+ }
120131}
121132
122133void ProjMgrCbuild::SetComponentsNode (YAML::Node node, const ContextItem* context) {
@@ -590,3 +601,12 @@ bool ProjMgrYamlEmitter::GenerateCbuild(ContextItem* context,
590601 context->needRebuild = NeedRebuild (filename, rootNode);
591602 return WriteFile (rootNode, filename, context->name );
592603}
604+
605+ void ProjMgrCbuild::SetWestNode (YAML::Node node, const ContextItem* context) {
606+ SetNodeValue (node[YAML_PROJECT_ID], context->west .projectId );
607+ SetNodeValue (node[YAML_APP_PATH], FormatPath (context->west .app , context->directories .cbuild ));
608+ SetNodeValue (node[YAML_BOARD], context->west .board );
609+ SetNodeValue (node[YAML_DEVICE], context->west .device );
610+ SetDefineNode (node[YAML_WEST_DEFS], context->west .westDefs );
611+ SetNodeValue (node[YAML_WEST_OPT], context->west .westOpt );
612+ }
0 commit comments