diff options
Diffstat (limited to 'src/device/meson.build')
-rw-r--r-- | src/device/meson.build | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/src/device/meson.build b/src/device/meson.build index 9bb9b69..b3df933 100644 --- a/src/device/meson.build +++ b/src/device/meson.build @@ -1,17 +1,48 @@ fw_image = 'fw.bin' +decl = 'const char * const %s = "%s";\n' if get_option('fwbuild') espmake = find_program('espmake') + printf = find_program('printf') + cat = find_program('cat') + cp = find_program('cp') - sourcedir = meson.current_source_dir() fw_filenames = ['main.ino'] - fw_sources = files(fw_filenames) + fw_true_sources = files(fw_filenames) + + sourcedir = meson.current_source_dir() + builddir = meson.current_build_dir() + + fw_conf_ssid = custom_target('fw_conf_ssid', + output : ['conf_ssid'], + capture : true, + command : [printf, decl, 'ssid', get_option('ssid')]) + + fw_conf_pass = custom_target('fw_conf_pass', + output : ['conf_pass'], + capture : true, + command : [printf, decl, 'password', get_option('password')]) + + fw_conf = custom_target('fw_conf', + output : ['conf.c'], + capture : true, + command : [cat, fw_conf_ssid, fw_conf_pass]) + + fw_sources = custom_target('fw_sources', + output : fw_filenames, + input : fw_true_sources, + command : [cp, '@INPUT@', '@OUTDIR@/']) + fw = custom_target('fw', output : fw_image, - input : fw_sources, - command : [espmake, '-C', sourcedir, '&&', 'cp', '/tmp/mkESP/main_d1_mini/main.bin', '@OUTDIR@/' + fw_image], install : true, install_dir : resource_dir) + input : [fw_sources, fw_conf], + command : [espmake, '-C', builddir, '&&', cp, '/tmp/mkESP/main_d1_mini/main.bin', '@OUTDIR@/' + fw_image], + install : true, + install_dir : resource_dir) if get_option('fwflash') esptool = find_program('esptool.py') - run_target('flash_fw', depends : fw, command : [esptool, 'write_flash', '0x0', fw]) + run_target('flash_fw', + depends : fw, + command : [esptool, 'write_flash', '0x0', fw]) endif endif |