summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
authorBaruch Sterin <baruchs@gmail.com>2022-01-23 00:16:10 +0100
committerBaruch Sterin <baruchs@gmail.com>2022-01-23 00:23:52 +0100
commit0a536417f6be75fcf26720767a61bd1f57a685b5 (patch)
tree30082be55cdf1072d3a7e02017aa947df3ab72cb /.github/workflows
parent2ccb0f783495a65cc597865ba24556cc64b8eaa1 (diff)
downloadabc-0a536417f6be75fcf26720767a61bd1f57a685b5.tar.gz
abc-0a536417f6be75fcf26720767a61bd1f57a685b5.tar.bz2
abc-0a536417f6be75fcf26720767a61bd1f57a685b5.zip
Build CMake on GitHub Actions
Also, resolve CMake build problems on macOS: Pass CMAKE_OSX_SYSROOT as an environment variable SDKROOT when buildind the arch_flags executable.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build-posix-cmake.yml6
-rw-r--r--.github/workflows/build-posix.yml62
-rw-r--r--.github/workflows/build-windows.yml48
3 files changed, 113 insertions, 3 deletions
diff --git a/.github/workflows/build-posix-cmake.yml b/.github/workflows/build-posix-cmake.yml
index 68d325b2..ea31fe0b 100644
--- a/.github/workflows/build-posix-cmake.yml
+++ b/.github/workflows/build-posix-cmake.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ${{ matrix.os }}
env:
- MAKE_ARGS: ${{ matrix.use_namespace && '-DABC_USE_NAMESPACE=ON' || '' }}
+ 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' }}
@@ -34,7 +34,7 @@ jobs:
- name: Configure CMake
run: |
- cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -B build
+ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS} -B build
- name: Build CMake
run: |
@@ -53,7 +53,7 @@ jobs:
- name: Stage Executable
run: |
mkdir staging
- cp abc libabc.a staging/
+ cp build/abc build/libabc.a staging/
- name: Upload pacakge artifact
uses: actions/upload-artifact@v1
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..6312780d
--- /dev/null
+++ b/.github/workflows/build-windows.yml
@@ -0,0 +1,48 @@
+on: [push]
+
+jobs:
+
+ build-windows:
+
+ runs-on: windows-latest
+
+ 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/