55install_gcc_brew ()
66{
77 brew install gcc@${version}
8- ln -s /usr/local/bin/gfortran-${version} /usr/local/bin/gfortran
9- ln -s /usr/local/bin/gcc-${version} /usr/local/bin/gcc
10- ln -s /usr/local/bin/g++-${version} /usr/local/bin/g++
8+ ln -fs /usr/local/bin/gfortran-${version} /usr/local/bin/gfortran
9+ ln -fs /usr/local/bin/gcc-${version} /usr/local/bin/gcc
10+ ln -fs /usr/local/bin/g++-${version} /usr/local/bin/g++
11+
12+ for (( i= 12 ; i> 4 ; i-- ))
13+ do
14+ gcc_lib_path=" /usr/local/opt/gcc/lib/gcc/$i "
15+ if [ -d $gcc_lib_path ]; then
16+ echo " found $gcc_lib_path "
17+ for (( j= $i ; j> 4 ; j-- ))
18+ do
19+ ln -fs /usr/local/opt/gcc/lib/gcc/$i /usr/local/opt/gcc/lib/gcc/$j
20+ done
21+ break
22+ fi
23+ done
1124
1225 export FC=" gfortran"
1326 export CC=" gcc"
@@ -29,10 +42,43 @@ install_gcc_apt()
2942 export CXX=" g++"
3043}
3144
45+ install_gcc_choco ()
46+ {
47+ case $version in
48+ 12)
49+ choco install mingw --version 12.2.0 --force
50+ ;;
51+ 11)
52+ choco install mingw --version 11.2.0 --force
53+ ;;
54+ 10)
55+ choco install mingw --version 10.3.0 --force
56+ ;;
57+ 9)
58+ choco install mingw --version 9.4.0 --force
59+ ;;
60+ 8)
61+ choco install mingw --version 8.5.0 --force
62+ ;;
63+ * )
64+ echo " Unsupported version: $version (choose 8-12)"
65+ exit 1
66+ ;;
67+ esac
68+
69+ export FC=" gfortran"
70+ export CC=" gcc"
71+ export CXX=" g++"
72+ }
73+
3274install_gcc_winlibs ()
3375{
3476 repo=" https://github.com/brechtsanders/winlibs_mingw/releases/download"
3577 case $version in
78+ 12)
79+ tag=" 12.2.0-14.0.6-10.0.0-ucrt-r2"
80+ zip=" winlibs-x86_64-posix-seh-gcc-12.2.0-mingw-w64ucrt-10.0.0-r2.zip"
81+ ;;
3682 11)
3783 tag=" 11.2.0-12.0.1-9.0.0-r1"
3884 zip=" winlibs-x86_64-posix-seh-gcc-11.2.0-mingw-w64-9.0.0-r1.zip"
@@ -50,6 +96,7 @@ install_gcc_winlibs()
5096 zip=" winlibs-x86_64-posix-seh-gcc-8.5.0-mingw-w64-9.0.0-r1.zip"
5197 ;;
5298 * )
99+ echo " Unsupported version: $version (choose 8-12)"
53100 exit 1
54101 ;;
55102 esac
@@ -63,43 +110,27 @@ install_gcc_winlibs()
63110 exit 1
64111 fi
65112
66- $fetch " $repo /$tag /$zip " > gcc.zip
67- unzip -qo gcc.zip -d /
113+ $fetch " $repo /$tag /$zip " > winlibs_mingw.zip
114+
115+ unzip -qo winlibs_mingw.zip " mingw64/bin/*" -d /
68116
69117 export FC=" gfortran"
70118 export CC=" gcc"
71119 export CXX=" g++"
72- }
73120
74- compiler=${COMPILER:- gcc}
75- platform=$( uname -s)
121+ default_gfc=" /c/ProgramData/Chocolatey/bin/gfortran"
122+ default_gcc=" /c/ProgramData/Chocolatey/bin/gcc"
123+ default_gcx=" /c/ProgramData/Chocolatey/bin/g++"
76124
77- case $compiler in
78- gcc)
79- version=${VERSION:- 9}
80- ;;
81- * )
82- exit 1
83- ;;
84- esac
85-
86- case $platform in
87- Linux* )
88- install_gcc_apt
89- ;;
90- Darwin* )
91- install_gcc_brew
92- ;;
93- MINGW* )
94- install_gcc_winlibs
95- ;;
96- * )
97- exit 1
98- ;;
99- esac
125+ [ -f $default_gfc ] && mv $default_gfc " $RUNNER_TEMP /gfortran"
126+ [ -f $default_gcc ] && mv $default_gcc " $RUNNER_TEMP /gcc"
127+ [ -f $default_gcx ] && mv $default_gcx " $RUNNER_TEMP /g++"
100128
101- which " ${FC} "
102- which " ${CC} "
129+ default_gfc=" /c/Strawberry/c/bin/gfortran"
130+ default_gcc=" /c/Strawberry/c/bin/gcc"
131+ default_gcx=" /c/Strawberry/c/bin/g++"
103132
104- echo " ::set-output name=fc::${FC} "
105- echo " ::set-output name=cc::${CC} "
133+ [ -f $default_gfc ] && mv $default_gfc " $RUNNER_TEMP /gfortran"
134+ [ -f $default_gcc ] && mv $default_gcc " $RUNNER_TEMP /gcc"
135+ [ -f $default_gcx ] && mv $default_gcx " $RUNNER_TEMP /g++"
136+ }
0 commit comments