mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	- cibw now builds and uses bison 3.8.2 explicitly on platforms with no or out-of-date bison — AlmaLinux 8 only goes up to Bison 3.0 - cibw environment now includes `OPTFLAGS=-O3` to avoid generating debug info for abc, saving space in memory during linking - setup.py attempts to build `yosys-abc` independently first to avoid memory pressure from gigantic abc link step running in parallel with something else
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| # Copyright (C) 2024 Efabless Corporation
 | |
| #
 | |
| # 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.
 | |
| """
 | |
| This runs the cibuildwheel step from the wheels workflow locally.
 | |
| """
 | |
| 
 | |
| import os
 | |
| import yaml
 | |
| import platform
 | |
| import subprocess
 | |
| from pathlib import Path
 | |
| 
 | |
| __yosys_root__ = Path(__file__).absolute().parents[3]
 | |
| 
 | |
| for source in ["boost", "ffi", "bison"]:
 | |
|     if not (__yosys_root__ / source).is_dir():
 | |
|         print(
 | |
|             "You need to download boost, ffi and bison in a similar manner to wheels.yml first."
 | |
|         )
 | |
|         exit(-1)
 | |
| 
 | |
| with open(__yosys_root__ / ".github" / "workflows" / "wheels.yml") as f:
 | |
|     workflow = yaml.safe_load(f)
 | |
| 
 | |
| env = os.environ.copy()
 | |
| 
 | |
| steps = workflow["jobs"]["build_wheels"]["steps"]
 | |
| cibw_step = None
 | |
| for step in steps:
 | |
|     if (step.get("uses") or "").startswith("pypa/cibuildwheel"):
 | |
|         cibw_step = step
 | |
|         break
 | |
| 
 | |
| for key, value in cibw_step["env"].items():
 | |
|     if key.endswith("WIN") or key.endswith("MAC"):
 | |
|         continue
 | |
|     env[key] = value
 | |
| 
 | |
| env["CIBW_ARCHS"] = os.getenv("CIBW_ARCHS", platform.machine())
 | |
| subprocess.check_call(["cibuildwheel"], env=env)
 |