@@ -27,49 +27,61 @@ install_environment_modules_apt() {
27
27
28
28
install_gcc_brew ()
29
29
{
30
- brew install --force gcc@${version}
30
+ if [[ " $version " == " latest" ]]; then
31
+ brew install --force gcc
32
+ # detect installed version using homebrew
33
+ gcc_version=$( brew list --versions gcc | grep -o ' [0-9]\+' | head -1)
34
+ else
35
+ brew install --force gcc@${version}
36
+ gcc_version=$version
37
+ fi
31
38
32
39
# make an unversioned symlink
33
40
os_ver=$( sw_vers -productVersion | cut -d' .' -f1)
34
41
if (( "$os_ver " > 13 )) ; then
35
42
# default homebrew bin dir changed with macos 14
36
- ln -fs /opt/homebrew/bin/gfortran-${version} /usr/local/bin/gfortran
37
- ln -fs /opt/homebrew/bin/gcc-${version} /usr/local/bin/gcc
38
- ln -fs /opt/homebrew/bin/g++-${version} /usr/local/bin/g++
43
+ bindir=/opt/homebrew/bin
39
44
else
40
- ln -fs /usr/local/bin/gfortran-${version} /usr/local/bin/gfortran
41
- ln -fs /usr/local/bin/gcc-${version} /usr/local/bin/gcc
42
- ln -fs /usr/local/bin/g++-${version} /usr/local/bin/g++
45
+ bindir=/usr/local/bin
43
46
fi
47
+
48
+ ln -fs ${bindir} /gfortran-${gcc_version} /usr/local/bin/gfortran
49
+ ln -fs ${bindir} /gcc-${gcc_version} /usr/local/bin/gcc
50
+ ln -fs ${bindir} /g++-${gcc_version} /usr/local/bin/g++
44
51
}
45
52
46
53
install_gcc_apt ()
47
54
{
48
- # Check whether the system gcc version is the version we are after.
49
- cur=$( apt show gcc | grep " Version" | cut -d' :' -f3 | cut -d' -' -f1)
50
- maj=$( echo $cur | cut -d' .' -f1)
51
- needs_install=1
52
- if [ " $maj " == " $version " ]; then
53
- # Check whether that version is installed.
54
- if apt list --installed gcc-${version} | grep -q " gcc-${version} /" ; then
55
- echo " GCC $version already installed"
56
- needs_install=0
57
- fi
58
- else
59
- # Install the PPA for installing other versions of gcc.
60
- sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
55
+ if [ " $version " == " latest" ]; then
61
56
sudo apt-get update
62
- fi
57
+ sudo apt-get install -y gcc gfortran g++
58
+ else
59
+ # Check whether the system gcc version is the version we are after.
60
+ cur=$( apt show gcc | grep " Version" | cut -d' :' -f3 | cut -d' -' -f1)
61
+ maj=$( echo $cur | cut -d' .' -f1)
62
+ needs_install=1
63
+ if [ " $maj " == " $version " ]; then
64
+ # Check whether that version is installed.
65
+ if apt list --installed gcc-${version} | grep -q " gcc-${version} /" ; then
66
+ echo " GCC $version already installed"
67
+ needs_install=0
68
+ fi
69
+ else
70
+ # Install the PPA for installing other versions of gcc.
71
+ sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
72
+ sudo apt-get update
73
+ fi
63
74
64
- if [ " ${needs_install} " == " 1" ]; then
65
- sudo apt-get install -y gcc-${version} gfortran-${version} g++-${version}
66
- fi
75
+ if [ " ${needs_install} " == " 1" ]; then
76
+ sudo apt-get install -y gcc-${version} gfortran-${version} g++-${version}
77
+ fi
67
78
68
- sudo update-alternatives \
69
- --install /usr/bin/gcc gcc /usr/bin/gcc-${version} 100 \
70
- --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${version} \
71
- --slave /usr/bin/gcov gcov /usr/bin/gcov-${version} \
72
- --slave /usr/bin/g++ g++ /usr/bin/g++-${version}
79
+ sudo update-alternatives \
80
+ --install /usr/bin/gcc gcc /usr/bin/gcc-${version} 100 \
81
+ --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${version} \
82
+ --slave /usr/bin/gcov gcov /usr/bin/gcov-${version} \
83
+ --slave /usr/bin/g++ g++ /usr/bin/g++-${version}
84
+ fi
73
85
}
74
86
75
87
install_gcc_choco ()
@@ -88,8 +100,12 @@ install_gcc_choco()
88
100
mv /c/mingw64 " $RUNNER_TEMP /"
89
101
# ...and install selected version
90
102
case $version in
91
- 13)
92
- choco install mingw --version 13.2.0 --force
103
+ latest|13)
104
+ if [ " $version " == " latest" ]; then
105
+ choco install mingw --force
106
+ else
107
+ choco install mingw --version 13.2.0 --force
108
+ fi
93
109
# mingw 13 on Windows doesn't create shims (http://disq.us/p/2w5c5tj)
94
110
# so hide Strawberry compilers and manually add mingw bin dir to PATH
95
111
mkdir " $RUNNER_TEMP /strawberry"
@@ -114,7 +130,7 @@ install_gcc_choco()
114
130
choco install mingw --version 8.5.0 --force
115
131
;;
116
132
* )
117
- echo " Unsupported version: $version (choose 8-13)"
133
+ echo " Unsupported version: $version (choose 8-13 or latest )"
118
134
exit 1
119
135
;;
120
136
esac
@@ -345,7 +361,9 @@ install_intel_apt()
345
361
{
346
362
local version=$1
347
363
local classic=$2
348
- intel_version_map_l $version $classic
364
+ if [ " $version " != " latest" ]; then
365
+ intel_version_map_l $version $classic
366
+ fi
349
367
350
368
require_fetch
351
369
local _KEY=" GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB"
@@ -356,17 +374,23 @@ install_intel_apt()
356
374
| sudo tee /etc/apt/sources.list.d/oneAPI.list
357
375
sudo apt-get update
358
376
359
- # c/cpp compiler package names changed with 2024+
360
- case $version in
361
- 2024* | 2025* )
362
- sudo apt-get install -y \
363
- intel-oneapi-compiler-{fortran,dpcpp-cpp}-$version
364
- ;;
365
- * )
366
- sudo apt-get install -y \
367
- intel-oneapi-compiler-{fortran,dpcpp-cpp-and-cpp-classic}-$version
368
- ;;
369
- esac
377
+ if [ " $version " == " latest" ]; then
378
+ sudo apt-get install -y \
379
+ intel-oneapi-compiler-fortran \
380
+ intel-oneapi-compiler-dpcpp-cpp
381
+ else
382
+ # c/cpp compiler package names changed with 2024+
383
+ case $version in
384
+ 2024* | 2025* )
385
+ sudo apt-get install -y \
386
+ intel-oneapi-compiler-{fortran,dpcpp-cpp}-$version
387
+ ;;
388
+ * )
389
+ sudo apt-get install -y \
390
+ intel-oneapi-compiler-{fortran,dpcpp-cpp-and-cpp-classic}-$version
391
+ ;;
392
+ esac
393
+ fi
370
394
371
395
source /opt/intel/oneapi/setvars.sh
372
396
export_intel_vars
@@ -623,7 +647,11 @@ install_lfortran_l()
623
647
export CC=" gcc"
624
648
export CXX=" g++"
625
649
export CONDA=conda
626
- $CONDA install -c conda-forge -n base -y lfortran=$version
650
+ if [ " $version " == " latest" ]; then
651
+ $CONDA install -c conda-forge -n base -y lfortran
652
+ else
653
+ $CONDA install -c conda-forge -n base -y lfortran=$version
654
+ fi
627
655
}
628
656
629
657
install_lfortran_w ()
@@ -632,7 +660,11 @@ install_lfortran_w()
632
660
export CC=" cl"
633
661
export CXX=" cl"
634
662
export CONDA=$CONDA \\ Scripts\\ conda # https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md#environment-variables
635
- $CONDA install -c conda-forge -n base -y lfortran=$version
663
+ if [ " $version " == " latest" ]; then
664
+ $CONDA install -c conda-forge -n base -y lfortran
665
+ else
666
+ $CONDA install -c conda-forge -n base -y lfortran=$version
667
+ fi
636
668
}
637
669
638
670
install_lfortran_m ()
@@ -642,7 +674,11 @@ install_lfortran_m()
642
674
export CXX=" g++"
643
675
export CONDA_ROOT_PREFIX=$MAMBA_ROOT_PREFIX
644
676
export CONDA=micromamba
645
- $CONDA install -c conda-forge -n base -y lfortran=$version
677
+ if [ " $version " == " latest" ]; then
678
+ $CONDA install -c conda-forge -n base -y lfortran
679
+ else
680
+ $CONDA install -c conda-forge -n base -y lfortran=$version
681
+ fi
646
682
}
647
683
648
684
install_lfortran ()
0 commit comments