mirror of
				https://github.com/davidgiven/fluxengine.git
				synced 2025-10-24 11:11:02 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from build.ab import Rule, normalrule, Targets
 | |
| from build.c import cxxprogram, HostToolchain
 | |
| 
 | |
| encoders = {}
 | |
| 
 | |
| 
 | |
| @Rule
 | |
| def protoencode(self, name, srcs: Targets, proto, symbol):
 | |
|     if proto not in encoders:
 | |
|         r = cxxprogram(
 | |
|             name="protoencode_" + proto,
 | |
|             srcs=["scripts/protoencode.cc"],
 | |
|             cflags=["-DPROTO=" + proto],
 | |
|             deps=[
 | |
|                 "lib+config_proto_lib",
 | |
|                 "tests+test_proto_lib",
 | |
|                 "+protobuf_lib",
 | |
|                 "+fmt_lib",
 | |
|                 "+lib",
 | |
|             ],
 | |
|         )
 | |
|         encoders[proto] = r
 | |
|     else:
 | |
|         r = encoders[proto]
 | |
|     r.materialise()
 | |
| 
 | |
|     normalrule(
 | |
|         replaces=self,
 | |
|         ins=srcs,
 | |
|         outs=[f"{name}.cc"],
 | |
|         deps=[r],
 | |
|         commands=["{deps[0]} {ins} {outs} " + symbol],
 | |
|         label="PROTOENCODE",
 | |
|     )
 | |
| 
 | |
| 
 | |
| cxxprogram(
 | |
|     name="mkdoc",
 | |
|     srcs=["./mkdoc.cc"],
 | |
|     deps=["src/formats", "lib+config_proto_lib", "+lib", "+fmt_lib", "+protobuf_lib"],
 | |
| )
 | |
| 
 | |
| cxxprogram(
 | |
|     name="mkdocindex",
 | |
|     srcs=["./mkdocindex.cc"],
 | |
|     deps=["src/formats", "lib+config_proto_lib", "+lib", "+fmt_lib", "+protobuf_lib"],
 | |
| )
 |