diff --git a/etc/api/shared.yaml b/etc/api/shared.yaml index 93f404d589..b5fe2553c9 100644 --- a/etc/api/shared.yaml +++ b/etc/api/shared.yaml @@ -13,6 +13,10 @@ api: - name: youtube version: v3 base_path: "etc/api" + templates: + # all output directories are relative to the one set for the respective API + - source: cargo.toml + # output_dir: optional - not there if unset cargo: build_version: "0.0.1" authors: diff --git a/src/mako/deps.mako b/src/mako/deps.mako index 32acf2556c..6f7f15b09f 100644 --- a/src/mako/deps.mako +++ b/src/mako/deps.mako @@ -8,11 +8,16 @@ gen_root = directories.output + '/' + a.name + '_' + a.version api_name = a.name + a.version api_clean = api_name + '-clean' + # source, destination + sds = [(directories.mako_src + '/' + i.source + '.mako', gen_root + i.get('output_dir', '') + '/' + i.source) + for i in api.templates] + api_json = directories.api_base + '/' + a.name + '/' + a.version + '/' + a.name + '-api.json' + api_json_inputs = api_json + " $(API_SHARED_INFO)" api_info.append((api_name, api_clean, gen_root)) %>\ -${gen_root}: ${directories.api_base}/${a.name}/${a.version}/${a.name}-api.json $(API_SHARED_INFO) +${gen_root}: ${' '.join(i[0] for i in sds)} ${api_json_inputs} @mkdir -p $@ - $(TPL) -io ${directories.mako_src}/cargo.toml.mako=$@/cargo.toml --data-files $^ + $(TPL) -io ${' '.join("%s=%s" % (s, d) for s, d in sds)} --data-files ${api_json_inputs} ${api_name}: ${gen_root}