summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2022-07-04 16:02:44 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2022-07-04 16:02:44 +0200
commit163af36fee3bdc3fe0e8ce629cba333cb2cff199 (patch)
treec4004a295813151478fe8b36a41725457cc6ea17 /.github
parent18634305282c81b0f4a08de4ebca6ccc95b11748 (diff)
parentc23cd0a7c5f4264b3209f127885b8d5432f2fd5a (diff)
downloadabc-163af36fee3bdc3fe0e8ce629cba333cb2cff199.tar.gz
abc-163af36fee3bdc3fe0e8ce629cba333cb2cff199.tar.bz2
abc-163af36fee3bdc3fe0e8ce629cba333cb2cff199.zip
Merge remote-tracking branch 'upstream/master' into yosys-experimental
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build-posix-cmake.yml62
-rw-r--r--.github/workflows/build-posix.yml62
-rw-r--r--.github/workflows/build-windows.yml48
3 files changed, 172 insertions, 0 deletions
diff --git a/.github/workflows/build-posix-cmake.yml b/.github/workflows/build-posix-cmake.yml
new file mode 100644
index 00000000..ea31fe0b
--- /dev/null
+++ b/.github/workflows/build-posix-cmake.yml
@@ -0,0 +1,62 @@
+on: [push]
+
+jobs:
+
+ build-posix:
+ strategy:
+ matrix:
+ os: [macos-latest, ubuntu-latest]
+ use_namespace: [false, true]
+
+ runs-on: ${{ matrix.os }}
+
+ env:
+ CMAKE_ARGS: ${{ matrix.use_namespace && '-DABC_USE_NAMESPACE=xxx' || '' }}
+ DEMO_ARGS: ${{ matrix.use_namespace && '-DABC_NAMESPACE=xxx' || '' }}
+ DEMO_GCC: ${{ matrix.use_namespace && 'g++ -x c++' || 'gcc' }}
+
+ steps:
+
+ - name: Git Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Install brew dependencies
+ run: |
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install readline ninja
+ if: ${{ contains(matrix.os, 'macos') }}
+
+ - name: Install APT dependencies
+ run: |
+ sudo apt install -y libreadline-dev ninja-build
+ if: ${{ !contains(matrix.os, 'macos') }}
+
+ - name: Configure CMake
+ run: |
+ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS} -B build
+
+ - name: Build CMake
+ run: |
+ cmake --build build
+
+ - name: Test Executable
+ run: |
+ ./build/abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
+
+ - name: Test Library
+ run: |
+ ${DEMO_GCC} ${DEMO_ARGS} -Wall -c src/demo.c -o demo.o
+ g++ -o demo demo.o build/libabc.a -lm -ldl -lreadline -lpthread
+ ./demo i10.aig
+
+ - name: Stage Executable
+ run: |
+ mkdir staging
+ cp build/abc build/libabc.a staging/
+
+ - name: Upload pacakge artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: package
+ path: staging/
diff --git a/.github/workflows/build-posix.yml b/.github/workflows/build-posix.yml
new file mode 100644
index 00000000..aa97aca2
--- /dev/null
+++ b/.github/workflows/build-posix.yml
@@ -0,0 +1,62 @@
+on: [push]
+
+jobs:
+
+ build-posix:
+ strategy:
+ matrix:
+ os: [macos-latest, ubuntu-latest]
+ use_namespace: [false, true]
+
+ runs-on: ${{ matrix.os }}
+
+ env:
+ MAKE_ARGS: ${{ matrix.use_namespace && 'ABC_USE_NAMESPACE=xxx' || '' }}
+ DEMO_ARGS: ${{ matrix.use_namespace && '-DABC_NAMESPACE=xxx' || '' }}
+ DEMO_GCC: ${{ matrix.use_namespace && 'g++ -x c++' || 'gcc' }}
+
+ steps:
+
+ - name: Git Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Install brew dependencies
+ run: |
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install readline
+ if: ${{ contains(matrix.os, 'macos') }}
+
+ - name: Install APT dependencies
+ run: |
+ sudo apt install -y libreadline-dev
+ if: ${{ !contains(matrix.os, 'macos') }}
+
+ - name: Build Executable
+ run: |
+ make -j3 ${MAKE_ARGS} abc
+
+ - name: Test Executable
+ run: |
+ ./abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
+
+ - name: Build Library
+ run: |
+ make -j3 ${MAKE_ARGS} libabc.a
+
+ - name: Test Library
+ run: |
+ ${DEMO_GCC} ${DEMO_ARGS} -Wall -c src/demo.c -o demo.o
+ g++ -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread
+ ./demo i10.aig
+
+ - name: Stage Executable
+ run: |
+ mkdir staging
+ cp abc libabc.a staging/
+
+ - name: Upload pacakge artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: package
+ path: staging/
diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml
new file mode 100644
index 00000000..21cd1b26
--- /dev/null
+++ b/.github/workflows/build-windows.yml
@@ -0,0 +1,48 @@
+on: [push]
+
+jobs:
+
+ build-windows:
+
+ runs-on: windows-2019
+
+ steps:
+
+ - name: Git Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Process project files to compile on Github Actions
+ run: |
+ sed -i 's#ABC_USE_PTHREADS\"#ABC_DONT_USE_PTHREADS\" /D \"_ALLOW_KEYWORD_MACROS=1\"#g' *.dsp
+ awk 'BEGIN { del=0; } /# Begin Group "uap"/ { del=1; } /# End Group/ { if( del > 0 ) {del=0; next;} } del==0 {print;} ' abclib.dsp > tmp.dsp
+ copy tmp.dsp abclib.dsp
+ del tmp.dsp
+ unix2dos *.dsp
+
+ - name: Prepare MSVC
+ uses: bus1/cabuild/action/msdevshell@v1
+ with:
+ architecture: x86
+
+ - name: Upgrade project files to latest Visual Studio, ignoring upgrade errors, and build
+ run: |
+ devenv abcspace.dsw /upgrade ; if (-not $? ) { cat UpgradeLog.htm }
+ msbuild abcspace.sln /m /nologo /p:Configuration=Release /p:PlatformTarget=x86
+
+ - name: Test Executable
+ run: |
+ _TEST\abc.exe -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
+
+ - name: Stage Executable
+ run: |
+ mkdir staging
+ copy _TEST/abc.exe staging/
+ copy UpgradeLog.htm staging/
+
+ - name: Upload pacakge artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: package
+ path: staging/