diff options
author | ZipCPU <dgisselq@ieee.org> | 2018-06-06 14:44:54 -0400 |
---|---|---|
committer | ZipCPU <dgisselq@ieee.org> | 2018-06-06 14:44:54 -0400 |
commit | 16b9a2f1b5ad10aa0b426183b4e071d3afb09e88 (patch) | |
tree | d38578150224f95b8ce539ad2db7e32c92d397ac /ice40 | |
parent | 5e463b8543585e4e1d2d3f80a2e32142015a73dd (diff) | |
download | nextpnr-16b9a2f1b5ad10aa0b426183b4e071d3afb09e88.tar.gz nextpnr-16b9a2f1b5ad10aa0b426183b4e071d3afb09e88.tar.bz2 nextpnr-16b9a2f1b5ad10aa0b426183b4e071d3afb09e88.zip |
Attempt to add JSON parser--not working yet w/ build system
Diffstat (limited to 'ice40')
-rw-r--r-- | ice40/main.cc | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/ice40/main.cc b/ice40/main.cc index 185c7f53..9295bde4 100644 --- a/ice40/main.cc +++ b/ice40/main.cc @@ -20,9 +20,11 @@ #include "mainwindow.h" #include <QApplication> #include <iostream> +#include <fstream> #include "version.h" #include <boost/program_options.hpp> #include "pybindings.h" +#include "jsonparse.h" void svg_dump_el(const GraphicElement &el) { @@ -52,6 +54,7 @@ int main(int argc, char *argv[]) options.add_options()("gui","start gui"); options.add_options()("svg","dump SVG file"); options.add_options()("file", po::value<std::string>(), "python file to execute"); + options.add_options()("json", po::value<std::string>(), "JSON design file to ingest"); options.add_options()("version,v","show version"); options.add_options()("lp384","set device type to iCE40LP384"); options.add_options()("lp1k","set device type to iCE40LP1K"); @@ -66,19 +69,20 @@ int main(int argc, char *argv[]) po::variables_map vm; try { po::parsed_options parsed = po::command_line_parser(argc, argv). - options(options). - positional(pos). - run(); + options(options). + positional(pos). + run(); - po::store(parsed, vm); + po::store(parsed, vm); - po::notify(vm); + po::notify(vm); + } + + catch(std::exception& e) + { + std::cout << e.what() << "\n"; + return 1; } - catch(std::exception& e) - { - std::cout << e.what() << "\n"; - return 1; - } if (vm.count("help") || argc == 1) { @@ -90,7 +94,9 @@ int main(int argc, char *argv[]) if (vm.count("version")) { - std::cout << basename(argv[0]) << " -- Next Generation Place and Route (git sha1 " GIT_COMMIT_HASH_STR ")\n"; + std::cout << basename(argv[0]) + << " -- Next Generation Place and Route (git sha1 " + GIT_COMMIT_HASH_STR ")\n"; return 1; } @@ -199,11 +205,19 @@ int main(int argc, char *argv[]) std::cout << "</svg>\n"; } + if (vm.count("json")) + { + std::string filename = vm["json"].as<std::string>(); + std::istream *f = new std::ifstream(filename); + + parse_json_file(f, filename, &design); + } + if (vm.count("file")) { std::string filename = vm["file"].as<std::string>(); execute_python_file(argv[0],filename.c_str()); - } + } return 0; } |