mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-29 18:52:30 +00:00 
			
		
		
		
	add setenv pass
This commit is contained in:
		
							parent
							
								
									b66897e9b9
								
							
						
					
					
						commit
						8b0f665cc5
					
				
					 4 changed files with 55 additions and 0 deletions
				
			
		|  | @ -52,3 +52,4 @@ OBJS += passes/cmds/box_derive.o | |||
| OBJS += passes/cmds/example_dt.o | ||||
| OBJS += passes/cmds/portarcs.o | ||||
| OBJS += passes/cmds/wrapcell.o | ||||
| OBJS += passes/cmds/setenv.o | ||||
|  |  | |||
							
								
								
									
										49
									
								
								passes/cmds/setenv.cc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								passes/cmds/setenv.cc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | |||
| /*
 | ||||
|  *  yosys -- Yosys Open SYnthesis Suite | ||||
|  * | ||||
|  *  Copyright (C) 2024 N. Engelhardt <nak@yosyshq.com> | ||||
|  * | ||||
|  *  Permission to use, copy, modify, and/or distribute this software for any | ||||
|  *  purpose with or without fee is hereby granted, provided that the above | ||||
|  *  copyright notice and this permission notice appear in all copies. | ||||
|  * | ||||
|  *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
|  *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
|  *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||||
|  *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
|  *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||||
|  *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||||
|  *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "kernel/register.h" | ||||
| #include "kernel/rtlil.h" | ||||
| #include "kernel/log.h" | ||||
| #include <stdlib.h> | ||||
| 
 | ||||
| USING_YOSYS_NAMESPACE | ||||
| PRIVATE_NAMESPACE_BEGIN | ||||
| struct SetenvPass : public Pass { | ||||
| 	SetenvPass() : Pass("setenv", "set an environment variable") { } | ||||
| 	void help() override | ||||
| 	{ | ||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||
| 		log("\n"); | ||||
| 		log("    setenv name value\n"); | ||||
| 		log("\n"); | ||||
| 		log("Set the given environment variable on the current process. String values must be\n"); | ||||
| 		log("passed in double quotes (\").\n"); | ||||
| 		log("\n"); | ||||
| 	} | ||||
| 	void execute(std::vector<std::string> args, [[maybe_unused]] RTLIL::Design *design) override | ||||
| 	{ | ||||
| 		if(args.size() != 3) | ||||
| 			log_cmd_error("Wrong number of arguments given.\n"); | ||||
| 		 | ||||
| 		setenv(args[1].c_str(), args[2].c_str(), 1); | ||||
| 		 | ||||
| 	} | ||||
| } SetenvPass; | ||||
| 
 | ||||
| PRIVATE_NAMESPACE_END | ||||
							
								
								
									
										1
									
								
								tests/verific/setenv.flist
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tests/verific/setenv.flist
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| ${filename} | ||||
							
								
								
									
										4
									
								
								tests/verific/setenv.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								tests/verific/setenv.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| setenv filename case.sv | ||||
| verific -f -sv setenv.flist | ||||
| verific -import top | ||||
| select -assert-mod-count 1 top | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue