In Make it's fairly simple to define rules which will only match when a certain file exists:--It might not make sense in a Shake based system, but I'm trying to define a rule that can only build 'modules' which are folder that contain a `module.cfg` file. (And which will then parse the file to build the module.)submodules := $(patsubst %/Makefile,%,$(wildcard */Makefile)).PHONY: $(submodules)$(submodules):$(MAKE) -C $@I've done some reading, and it sounds like Shake may not be suited to this modular style of build where each subfolder in a monorepo defines its own build process and the dependencies between these modules is defined in `*.cfg` files?I've been playing with using `(?>)` to do this, however it doesn't allow `IO`, so I can't have it check that the `module.cfg` file exists.If someone can point me in the right direction for structuring a large monorepo build based on Shake, that'd be great. I've had a lot of trouble finding even simple examples out there—let alone a monorepo with modular builds.Do most people just define all rules in a single build, or do they try to split it up into individual folders next to the code?
You received this message because you are subscribed to the Google Groups "Shake build system" group.
To unsubscribe from this group and stop receiving emails from it, send an email to shake-build-sys...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/shake-build-system/a1b23fd7-a636-409a-aaaa-584cfc66adfb%40googlegroups.com.