cve2/check_tool_requirements.core
Philipp Wagner 3a078865c8 Check for supported tool versions
Define supported tool versions in tool_requirements.py, and check them
in a fusesoc run. If an unsupported tool version is found, fusesoc
outputs an error like this:

```
$ fusesoc --cores-root . run --target=lint lowrisc:ibex:ibex_core
INFO: Preparing lowrisc:ibex:check_tool_requirements:0.1
INFO: Preparing lowrisc:prim:assert:0.1
INFO: Preparing lowrisc:ibex:sim_shared:0
INFO: Preparing lowrisc:ibex:ibex_core:0.1
INFO: Setting up project

INFO: Running pre_build script check_tool_requirements
ERROR: verilator is too old: found version 4.010, need at least 4.028
ERROR: Tool requirements not fulfilled. Please update the tools and retry.
ERROR: Failed to build lowrisc:ibex:ibex_core:0.1 : pre_build script 'check_tool_requirements' exited with error code 1
```

The only version checked at this point is Verilator, which is set
somewhat arbitrarily to the version used by me (and I know it works). CI
uses a slightly newer version. As we are about to merge changes soon
which require a newer Verilator version, there's not much point in
finding the oldest supported version right now.
2020-02-12 15:57:40 +00:00

31 lines
934 B
Text

CAPI=2:
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
name: "lowrisc:ibex:check_tool_requirements:0.1"
description: "Check tool requirements"
filesets:
files_check_tool_requirements:
files:
- ./util/check_tool_requirements.py : { copyto: util/check_tool_requirements.py }
- ./tool_requirements.py : { copyto: tool_requirements.py }
scripts:
check_tool_requirements:
cmd:
- python3
- util/check_tool_requirements.py
# TODO: Use this syntax once https://github.com/olofk/fusesoc/issues/353 is
# fixed. Remove the filesets from the default target, and also remove the
# copyto.
#filesets:
# - files_check_tool_requirements
targets:
default:
filesets:
- files_check_tool_requirements
hooks:
pre_build:
- tool_verilator ? (check_tool_requirements)