import subprocess
import sys
import math
+from distutils import spawn
from migen.fhdl.structure import _Fragment
else:
build_script_contents = "# Autogenerated by Migen\nset -e\n"
- # For backwards compatibility with ISE paths, also
- # look for a version in a subdirectory named "Vivado"
- # under the current directory.
- paths_to_try = [vivado_path, os.path.join(vivado_path, "Vivado")]
- for p in paths_to_try:
- try:
- settings = common.settings(p, ver)
- except OSError:
- continue
- break
- else:
- raise OSError("Unable to locate Vivado directory or settings.")
+ # No reason to search for vivado if it's already in our $PATH
+ # https://stackoverflow.com/questions/377017/test-if-executable-exists-in-python
+ if not spawn.find_executable("vivado"):
+ # For backwards compatibility with ISE paths, also
+ # look for a version in a subdirectory named "Vivado"
+ # under the current directory.
+ paths_to_try = [vivado_path, os.path.join(vivado_path, "Vivado")]
+ for p in paths_to_try:
+ try:
+ settings = common.settings(p, ver)
+ except OSError:
+ continue
+ break
+ else:
+ raise OSError("Unable to locate Vivado directory or settings.")
+ build_script_contents += "source " + settings + "\n"
- build_script_contents += "source " + settings + "\n"
build_script_contents += "vivado -mode batch -source " + build_name + ".tcl\n"
build_script_file = "build_" + build_name + ".sh"
tools.write_to_file(build_script_file, build_script_contents)