Use all-uppercase toolchain_env_var names.
Accepts previous case for backwards compatibility. Fixes #728.
This commit is contained in:
parent
db24a14b57
commit
af7c11441d
|
@ -69,13 +69,20 @@ class Platform(ResourceManager, metaclass=ABCMeta):
|
||||||
yield filename
|
yield filename
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _deprecated_toolchain_env_var(self):
|
def _deprecated_toolchain_env_vars(self):
|
||||||
return f"NMIGEN_ENV_{tool_env_var(self.toolchain)}"
|
return (
|
||||||
|
f"NMIGEN_ENV_{self.toolchain}",
|
||||||
|
f"AMARANTH_ENV_{self.toolchain}",
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _toolchain_env_var(self):
|
def _toolchain_env_var(self):
|
||||||
return f"AMARANTH_ENV_{tool_env_var(self.toolchain)}"
|
return f"AMARANTH_ENV_{tool_env_var(self.toolchain)}"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _all_toolchain_env_vars(self):
|
||||||
|
return self._deprecated_toolchain_env_vars + (self._toolchain_env_var,)
|
||||||
|
|
||||||
def build(self, elaboratable, name="top",
|
def build(self, elaboratable, name="top",
|
||||||
build_dir="build", do_build=True,
|
build_dir="build", do_build=True,
|
||||||
program_opts=None, do_program=False,
|
program_opts=None, do_program=False,
|
||||||
|
@ -92,8 +99,8 @@ class Platform(ResourceManager, metaclass=ABCMeta):
|
||||||
# may fail.
|
# may fail.
|
||||||
# This is OK because even if `require_tool` succeeds, the toolchain might be broken anyway.
|
# This is OK because even if `require_tool` succeeds, the toolchain might be broken anyway.
|
||||||
# The check only serves to catch common errors earlier.
|
# The check only serves to catch common errors earlier.
|
||||||
if do_build and (self._deprecated_toolchain_env_var not in os.environ and
|
got_env_var = any(v in os.environ for v in self._all_toolchain_env_vars)
|
||||||
self._toolchain_env_var not in os.environ):
|
if do_build and not got_env_var:
|
||||||
for tool in self.required_tools:
|
for tool in self.required_tools:
|
||||||
require_tool(tool)
|
require_tool(tool)
|
||||||
|
|
||||||
|
@ -108,8 +115,7 @@ class Platform(ResourceManager, metaclass=ABCMeta):
|
||||||
self.toolchain_program(products, name, **(program_opts or {}))
|
self.toolchain_program(products, name, **(program_opts or {}))
|
||||||
|
|
||||||
def has_required_tools(self):
|
def has_required_tools(self):
|
||||||
if (self._deprecated_toolchain_env_var in os.environ or
|
if any(v in os.environ for v in self._all_toolchain_env_vars):
|
||||||
self._toolchain_env_var in os.environ):
|
|
||||||
return True
|
return True
|
||||||
return all(has_tool(name) for name in self.required_tools)
|
return all(has_tool(name) for name in self.required_tools)
|
||||||
|
|
||||||
|
@ -275,15 +281,17 @@ class TemplatedPlatform(Platform):
|
||||||
"build_{{name}}.sh": """
|
"build_{{name}}.sh": """
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
[ -n "${{platform._deprecated_toolchain_env_var}}" ] && . "${{platform._deprecated_toolchain_env_var}}"
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
[ -n "${{platform._toolchain_env_var}}" ] && . "${{platform._toolchain_env_var}}"
|
[ -n "${{var}}" ] && . "${{var}}"
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
"build_{{name}}.bat": """
|
"build_{{name}}.bat": """
|
||||||
@rem {{autogenerated}}
|
@rem {{autogenerated}}
|
||||||
{{quiet("@echo off")}}
|
{{quiet("@echo off")}}
|
||||||
if defined {{platform._deprecated_toolchain_env_var}} call %{{platform._deprecated_toolchain_env_var}}%
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
if defined {{platform._toolchain_env_var}} call %{{platform._toolchain_env_var}}%
|
if defined {{var}} call %{{var}}%
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("bat")}}
|
{{emit_commands("bat")}}
|
||||||
""",
|
""",
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,16 +84,13 @@ class IntelPlatform(TemplatedPlatform):
|
||||||
**TemplatedPlatform.build_script_templates,
|
**TemplatedPlatform.build_script_templates,
|
||||||
"build_{{name}}.sh": r"""
|
"build_{{name}}.sh": r"""
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
if [ -n "${{platform._deprecated_toolchain_env_var}}" ]; then
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
QUARTUS_ROOTDIR=$(dirname $(dirname "${{platform._deprecated_toolchain_env_var}}"))
|
if [ -n "${{var}}" ]; then
|
||||||
|
QUARTUS_ROOTDIR=$(dirname $(dirname "${{var}}"))
|
||||||
# Quartus' qenv.sh does not work with `set -e`.
|
# Quartus' qenv.sh does not work with `set -e`.
|
||||||
. "${{platform._deprecated_toolchain_env_var}}"
|
. "${{var}}"
|
||||||
fi
|
|
||||||
if [ -n "${{platform._toolchain_env_var}}" ]; then
|
|
||||||
QUARTUS_ROOTDIR=$(dirname $(dirname "${{platform._toolchain_env_var}}"))
|
|
||||||
# Quartus' qenv.sh does not work with `set -e`.
|
|
||||||
. "${{platform._toolchain_env_var}}"
|
|
||||||
fi
|
fi
|
||||||
|
{% endfor %}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
|
|
|
@ -189,14 +189,12 @@ class LatticeECP5Platform(TemplatedPlatform):
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
||||||
if [ -n "${{platform._deprecated_toolchain_env_var}}" ]; then
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
bindir=$(dirname "${{platform._deprecated_toolchain_env_var}}")
|
if [ -n "${{var}}" ]; then
|
||||||
. "${{platform._deprecated_toolchain_env_var}}"
|
bindir=$(dirname "${{var}}")
|
||||||
fi
|
. "${{var}}"
|
||||||
if [ -n "${{platform._toolchain_env_var}}" ]; then
|
|
||||||
bindir=$(dirname "${{platform._toolchain_env_var}}")
|
|
||||||
. "${{platform._toolchain_env_var}}"
|
|
||||||
fi
|
fi
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
"{{name}}.v": r"""
|
"{{name}}.v": r"""
|
||||||
|
|
|
@ -180,31 +180,22 @@ class LatticeICE40Platform(TemplatedPlatform):
|
||||||
"build_{{name}}.sh": r"""
|
"build_{{name}}.sh": r"""
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
if [ -n "${{platform._deprecated_toolchain_env_var}}" ]; then
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
|
if [ -n "${{var}}" ]; then
|
||||||
# LSE environment
|
# LSE environment
|
||||||
export LD_LIBRARY_PATH=${{platform._deprecated_toolchain_env_var}}/LSE/bin/lin64:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${{var}}/LSE/bin/lin64:$LD_LIBRARY_PATH
|
||||||
export PATH=${{platform._deprecated_toolchain_env_var}}/LSE/bin/lin64:$PATH
|
export PATH=${{var}}/LSE/bin/lin64:$PATH
|
||||||
export FOUNDRY=${{platform._deprecated_toolchain_env_var}}/LSE
|
export FOUNDRY=${{var}}/LSE
|
||||||
# Synplify environment
|
# Synplify environment
|
||||||
export LD_LIBRARY_PATH=${{platform._deprecated_toolchain_env_var}}/sbt_backend/bin/linux/opt/synpwrap:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=${{var}}/sbt_backend/bin/linux/opt/synpwrap:$LD_LIBRARY_PATH
|
||||||
export PATH=${{platform._deprecated_toolchain_env_var}}/sbt_backend/bin/linux/opt/synpwrap:$PATH
|
export PATH=${{var}}/sbt_backend/bin/linux/opt/synpwrap:$PATH
|
||||||
export SYNPLIFY_PATH=${{platform._deprecated_toolchain_env_var}}/synpbase
|
export SYNPLIFY_PATH=${{var}}/synpbase
|
||||||
# Common environment
|
# Common environment
|
||||||
export SBT_DIR=${{platform._deprecated_toolchain_env_var}}/sbt_backend
|
export SBT_DIR=${{var}}/sbt_backend
|
||||||
elif [ -n "${{platform._toolchain_env_var}}" ]; then
|
|
||||||
# LSE environment
|
|
||||||
export LD_LIBRARY_PATH=${{platform._toolchain_env_var}}/LSE/bin/lin64:$LD_LIBRARY_PATH
|
|
||||||
export PATH=${{platform._toolchain_env_var}}/LSE/bin/lin64:$PATH
|
|
||||||
export FOUNDRY=${{platform._toolchain_env_var}}/LSE
|
|
||||||
# Synplify environment
|
|
||||||
export LD_LIBRARY_PATH=${{platform._toolchain_env_var}}/sbt_backend/bin/linux/opt/synpwrap:$LD_LIBRARY_PATH
|
|
||||||
export PATH=${{platform._toolchain_env_var}}/sbt_backend/bin/linux/opt/synpwrap:$PATH
|
|
||||||
export SYNPLIFY_PATH=${{platform._toolchain_env_var}}/synpbase
|
|
||||||
# Common environment
|
|
||||||
export SBT_DIR=${{platform._toolchain_env_var}}/sbt_backend
|
|
||||||
else
|
else
|
||||||
echo "Variable ${{platform._toolchain_env_var}} must be set" >&2; exit 1
|
echo "Variable ${{platform._toolchain_env_var}} must be set" >&2; exit 1
|
||||||
fi
|
fi
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
"{{name}}.v": r"""
|
"{{name}}.v": r"""
|
||||||
|
|
|
@ -55,14 +55,12 @@ class LatticeMachXO2Or3LPlatform(TemplatedPlatform):
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
||||||
if [ -n "${{platform._deprecated_toolchain_env_var}}" ]; then
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
bindir=$(dirname "${{platform._deprecated_toolchain_env_var}}")
|
if [ -n "${{var}}" ]; then
|
||||||
. "${{platform._deprecated_toolchain_env_var}}"
|
bindir=$(dirname "${{var}}")
|
||||||
fi
|
. "${{var}}"
|
||||||
if [ -n "${{platform._toolchain_env_var}}" ]; then
|
|
||||||
bindir=$(dirname "${{platform._toolchain_env_var}}")
|
|
||||||
. "${{platform._toolchain_env_var}}"
|
|
||||||
fi
|
fi
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
"{{name}}.v": r"""
|
"{{name}}.v": r"""
|
||||||
|
|
|
@ -126,8 +126,9 @@ class XilinxPlatform(TemplatedPlatform):
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
||||||
[ -n "${{platform._deprecated_toolchain_env_var}}" ] && . "${{platform._deprecated_toolchain_env_var}}"
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
[ -n "${{platform._toolchain_env_var}}" ] && . "${{platform._toolchain_env_var}}"
|
[ -n "${{var}}" ] && . "${{var}}"
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
"{{name}}.v": r"""
|
"{{name}}.v": r"""
|
||||||
|
@ -233,8 +234,9 @@ class XilinxPlatform(TemplatedPlatform):
|
||||||
# {{autogenerated}}
|
# {{autogenerated}}
|
||||||
set -e{{verbose("x")}}
|
set -e{{verbose("x")}}
|
||||||
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
if [ -z "$BASH" ] ; then exec /bin/bash "$0" "$@"; fi
|
||||||
[ -n "${{platform._deprecated_toolchain_env_var}}" ] && . "${{platform._deprecated_toolchain_env_var}}"
|
{% for var in platform._all_toolchain_env_vars %}
|
||||||
[ -n "${{platform._toolchain_env_var}}" ] && . "${{platform._toolchain_env_var}}"
|
[ -n "${{var}}" ] && . "${{var}}"
|
||||||
|
{% endfor %}
|
||||||
{{emit_commands("sh")}}
|
{{emit_commands("sh")}}
|
||||||
""",
|
""",
|
||||||
"{{name}}.v": r"""
|
"{{name}}.v": r"""
|
||||||
|
|
Loading…
Reference in a new issue