Skip to content

Updated

Updated #20

Workflow file for this run

name: Build
permissions:
contents: read
on: [push]
jobs:
build-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Get repo
uses: actions/checkout@v3
- name: Install Cpp build tools
run: |
sudo apt-get install build-essential checkinstall m4 g++ cmake
- name: Install GMP and MPFR
run: |
sudo apt-get install libgmp3-dev
sudo apt-get install libmpfr-dev libmpfr-doc
- name: Install Boost
run: |
mkdir -p ${{ github.workspace }}/fdml_deps/
cd ${{ github.workspace }}/fdml_deps/
wget -O boost_1_79_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.79.0/boost_1_79_0.tar.gz/download
tar xzf boost_1_79_0.tar.gz
rm boost_1_79_0.tar.gz
cd boost_1_79_0
./bootstrap.sh
./b2 --build-dir=./build --stagedir=./bin architecture=x86 address-model=64 link=static,shared --variant=debug,release --without-python
- name: Install CGAL
run: |
git clone https://github.com/CGAL/cgal.git ${{ github.workspace }}/fdml_deps/cgal
mkdir -p ${{ github.workspace }}/fdml_deps/cgal/build
cd ${{ github.workspace }}/fdml_deps/cgal/build
cmake ..
- name: Install nanobind
run: |
git clone https://github.com/wjakob/nanobind.git ${{ github.workspace }}/fdml_deps/nanobind
cd ${{ github.workspace }}/fdml_deps/nanobind
git submodule update --init
- name: Install Python dependencies
run: |
pip install -r ${{ github.workspace }}/fdmlpy/requirements.txt
- name: Build FDML with bindings
run: |
export BOOST_INCLUDEDIR=${{ github.workspace }}/fdml_deps/boost_1_79_0
export BOOST_LIBRARYDIR=${{ github.workspace }}/fdml_deps/boost_1_79_0/bin/lib
export CGAL_DIR=${{ github.workspace }}/fdml_deps/cgal/build
export nanobind_DIR=${{ github.workspace }}/fdml_deps/nanobind/
mkdir ${{ github.workspace }}/fdml_build/
cd ${{ github.workspace }}/fdml_build/
cmake -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE=Release -DFDML_WITH_PYBINDINGS:BOOL=ON ${{ github.workspace }}
make -j
- name: Zip build artifacts
run: |
tar -czf ${{ github.workspace }}/build.tar.gz ${{ github.workspace }}/fdml_build/
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-ubuntu
path: ${{ github.workspace }}/build.tar.gz
build-windows:
runs-on: windows-latest
steps:
- name: Get repo
uses: actions/checkout@v3
- name: Create dependencies dir
run: |
mkdir ${{ github.workspace }}\fdml_deps\
- name: Install GMP and MPFR (download)
uses: suisei-cn/[email protected]
id: gmp_mpfr_zip_download
with:
url: "https://github.com/CGAL/cgal/releases/download/v5.4/CGAL-5.4-win64-auxiliary-libraries-gmp-mpfr.zip"
target: ${{ github.workspace }}\fdml_deps\
- name: Install GMP and MPFR (extract)
run: |
cd ${{ github.workspace }}\fdml_deps\
mv CGAL-5.4-win64-auxiliary-libraries-gmp-mpfr.zip gmp-mpfr.zip
Expand-Archive -LiteralPath gmp-mpfr.zip -DestinationPath gmp_mpfr_parent
rm gmp-mpfr.zip
mv gmp_mpfr_parent\auxiliary\gmp gmp_mpfr
rmdir gmp_mpfr_parent\auxiliary
rmdir gmp_mpfr_parent
- name: Install Boost (download)
uses: suisei-cn/[email protected]
id: boost_zip_download
with:
url: "https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.zip"
target: ${{ github.workspace }}\fdml_deps\
- name: Install Boost (extract and build)
run: |
cd ${{ github.workspace }}\fdml_deps\
Expand-Archive -LiteralPath boost_1_79_0.zip -DestinationPath boost_1_79_0
rm boost_1_79_0.zip
mv boost_1_79_0 boost_1_79_0_parent
mv boost_1_79_0_parent\boost_1_79_0 boost_1_79_0
rmdir boost_1_79_0_parent
cd boost_1_79_0
.\bootstrap.bat
.\b2 --build-dir=.\build --stagedir=.\bin architecture=x86 address-model=64 link=static,shared runtime-link=static,shared --variant=debug,release --without-python
- name: Install CGAL
run: |
git clone https://github.com/CGAL/cgal.git ${{ github.workspace }}\fdml_deps\cgal
mkdir ${{ github.workspace }}\fdml_deps\cgal\build
cd ${{ github.workspace }}\fdml_deps\cgal\build
cmake ..
- name: Install nanobind
run: |
git clone https://github.com/wjakob/nanobind.git ${{ github.workspace }}\fdml_deps\nanobind
cd ${{ github.workspace }}\fdml_deps\nanobind
git submodule update --init
- name: Setup | Python 3.11
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install Python dependencies
run: |
pip install -r ${{ github.workspace }}\fdmlpy\requirements.txt
- name: Build FDML with bindings
run: |
$env:GMP_DIR="${{ github.workspace }}\fdml_deps\gmp_mpfr"
$env:MPFR_DIR="${{ github.workspace }}\fdml_deps\gmp_mpfr"
$env:BOOST_INCLUDEDIR="${{ github.workspace }}\fdml_deps\boost_1_79_0"
$env:BOOST_LIBRARYDIR="${{ github.workspace }}\fdml_deps\boost_1_79_0\bin\lib"
$env:CGAL_DIR="${{ github.workspace }}\fdml_deps\cgal\build"
$env:nanobind_DIR="${{ github.workspace }}\fdml_deps\nanobind"
mkdir ${{ github.workspace }}\fdml_build\
cd ${{ github.workspace }}\fdml_build\
cmake -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE=Release -DFDML_WITH_PYBINDINGS:BOOL=ON ${{ github.workspace }}
cmake --build . -j
- name: Zip build artifacts
run: |
Compress-Archive -Path ${{ github.workspace }}\fdml_build\ -DestinationPath ${{ github.workspace }}\build.zip
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-windows
path: ${{ github.workspace }}\build.zip