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/example_dt.o | ||||||
| OBJS += passes/cmds/portarcs.o | OBJS += passes/cmds/portarcs.o | ||||||
| OBJS += passes/cmds/wrapcell.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