OSDN Git Service

[BUILD][CMAKE] Add falback values.Merge toolchain for native gcc into a file.
[csp-qt/common_source_project-fm7.git] / source / setup-scripts / additional_defines_gcc_generic.sh
1 #!/bin/bash
2
3 function detect_gcc_version () {
4         if [ "__xx__${TOOLCHAIN_VERSION}" = "__xx__" ] ; then
5                 TEST_CC="gcc"
6         else
7                 TEST_CC="gcc-${TOOLCHAIN_VERSION}"
8         fi
9         CC_VERSION=`${TEST_CC} -dumpversion`
10         echo "${CC_VERSION}"
11 }
12
13 C_MAJOR_VERSION=`detect_gcc_version`
14
15 if [ $C_MAJOR_VERSION -lt 8 ] ; then
16         USE_CXX20=0
17         USE_LTO=0
18         USE_QT6=0
19 fi
20
21 if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then
22         USE_LTO=0
23         OPTIMIZE_LEVEL="-O0"
24 elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then
25         OPTIMIZE_LEVEL="-O3"
26 else
27         OPTIMIZE_LEVEL="-O3"
28 fi
29
30 BASICOPTS+=(${OPTIMIZE_LEVEL})
31
32 if [ __x__"${BUILD_TYPE}" != __x__Release ] ; then
33         
34         if [ $C_MAJOR_VERSION -lt 8 ] ; then
35                 DEBUGFLAGS+=(-g2)
36         else
37                 DEBUGFLAGS+=(-ggdb)
38                 DEBUGFLAGS+=(-gz)
39                 if [ $C_MAJOR_VERSION -ge 12 ] ; then
40                         COPTS+=(-Wa,--compress-debug-sections=zlib)
41                         DEBUGFLAGS+=(-fmerge-debug-strings)
42                         DEBUGFLAGS+=(-feliminate-unused-debug-symbols)
43                         DEBUGFLAGS+=(-feliminate-unused-debug-types)
44                 else
45                         COPTS+=(-Wa,--compress-debug-sections=zlib)
46                 fi
47         fi
48 fi
49
50 if [ $USE_LTO -ne 0 ] ; then
51         BASICOPTS+=(-flto)
52         DLL_LDOPTS+=(-flto=auto)
53         EXE_LDOPTS+=(-flto=auto)
54         
55         if [ $C_MAJOR_VERSION -ge 12 ] ; then
56                 COPTS+=(-flto-compression-level=19)
57                 COPTS+=(-fno-fat-lto-objects)
58         else
59                 COPTS+=(-flto-compression-level=9)
60                 COPTS+=(-fno-fat-lto-objects)
61         fi
62 fi
63
64 # ToDo: Determine SIMD TYPES
65 . ${SCRIPTS_DIR}/additional_defines_simd_types_gcc.sh
66
67 case ${BUILD_TYPE} in
68         Relwithdebinfo | Debug)
69                 if [ $C_MAJOR_VERSION -lt 8 ] ; then
70                         DLL_LDOPTS+=(-g2)
71                         EXE_LDOPTS+=(-g2)
72                 else
73                         DLL_LDOPTS+=(-ggdb)
74                         DLL_LDOPTS+=(-gz)
75                         DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib)
76
77                         EXE_LDOPTS+=(-ggdb)
78                         EXE_LDOPTS+=(-gz)
79                         EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib)
80                 fi
81                 ;;
82         Release | * )
83                 DLL_LDOPTS+=(-s)
84                 EXE_LDOPTS+=(-s)
85                 ;;
86 esac