@@ -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