mirror of
				https://github.com/cclassic/model-ghdl
				synced 2025-11-04 02:49:33 +01:00 
			
		
		
		
	Added support for dynamic gtkwave save files using the -gtksave "/path/
to/save/dir"
This commit is contained in:
		@@ -90,12 +90,13 @@ string getSimulationTime() { // Very crude but works (for a proof-of-concept any
 | 
			
		||||
#define GETOPT(cmd) (string(argv[i]) == cmd) && (++i < argc)
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
    string top = "";
 | 
			
		||||
    string work = "";
 | 
			
		||||
    string simtime = "";
 | 
			
		||||
    string top      = "";
 | 
			
		||||
    string work     = "";
 | 
			
		||||
    string simtime  = "";
 | 
			
		||||
    string ghdlargs = "";
 | 
			
		||||
    string wvargs = "";
 | 
			
		||||
    string gtkargs = "";
 | 
			
		||||
    string wvargs   = "";
 | 
			
		||||
    string gtkargs  = "";
 | 
			
		||||
    string gtksave  = "";
 | 
			
		||||
    int i;
 | 
			
		||||
    char tempdir[256] = ""; // Compile dir
 | 
			
		||||
 | 
			
		||||
@@ -120,6 +121,9 @@ int main(int argc, char **argv) {
 | 
			
		||||
        else if (GETOPT("-gtkwave")) {
 | 
			
		||||
            gtkargs = argv[i];
 | 
			
		||||
        }
 | 
			
		||||
        else if (GETOPT("-gtksave")) {
 | 
			
		||||
            gtksave = argv[i];
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            if (argv[i][0] == '-') {
 | 
			
		||||
                cerr << "INFO: Unknown command line opt: " << argv[i] << endl;
 | 
			
		||||
@@ -188,6 +192,9 @@ int main(int argc, char **argv) {
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    cout << "==> All done!" << endl;
 | 
			
		||||
                    if (gtksave != "") {
 | 
			
		||||
                        gtkargs += " --save=\"" + gtksave + "/" + top + ".gtkw\"";
 | 
			
		||||
                    }
 | 
			
		||||
                    string wv = "gtkwave " + string(tempdir) + "/" + top + ".ghw " + gtkargs + " &";
 | 
			
		||||
                    if (run("pidof gtkwave")) {
 | 
			
		||||
                        if (system(wv.c_str())) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user