Merge pull request #961 from lnis-uofu/ubuntu22p04_support

Ubuntu22p04 support
This commit is contained in:
tangxifan 2022-12-28 20:59:58 -08:00 committed by GitHub
commit c4d7737d4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 159 additions and 6 deletions

View File

@ -220,6 +220,49 @@ jobs:
run: |
make all BUILD_TYPE=$BUILD_TYPE CMAKE_FLAGS="${{ matrix.config.cmake_flags }}"
ubuntu_support:
needs: change_detect
if: ${{ fromJSON(needs.change_detect.outputs.source_modified) }}
name: ${{ matrix.config.name }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
config:
- name: "Build (Ubuntu 22.04)"
cc: gcc-11
cxx: g++-11
# Define the steps to run the build job
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
steps:
- name: Cancel previous
uses: styfle/cancel-workflow-action@0.9.1
with:
access_token: ${{ github.token }}
- name: Checkout OpenFPGA repo
uses: actions/checkout@v2
with:
submodules: true
- name: Install dependencies
run: sudo bash ./.github/workflows/install_dependencies_build_ubuntu22p04.sh
- name: Dump tool versions
run: |
cmake --version
${CC} --version
${CXX} --version
- uses: hendrikmuhs/ccache-action@v1
- name: Build
shell: bash
run: |
make all BUILD_TYPE=$BUILD_TYPE
docker_distribution:
name: Build docker image for distribution
runs-on: ubuntu-20.04

5
.github/workflows/doc_dependencies.sh vendored Normal file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env bash
# The package list is designed for Ubuntu 20.04 LTS
apt-get install python3-sphinx
python3 -m pip install -r docs/requirements.txt

View File

@ -0,0 +1,58 @@
#!/usr/bin/env bash
# The package list is designed for Ubuntu 20.04 LTS
add-apt-repository -y ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install -y \
autoconf \
automake \
bison \
ccache \
cmake \
exuberant-ctags \
curl \
doxygen \
flex \
fontconfig \
gdb \
git \
gperf \
iverilog \
libc6-dev \
libcairo2-dev \
libevent-dev \
libffi-dev \
libfontconfig1-dev \
liblist-moreutils-perl \
libncurses5-dev \
libreadline-dev \
libreadline8 \
libx11-dev \
libxft-dev \
libxml++2.6-dev \
make \
perl \
pkg-config \
python3 \
python3-setuptools \
python3-lxml \
python3-pip \
qtbase5-dev \
tcllib \
tcl8.6-dev \
texinfo \
time \
valgrind \
wget \
zip \
swig \
expect \
g++-9 \
gcc-9 \
g++-10 \
gcc-10 \
g++-11 \
gcc-11 \
clang-12 \
clang-format-12 \
libxml2-utils

View File

@ -12,7 +12,7 @@ How to Compile
Supported Operating Systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~
OpenFPGA is continously tested with Ubuntu 20.04.
OpenFPGA is continously tested with Ubuntu 20.04 and partially on Ubuntu 22.04
It might work with earlier versions and other distributions.
In addition to continous integration, our community users have tested OpenFPGA on their local machines using the following operating systems:
@ -21,6 +21,7 @@ In addition to continous integration, our community users have tested OpenFPGA o
- CentOS 8
- Ubuntu 18.04
- Ubuntu 21.04
- Ubuntu 22.04
Build Steps
~~~~~~~~~~~
@ -84,8 +85,9 @@ The following options are available for a custom build
Dependencies
~~~~~~~~~~~~
Full list of dependencies can be found at install_dependencies_build_.
In particular, OpenFPGA requires specific versions for the following dependencies:
Dependencies can be installed upon the use of OpenFPGA on different systems
In general, OpenFPGA requires specific versions for the following dependencies:
:cmake:
version >3.12 for graphical interface
@ -93,14 +95,55 @@ In particular, OpenFPGA requires specific versions for the following dependencie
:iverilog:
version 10.3+ is required to run Verilog-to-Verification flow
:python dependencies:
python packages are also required:
Ubuntu 20.04
^^^^^^^^^^^^
- Dependencies required to build the code base
.. include:: ubuntu20p04_dependencies.sh
:code: shell
- Dependencies required to run regression tests
.. include:: regtest_dependencies.sh
:code: shell
.. note:: Python packages are also required
.. code-block::
python3 -m pip install -r requirements.txt
.. _install_dependencies_build: https://github.com/lnis-uofu/OpenFPGA/blob/master/.github/workflows/install_dependencies_build.sh
- Dependencies required to build documentation
.. include:: doc_dependencies.sh
:code: shell
Ubuntu 22.04
^^^^^^^^^^^^
- Dependencies required to build the code base
.. include:: ubuntu22p04_dependencies.sh
:code: shell
- Dependencies required to run regression tests
.. include:: regtest_dependencies.sh
:code: shell
.. note:: Python packages are also required
.. code-block::
python3 -m pip install -r requirements.txt
- Dependencies required to build documentation
.. include:: doc_dependencies.sh
:code: shell
Running with pre-built docker image
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -0,0 +1 @@
../../../../.github/workflows/doc_dependencies.sh

View File

@ -0,0 +1 @@
../../../../.github/workflows/install_dependencies_run.sh

View File

@ -0,0 +1 @@
../../../../.github/workflows/install_dependencies_build.sh

View File

@ -0,0 +1 @@
../../../../.github/workflows/install_dependencies_build_ubuntu22p04.sh