mirror of
				https://github.com/cclassic/model-ghdl
				synced 2025-10-30 02:12:05 +01:00 
			
		
		
		
	Fixed gtkwave automatic save file
This commit is contained in:
		
							parent
							
								
									7f211ef8a3
								
							
						
					
					
						commit
						4a64ba77a0
					
				
							
								
								
									
										22
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								main.c
									
									
									
									
									
								
							| @ -182,7 +182,7 @@ int run_gtkwave(char *toplevel, char *command, ...) { | ||||
|         vsprintf(cmd, command, argptr); | ||||
|         va_end(argptr); | ||||
| 
 | ||||
|         //printf("RUN_SIM: %s\n", cmd);
 | ||||
|         printf("RUN_SIM: %s\n", cmd); | ||||
| 
 | ||||
|         pid = system2(cmd, NULL, NULL); | ||||
|         //printf("--> PID=%d\n", pid);
 | ||||
| @ -208,11 +208,13 @@ int vsim(int argc, char **argv) | ||||
|     char *text = NULL; | ||||
|     char *work = NULL; | ||||
|     char *toplevel = NULL; | ||||
|     char *gtkwPrefix = NULL; | ||||
| 
 | ||||
|     int i; | ||||
|     char *ptr = NULL; | ||||
|     char *lastPtr; | ||||
|     char workdir[1 K]; | ||||
|     char sourcedir[1 K]; | ||||
|     char *params = NULL; | ||||
|     char *simtime = NULL; | ||||
| 
 | ||||
| @ -222,6 +224,11 @@ int vsim(int argc, char **argv) | ||||
| 
 | ||||
|     gui_init(&argc, &argv); | ||||
| 
 | ||||
|     if (!getcwd(sourcedir, sizeof(sourcedir))) { // Default compile dir is cwd
 | ||||
|         sourcedir[0] = 0; | ||||
|         printf("[W] Could not get cwd!\n"); | ||||
|     } | ||||
| 
 | ||||
|     fp = fopen("/tmp/model-ghdl-vsim","r"); | ||||
|     if (fp) { | ||||
|         fgets(workdir, sizeof(workdir), fp); // lets (ab)use the workdir variable here
 | ||||
| @ -269,6 +276,9 @@ int vsim(int argc, char **argv) | ||||
|             append_string(¶ms, " "); | ||||
|             append_string(¶ms, argv[i]); | ||||
|         } | ||||
|         else if (GETOPT("-gtkwprefix")) { | ||||
|             gtkwPrefix = argv[i]; | ||||
|         } | ||||
|         else { | ||||
| 
 | ||||
|         } | ||||
| @ -276,6 +286,10 @@ int vsim(int argc, char **argv) | ||||
| 
 | ||||
|     chdir(workdir); | ||||
| 
 | ||||
|     if (gtkwPrefix == NULL) { | ||||
|         append_string(>kwPrefix, ""); | ||||
|     } | ||||
| 
 | ||||
|     printf("[I] Compiling...\n"); | ||||
|     if (run_ghdl("ghdl -m --work=%s --workdir=\"%s\" %s %s", work, workdir, params, toplevel)) { | ||||
|         fprintf(stderr, "[E] Compilation failed!"); | ||||
| @ -298,7 +312,7 @@ int vsim(int argc, char **argv) | ||||
|                 showMessage(MESSAGE_ERROR, "Error! Simulation failed.", NULL, NULL); | ||||
|             } | ||||
|             else { | ||||
|                 if (run_gtkwave(toplevel, "gtkwave %s/%s.ghw --save=\"%s.gtkw\"", workdir, toplevel, toplevel)) { // TODO: PATH FOR Savefile
 | ||||
|                 if (run_gtkwave(toplevel, "gtkwave %s/%s.ghw --save=\"%s/%s%s.gtkw\"", workdir, toplevel, sourcedir, gtkwPrefix, toplevel)) { // TODO: PATH FOR Savefile
 | ||||
|                     fprintf(stderr, "[E] Could not open GtkWave!"); | ||||
|                     showMessage(MESSAGE_ERROR, "Error! Could not open GtkWave!", NULL, NULL); | ||||
|                 } | ||||
| @ -323,10 +337,10 @@ int vcom(int argc, char **argv) | ||||
|     char vhdlver[16] = ""; | ||||
|     FILE *fp = NULL; | ||||
| 
 | ||||
|     printf ("[I] Emulating vsim.\n"); | ||||
|     printf ("[I] Emulating vcom.\n"); | ||||
| 
 | ||||
|     if (!getcwd(workdir, sizeof(workdir))) { // Default compile dir is cwd
 | ||||
|         fprintf(stderr, "Error: Could not invoke GHDL!\n"); | ||||
|         fprintf(stderr, "[E] Could not get cwd!\n"); | ||||
|         return 1; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user