Przeglądaj źródła

Do not generate required-header in C code generator if it is not required.

markus.muehlbrandt@gmail.com 13 lat temu
rodzic
commit
5e3260383e

+ 5 - 1
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/CSCTGenerator.xtend

@@ -28,13 +28,17 @@ class CSCTGenerator implements IExecutionFlowGenerator {
 	@Inject extension Statemachine
 	@Inject extension Statemachine
 	@Inject extension StatemachineC
 	@Inject extension StatemachineC
 	@Inject extension StatemachineRequired
 	@Inject extension StatemachineRequired
+	@Inject extension Navigation
 	
 	
 	override generate(ExecutionFlow flow, GeneratorEntry entry, IFileSystemAccess fsa) {
 	override generate(ExecutionFlow flow, GeneratorEntry entry, IFileSystemAccess fsa) {
 
 
 		flow.generateTypesH(flow.sourceElement as Statechart, fsa, entry)
 		flow.generateTypesH(flow.sourceElement as Statechart, fsa, entry)
 		
 		
 		flow.generateStatemachineH(flow.sourceElement as Statechart, fsa, entry)
 		flow.generateStatemachineH(flow.sourceElement as Statechart, fsa, entry)
-		flow.generateStatemachineClientH(flow.sourceElement as Statechart, fsa, entry)
+		
+		if (flow.timed || !flow.operations.empty) {
+			flow.generateStatemachineClientH(flow.sourceElement as Statechart, fsa, entry)
+		}
 
 
 		flow.generateStatemachineC(flow.sourceElement as Statechart, fsa, entry)
 		flow.generateStatemachineC(flow.sourceElement as Statechart, fsa, entry)
 
 

+ 3 - 2
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/StatemachineC.xtend

@@ -40,8 +40,9 @@ class StatemachineC {
 		#include <string.h>
 		#include <string.h>
 		#include "«typesModule.h»"
 		#include "«typesModule.h»"
 		#include "«module.h»"
 		#include "«module.h»"
-		#include "«module.client.h»"
-
+		«IF timed || !it.operations.empty»
+			#include "«module.client.h»"
+		«ENDIF»
 		/*! \file Implementation of the state machine '«name»'
 		/*! \file Implementation of the state machine '«name»'
 		*/
 		*/