|
|
|
@@ -101,3 +101,120 @@ jobs: |
|
|
|
cd build |
|
|
|
cmake -DDYNAMIC_ARCH=1 -DNOFORTRAN=0 -DBUILD_WITHOUT_LAPACK=0 -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release .. |
|
|
|
make -j$(nproc) |
|
|
|
|
|
|
|
|
|
|
|
msys2: |
|
|
|
runs-on: windows-latest |
|
|
|
|
|
|
|
strategy: |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
msystem: [MINGW64, MINGW32, CLANG64] |
|
|
|
idx: [int32, int64] |
|
|
|
include: |
|
|
|
- msystem: MINGW64 |
|
|
|
idx: int32 |
|
|
|
target-prefix: mingw-w64-x86_64 |
|
|
|
fc-pkg: mingw-w64-x86_64-gcc-fortran |
|
|
|
- msystem: MINGW32 |
|
|
|
idx: int32 |
|
|
|
target-prefix: mingw-w64-i686 |
|
|
|
fc-pkg: mingw-w64-i686-gcc-fortran |
|
|
|
- msystem: CLANG64 |
|
|
|
idx: int32 |
|
|
|
target-prefix: mingw-w64-clang-x86_64 |
|
|
|
c-lapack-flags: -DC_LAPACK=ON |
|
|
|
- msystem: MINGW64 |
|
|
|
idx: int64 |
|
|
|
idx64-flags: -DBINARY=64 -DINTERFACE64=1 |
|
|
|
target-prefix: mingw-w64-x86_64 |
|
|
|
fc-pkg: mingw-w64-x86_64-gcc-fortran |
|
|
|
- msystem: CLANG64 |
|
|
|
idx: int64 |
|
|
|
idx64-flags: -DBINARY=64 -DINTERFACE64=1 |
|
|
|
target-prefix: mingw-w64-clang-x86_64 |
|
|
|
c-lapack-flags: -DC_LAPACK=ON |
|
|
|
exclude: |
|
|
|
- msystem: MINGW32 |
|
|
|
idx: int64 |
|
|
|
|
|
|
|
defaults: |
|
|
|
run: |
|
|
|
# Use MSYS2 bash as default shell |
|
|
|
shell: msys2 {0} |
|
|
|
|
|
|
|
env: |
|
|
|
CHERE_INVOKING: 1 |
|
|
|
|
|
|
|
steps: |
|
|
|
- name: Get CPU name |
|
|
|
shell: pwsh |
|
|
|
run : | |
|
|
|
Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name |
|
|
|
|
|
|
|
- name: Install build dependencies |
|
|
|
uses: msys2/setup-msys2@v2 |
|
|
|
with: |
|
|
|
msystem: ${{ matrix.msystem }} |
|
|
|
update: true |
|
|
|
release: false # Use pre-installed version |
|
|
|
install: >- |
|
|
|
base-devel |
|
|
|
${{ matrix.target-prefix }}-cc |
|
|
|
${{ matrix.fc-pkg }} |
|
|
|
${{ matrix.target-prefix }}-cmake |
|
|
|
${{ matrix.target-prefix }}-ninja |
|
|
|
${{ matrix.target-prefix }}-ccache |
|
|
|
|
|
|
|
- name: Checkout repository |
|
|
|
uses: actions/checkout@v3 |
|
|
|
|
|
|
|
- name: Compilation cache |
|
|
|
uses: actions/cache@v2 |
|
|
|
with: |
|
|
|
# It looks like this path needs to be hard-coded. |
|
|
|
path: C:/msys64/home/runneradmin/.ccache |
|
|
|
# We include the commit sha in the cache key, as new cache entries are |
|
|
|
# only created if there is no existing entry for the key yet. |
|
|
|
key: ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ github.ref }}-${{ github.sha }} |
|
|
|
# Restore a matching ccache cache entry. Prefer same branch. |
|
|
|
restore-keys: | |
|
|
|
ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ github.ref }} |
|
|
|
ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }} |
|
|
|
|
|
|
|
- name: Configure ccache |
|
|
|
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota. |
|
|
|
run: | |
|
|
|
which ccache |
|
|
|
test -d ~/.ccache || mkdir -p ~/.ccache |
|
|
|
echo "max_size = 250M" > ~/.ccache/ccache.conf |
|
|
|
echo "compression = true" >> ~/.ccache/ccache.conf |
|
|
|
ccache -s |
|
|
|
echo $HOME |
|
|
|
cygpath -w $HOME |
|
|
|
|
|
|
|
- name: Configure OpenBLAS |
|
|
|
run: | |
|
|
|
mkdir build && cd build |
|
|
|
cmake -DBUILD_SHARED_LIBS=ON \ |
|
|
|
-DBUILD_STATIC_LIBS=ON \ |
|
|
|
-DDYNAMIC_ARCH=ON \ |
|
|
|
-DUSE_THREAD=ON \ |
|
|
|
-DNUM_THREADS=64 \ |
|
|
|
-DTARGET=CORE2 \ |
|
|
|
${{ matrix.idx64-flags }} \ |
|
|
|
${{ matrix.c-lapack-flags }} \ |
|
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \ |
|
|
|
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \ |
|
|
|
.. |
|
|
|
|
|
|
|
- name: Build OpenBLAS |
|
|
|
run: cd build && cmake --build . |
|
|
|
|
|
|
|
- name: Show ccache status |
|
|
|
continue-on-error: true |
|
|
|
run: ccache -s |
|
|
|
|
|
|
|
- name: Run tests |
|
|
|
timeout-minutes: 60 |
|
|
|
run: cd build && ctest |