Skip to content

Commit 13f3a85

Browse files
committed
Add fortran to github CI
1 parent d706847 commit 13f3a85

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

.github/workflows/ci.yml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
- SWIGLANG: ""
4444
compiler: clang
4545
- SWIGLANG: csharp
46-
# D support can't be enabled because dmd 2.066 fails to build anything
46+
# D support can't enabled because dmd 2.066 fails to build anything
4747
# under Ubuntu 18.04 due to its standard library (libphobos2.a) not
4848
# being compiled with -FPIC, but system gcc using -fpie by default,
4949
# resulting in linking errors for any output. And later versions, such
@@ -52,6 +52,8 @@ jobs:
5252
# - SWIGLANG: d
5353
# VER: '2.066.0'
5454
# os: ubuntu-18.04 # This dlang version doesn't work under 20.04.
55+
- SWIGLANG: fortran
56+
CPPSTD: c++11
5557
- SWIGLANG: go
5658
VER: '1.6'
5759
CSTD: gnu11
@@ -185,6 +187,8 @@ jobs:
185187
# c++11 testing
186188
- SWIGLANG: csharp
187189
CPPSTD: c++11
190+
- SWIGLANG: fortran
191+
CPPSTD: c++11
188192
- SWIGLANG: go
189193
VER: '1.17'
190194
CPPSTD: c++11
@@ -256,6 +260,10 @@ jobs:
256260
- SWIGLANG: csharp
257261
CPPSTD: c++17
258262
GCC: 11
263+
- SWIGLANG: fortran
264+
CPPSTD: c++17
265+
FCSTD: f2003
266+
GCC: 11
259267
- SWIGLANG: go
260268
VER: '1.17'
261269
CPPSTD: c++17
@@ -320,6 +328,7 @@ jobs:
320328
GCC: ${{ matrix.GCC }}
321329
CSTD: ${{ matrix.CSTD }}
322330
CPPSTD: ${{ matrix.CPPSTD }}
331+
FCSTD: ${{ matrix.FCSTD }}
323332

324333
steps:
325334
- name: Checkout
@@ -372,19 +381,23 @@ jobs:
372381
elif test -n "$GCC"; then
373382
CC="gcc-$GCC"
374383
CXX="g++-$GCC"
384+
FC="gfortran-$GCC"
375385
else
376386
CC="gcc"
377387
CXX="g++"
388+
FC="gfortran"
378389
fi
379390
380-
export CC CXX
391+
export CC CXX FC
381392
382393
echo CC="$CC" >> $GITHUB_ENV
383394
echo CXX="$CXX" >> $GITHUB_ENV
395+
echo FC="$FC" >> $GITHUB_ENV
384396
385397
ls -la $(which $CC) $(which $CXX)
386398
$CC --version
387399
$CXX --version
400+
$FC --version
388401
389402
- name: Configure
390403
run: |
@@ -401,6 +414,7 @@ jobs:
401414
fi
402415
if test -n "$CPPSTD"; then CONFIGOPTS+=(--enable-cpp11-testing "CXXFLAGS=-std=$CPPSTD $CXXFLAGS"); fi
403416
if test -n "$CSTD"; then CONFIGOPTS+=("CFLAGS=-std=$CSTD $CFLAGS"); fi
417+
if test -n "$FCSTD"; then CONFIGOPTS+=("FCFLAGS=-std=$FCSTD $FCFLAGS"); fi
404418
if test -n "$SWIGLANG"; then CONFIGOPTS+=(--without-alllang --with-$WITHLANG); fi
405419
echo "${CONFIGOPTS[@]}"
406420
./autogen.sh && mkdir -p build/build && cd build/build && ../../configure "${CONFIGOPTS[@]}"
@@ -438,10 +452,11 @@ jobs:
438452
# Stricter compile flags for examples. Various headers and SWIG generated code prevents full use of -pedantic.
439453
cflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --cflags --std=$CSTD --compiler=$CC)
440454
cxxflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --cxxflags --std=$CPPSTD --compiler=$CC)
455+
fcflags=$($GITHUB_WORKSPACE/Tools/testflags.py --language $SWIGLANG --fcflags --std=$FCSTD --compiler=$FC)
441456
make check-$SWIGLANG-version
442457
make check-$SWIGLANG-enabled
443-
make $SWIGJOBS check-$SWIGLANG-examples CFLAGS="$cflags" CXXFLAGS="$cxxflags"
444-
make $SWIGJOBS check-$SWIGLANG-test-suite CFLAGS="$cflags" CXXFLAGS="$cxxflags"
458+
make $SWIGJOBS check-$SWIGLANG-examples CFLAGS="$cflags" CXXFLAGS="$cxxflags" FCFLAGS="$fcflags"
459+
make $SWIGJOBS check-$SWIGLANG-test-suite CFLAGS="$cflags" CXXFLAGS="$cxxflags" FCFLAGS="$fcflags"
445460
fi
446461
447462
- name: Install

Tools/CI-linux-install.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ case "$SWIGLANG" in
2626
$RETRY wget http://downloads.dlang.org/releases/2.x/${VER}/dmd_${VER}-0_amd64.deb
2727
$RETRY sudo dpkg -i dmd_${VER}-0_amd64.deb
2828
;;
29+
"fortran")
30+
if [[ -n "$GCC" ]]; then
31+
$RETRY sudo apt-get install -qq gfortran-$GCC
32+
else
33+
$RETRY sudo apt-get install -qq gfortran
34+
fi
35+
;;
2936
"go")
3037
if [[ "$VER" ]]; then
3138
mkdir -p $HOME/bin

0 commit comments

Comments
 (0)