I needed to build 15 sets of the same firmware, but pass three unique variables for each copy. Zephyr has a solution for this: the Kconfig system. You can declare your own custom symbol, then set the value by passing a command line argument at compile time. Here's how to do this with your own projects.