Common Source Code Project for Qt (a.k.a for FM-7).
Revisión | e7335f4942a9892bd1067b62ea21203ca898eef6 (tree) |
---|---|
Tiempo | 2022-05-26 02:12:53 |
Autor | K.Ohta <whatisthis.sowhat@gmai...> |
Commiter | K.Ohta |
[BUILD][CMake] Start to switch to new *moduler* setup suripts.
@@ -0,0 +1,48 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then | |
4 | + USE_LTO=0 | |
5 | + OPTIMIZE_LEVEL="-O0" | |
6 | + DEBUGFLAGS+=(-ggdb) | |
7 | + DEBUGFLAGS+=(-gz) | |
8 | +elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then | |
9 | + OPTIMIZE_LEVEL="-O3" | |
10 | + DEBUGFLAGS+=(-ggdb) | |
11 | + DEBUGFLAGS+=(-gz) | |
12 | +else | |
13 | + OPTIMIZE_LEVEL="-O3" | |
14 | +fi | |
15 | + | |
16 | +BASICOPTS+=(${OPTIMIZE_LEVEL}) | |
17 | +if [ __x__"${BUILD_TYPE}" != __x__Release ] ; then | |
18 | + COPTS+=(-Wa,--compress-debug-sections=zlib) | |
19 | +fi | |
20 | + | |
21 | +if [ $USE_LTO -ne 0 ] ; then | |
22 | + BASICOPTS+=(-flto) | |
23 | + COPTS+=(-flto-compression-level=9) | |
24 | + COPTS+=(-ffat-lto-objects) | |
25 | +fi | |
26 | + | |
27 | +# ToDo: Determine SIMD TYPES | |
28 | +. ${SCRIPTS_DIR}/additional_defines_simd_types_gcc.sh | |
29 | + | |
30 | +if [ $USE_LTO -ne 0 ] ; then | |
31 | + DLL_LDOPTS+=(-flto=auto) | |
32 | + EXE_LDOPTS+=(-flto=auto) | |
33 | +fi | |
34 | + | |
35 | +case ${BUILD_TYPE} in | |
36 | + Relwithdebinfo ) | |
37 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
38 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
39 | + ;; | |
40 | + Debug ) | |
41 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
42 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
43 | + ;; | |
44 | + Release | * ) | |
45 | + DLL_LDOPTS+=(-s) | |
46 | + EXE_LDOPTS+=(-s) | |
47 | + ;; | |
48 | +esac |
@@ -0,0 +1,66 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then | |
4 | + USE_LTO=0 | |
5 | + OPTIMIZE_LEVEL="-O0" | |
6 | + DEBUGFLAGS+=(-gdwarf) | |
7 | + DEBUGFLAGS+=(-gz) | |
8 | +elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then | |
9 | + OPTIMIZE_LEVEL="-O3" | |
10 | + DEBUGFLAGS+=(-gdwarf) | |
11 | + DEBUGFLAGS+=(-gz) | |
12 | +else | |
13 | + OPTIMIZE_LEVEL="-O3" | |
14 | +fi | |
15 | + | |
16 | +BASICOPTS+=(${OPTIMIZE_LEVEL}) | |
17 | +if [ "__x__${OPTIMIZE_LEVEL}" != "__x__-O0" ] ; then | |
18 | + COPTS+=(-fslp-vectorize) | |
19 | + COPTS+=(-fvectorize) | |
20 | + COPTS+=(-fstrict-vtable-pointers) | |
21 | + COPTS+=(-fstrict-enums) | |
22 | +fi | |
23 | +if [ __x__"${BUILD_TYPE}" != __x__Release ] ; then | |
24 | + COPTS+=(-Wa,--compress-debug-sections=zlib) | |
25 | +fi | |
26 | + | |
27 | +if [ $USE_LTO -ne 0 ] ; then | |
28 | + BASICOPTS+=(-flto) | |
29 | +fi | |
30 | + | |
31 | +. ${SCRIPTS_DIR}/additional_defines_simd_types_llvm.sh | |
32 | + | |
33 | +BASICOPTS+=(-Wreserved-user-defined-literal) | |
34 | + | |
35 | +DLL_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
36 | +EXE_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
37 | + | |
38 | +if [ $USE_LTO -ne 0 ] ; then | |
39 | + DLL_LDOPTS+=(-flto=jobserver) | |
40 | + EXE_LDOPTS+=(-flto=jobserver) | |
41 | +fi | |
42 | + | |
43 | +case ${BUILD_TYPE} in | |
44 | + Relwithdebinfo ) | |
45 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
46 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
47 | + if [ $USE_LTO -ne 0 ] ; then | |
48 | + DLL_LDOPTS+=(-Wl,--lto-O3) | |
49 | + EXE_LDOPTS+=(-Wl,--lto-O3) | |
50 | + fi | |
51 | + EXE_LDOPTS+=(-fwhole-program-vtables) | |
52 | + ;; | |
53 | + Debug ) | |
54 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
55 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
56 | + ;; | |
57 | + Release | * ) | |
58 | + DLL_LDOPTS+=(-s) | |
59 | + EXE_LDOPTS+=(-s) | |
60 | + if [ $USE_LTO -ne 0 ] ; then | |
61 | + DLL_LDOPTS+=(-Wl,--lto-O3) | |
62 | + EXE_LDOPTS+=(-Wl,--lto-O3) | |
63 | + fi | |
64 | + EXE_LDOPTS+=(-fwhole-program-vtables) | |
65 | + ;; | |
66 | +esac |
@@ -0,0 +1,64 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then | |
4 | + USE_LTO=0 | |
5 | + OPTIMIZE_LEVEL="-O0" | |
6 | + DEBUGFLAGS+=(-gdwarf) | |
7 | + DEBUGFLAGS+=(-gz) | |
8 | +elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then | |
9 | + OPTIMIZE_LEVEL="-O3" | |
10 | + DEBUGFLAGS+=(-gdwarf) | |
11 | + DEBUGFLAGS+=(-gz) | |
12 | +else | |
13 | + OPTIMIZE_LEVEL="-O3" | |
14 | +fi | |
15 | + | |
16 | +BASICOPTS+=(${OPTIMIZE_LEVEL}) | |
17 | +if [ "__x__${OPTIMIZE_LEVEL}" != "__x__-O0" ] ; then | |
18 | + COPTS+=(-fslp-vectorize) | |
19 | + COPTS+=(-fvectorize) | |
20 | + COPTS+=(-fstrict-vtable-pointers) | |
21 | + COPTS+=(-fstrict-enums) | |
22 | +fi | |
23 | + | |
24 | +if [ $USE_LTO -ne 0 ] ; then | |
25 | + BASICOPTS+=(-flto) | |
26 | +fi | |
27 | + | |
28 | +. ${SCRIPTS_DIR}/additional_defines_simd_types_llvm.sh | |
29 | + | |
30 | + | |
31 | +BASICOPTS+=(-Wreserved-user-defined-literal) | |
32 | + | |
33 | +DLL_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
34 | +EXE_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
35 | + | |
36 | +if [ $USE_LTO -ne 0 ] ; then | |
37 | + DLL_LDOPTS+=(-flto=jobserver) | |
38 | + EXE_LDOPTS+=(-flto=jobserver) | |
39 | +fi | |
40 | + | |
41 | +case ${BUILD_TYPE} in | |
42 | + Relwithdebinfo ) | |
43 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
44 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
45 | + if [ $USE_LTO -ne 0 ] ; then | |
46 | + DLL_LDOPTS+=(-Wl,--lto-O3) | |
47 | + EXE_LDOPTS+=(-Wl,--lto-O3) | |
48 | + fi | |
49 | + EXE_LDOPTS+=(-fwhole-program-vtables) | |
50 | + ;; | |
51 | + Debug ) | |
52 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
53 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
54 | + ;; | |
55 | + Release | * ) | |
56 | + DLL_LDOPTS+=(-s) | |
57 | + EXE_LDOPTS+=(-s) | |
58 | + if [ $USE_LTO -ne 0 ] ; then | |
59 | + DLL_LDOPTS+=(-Wl,--lto-O3) | |
60 | + EXE_LDOPTS+=(-Wl,--lto-O3) | |
61 | + fi | |
62 | + EXE_LDOPTS+=(-fwhole-program-vtables) | |
63 | + ;; | |
64 | +esac |
@@ -0,0 +1,57 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then | |
4 | + USE_LTO=0 | |
5 | + OPTIMIZE_LEVEL="-O0" | |
6 | + DEBUGFLAGS+=(-gdwarf) | |
7 | + DEBUGFLAGS+=(-gz) | |
8 | +elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then | |
9 | + OPTIMIZE_LEVEL="-O3" | |
10 | + DEBUGFLAGS+=(-gdwarf) | |
11 | + DEBUGFLAGS+=(-gz) | |
12 | +else | |
13 | + OPTIMIZE_LEVEL="-O3" | |
14 | +fi | |
15 | + | |
16 | +BASICOPTS+=(${OPTIMIZE_LEVEL}) | |
17 | + | |
18 | +if [ $USE_LTO -ne 0 ] ; then | |
19 | + BASICOPTS+=(-flto) | |
20 | +fi | |
21 | + | |
22 | +. ${SCRIPTS_DIR}/additional_defines_simd_types_llvm.sh | |
23 | + | |
24 | +BASICOPTS+=(-Wreserved-user-defined-literal) | |
25 | + | |
26 | +DLL_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
27 | +EXE_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
28 | + | |
29 | +if [ $USE_LTO -ne 0 ] ; then | |
30 | + DLL_LDOPTS+=(-flto=jobserver) | |
31 | + EXE_LDOPTS+=(-flto=jobserver) | |
32 | +fi | |
33 | + | |
34 | +case ${BUILD_TYPE} in | |
35 | + Relwithdebinfo ) | |
36 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
37 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
38 | + if [ $USE_LTO -ne 0 ] ; then | |
39 | + DLL_LDOPTS+=(-Wl,--lto-O3) | |
40 | + EXE_LDOPTS+=(-Wl,--lto-O3) | |
41 | + fi | |
42 | + EXE_LDOPTS+=(-fwhole-program-vtables) | |
43 | + ;; | |
44 | + Debug ) | |
45 | + DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
46 | + EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
47 | + ;; | |
48 | + Release | * ) | |
49 | + DLL_LDOPTS+=(-s) | |
50 | + EXE_LDOPTS+=(-s) | |
51 | + if [ $USE_LTO -ne 0 ] ; then | |
52 | + DLL_LDOPTS+=(-Wl,--lto-O3) | |
53 | + EXE_LDOPTS+=(-Wl,--lto-O3) | |
54 | + fi | |
55 | + EXE_LDOPTS+=(-fwhole-program-vtables) | |
56 | + ;; | |
57 | +esac |
@@ -0,0 +1,134 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +if [ "__x__${CROSS_LIBS_PREFIX}" = "__x__" ] ; then | |
4 | + CROSS_LIBS_PREFIX="/usr/local/lib/i586-mingw-msvc" | |
5 | +fi | |
6 | +if [ "__x__${CROSS_TOOLCHAIN_PREFIX}" = "__x__" ] ; then | |
7 | + CROSS_TOOLCHAIN_PREFIX="/opt/llvm-${TOOLCHAIN_VERSION}" | |
8 | +fi | |
9 | +if [ "__x__${CROSS_TOOLCHAIN_TRIPLE}" = "__x__" ] ; then | |
10 | + case ${TARGET_ARCH} in | |
11 | + i386 | i686 ) | |
12 | + CROSS_TOOLCHAIN_TRIPLE=i686-w64-mingw32 | |
13 | + ;; | |
14 | + x86_64 | amd64 ) | |
15 | + CROSS_TOOLCHAIN_TRIPLE=x86_64-w64-mingw32 | |
16 | + ;; | |
17 | + armv7 ) | |
18 | + CROSS_TOOLCHAIN_TRIPLE=armv7-w64-mingw32 | |
19 | + ;; | |
20 | + aarch64 ) | |
21 | + CROSS_TOOLCHAIN_TRIPLE=aarch64-w64-mingw32 | |
22 | + ;; | |
23 | + * ) | |
24 | + CROSS_TOOLCHAIN_TRIPLE=${TARGET_ARCH}-w64-mingw32 | |
25 | + ;; | |
26 | + esac | |
27 | +fi | |
28 | + | |
29 | +if [ "__x__${FFMPEG_NAME}" = "__x__" ] ; then | |
30 | + FFMPEG_NAME="ffmpeg-4.4" | |
31 | +fi | |
32 | +if [ "__x__${FFMPEG_DIR}" = "__x__" ] ; then | |
33 | + FFMPEG_DIR="${CROSS_LIBS_PREFIX}/${FFMPEG_NAME}" | |
34 | +fi | |
35 | +if [ "__x__${QT_PATH_SUFFIX}" = "__x__" ] ; then | |
36 | + QT_PATH_SUFFIX="Qt5.15/mingw_82x" | |
37 | +fi | |
38 | +if [ "__x__${QT_DIR}" = "__x__" ] ; then | |
39 | + QT_DIR="${CROSS_LIBS_PREFIX}/${QT_PATH_SUFFIX}" | |
40 | +fi | |
41 | + | |
42 | + | |
43 | +PATH=${CROSS_TOOLCHAIN_PREFIX}/${CROSS_TOOLCHAIN_TRIPLE}:$PATH | |
44 | + | |
45 | +if [ __x__"${BUILD_TYPE}" = __x__Debug ] ; then | |
46 | + USE_LTO=0 | |
47 | + OPTIMIZE_LEVEL="-O0" | |
48 | + DEBUGFLAGS+=(-g2) | |
49 | + DEBUGFLAGS+=(-ggdb) | |
50 | + DEBUGFLAGS+=(-gz=zlib) | |
51 | +elif [ __x__"${BUILD_TYPE}" = __x__Relwithdebinfo ] ; then | |
52 | + OPTIMIZE_LEVEL="-O3" | |
53 | + DEBUGFLAGS+=(-g2) | |
54 | + DEBUGFLAGS+=(-ggdb) | |
55 | + DEBUGFLAGS+=(-gz=zlib) | |
56 | +else | |
57 | + OPTIMIZE_LEVEL="-O3" | |
58 | +fi | |
59 | + | |
60 | +case ${TARGET_ARCH} in | |
61 | + i386 | i686 ) | |
62 | + BASICOPTS+=(-march=i686) | |
63 | + ;; | |
64 | + * ) | |
65 | + ;; | |
66 | +esac | |
67 | + | |
68 | + | |
69 | +BASICOPTS+=(${OPTIMIZE_LEVEL}) | |
70 | + | |
71 | +if [ $USE_LTO -ne 0 ] ; then | |
72 | + BASICOPTS+=(-flto) | |
73 | +fi | |
74 | + | |
75 | +# ToDo: Determine SIMD TYPES | |
76 | +. ${SCRIPTS_DIR}/additional_defines_simd_types_llvm.sh | |
77 | + | |
78 | +COPTS+=(-fno-builtin-stpcpy) | |
79 | +COPTS+=(-Dstpcpy\(d,s\)=__builtin_stpcpy\(d,s\)) | |
80 | + | |
81 | +COPTS+=(-D_aligned_malloc\(s,a\)=__mingw_aligned_malloc\(s,a\)) | |
82 | +COPTS+=(-D_aligned_free\(m\)=__mingw_aligned_free\(m\)) | |
83 | +COPTS+=(-D_aligned_offset_realloc\(m,s,a,o\)=__mingw_aligned_offset_realloc\(m,s,a,o\)) | |
84 | +COPTS+=(-D_aligned_realloc\(m,s,o\)=__mingw_aligned_realloc\(m,s,o\)) | |
85 | + | |
86 | + | |
87 | +BASICOPTS+=(-Wreserved-user-defined-literal) | |
88 | + | |
89 | +#DLL_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
90 | +#EXE_LDOPTS+=(-fuse-ld=lld-${TOOLCHAIN_VERSION}) | |
91 | +#if [ $USE_LTO -ne 0 ] ; then | |
92 | +# DLL_LDOPTS+=(-flto=jobserver) | |
93 | +# EXE_LDOPTS+=(-flto=jobserver) | |
94 | +#fi | |
95 | + | |
96 | +CMAKE_OPTS+=(-DLIBAV_ROOT_DIR="${FFMPEG_DIR}") | |
97 | +CMAKE_OPTS+=(-DQT5_ROOT_PATH="${QT_DIR}") | |
98 | +CMAKE_OPTS+=(-DTARGET_ARCH="${CROSS_TOOLCHAIN_TRIPLE}") | |
99 | +CMAKE_OPTS+=(-DLIBS_PREFIX="${CROSS_LIBS_PREFIX}") | |
100 | + | |
101 | +LDOPTS+=(-L${CROSS_TOOLCHAIN_PREFIX}/${CROSS_TOOLCHAIN_TRIPLE}/lib) | |
102 | +LDOPTS+=(-L/usr/${CROSS_TOOLCHAIN_TRIPLE}/lib) | |
103 | +case ${BUILD_TYPE} in | |
104 | + Relwithdebinfo ) | |
105 | + BASICOPTS+=(-fslp-vectorize) | |
106 | + BASICOPTS+=(-fslp-vectorize) | |
107 | + BASICOPTS+=(-fstrict-vtable-pointers) | |
108 | + BASICOPTS+=(-fstrict-enums) | |
109 | + #DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
110 | + #EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
111 | + #if [ $USE_LTO -ne 0 ] ; then | |
112 | + # DLL_LDOPTS+=(-Wl,--lto-O3) | |
113 | + # EXE_LDOPTS+=(-Wl,--lto-O3) | |
114 | + #fi | |
115 | + #EXE_LDOPTS+=(-fwhole-program-vtables) | |
116 | + ;; | |
117 | + Debug ) | |
118 | + #DLL_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
119 | + #EXE_LDOPTS+=(-Wl,--compress-debug-sections=zlib) | |
120 | + ;; | |
121 | + Release | * ) | |
122 | + BASICOPTS+=(-fslp-vectorize) | |
123 | + BASICOPTS+=(-fslp-vectorize) | |
124 | + BASICOPTS+=(-fstrict-vtable-pointers) | |
125 | + BASICOPTS+=(-fstrict-enums) | |
126 | + DLL_LDOPTS+=(-s) | |
127 | + EXE_LDOPTS+=(-s) | |
128 | + #if [ $USE_LTO -ne 0 ] ; then | |
129 | + # DLL_LDOPTS+=(-Wl,--lto-O3) | |
130 | + # EXE_LDOPTS+=(-Wl,--lto-O3) | |
131 | + #fi | |
132 | + #EXE_LDOPTS+=(-fwhole-program-vtables) | |
133 | + ;; | |
134 | +esac |
@@ -0,0 +1,36 @@ | ||
1 | +#!/bin/bash | |
2 | +# ToDo: Determine SIMD TYPES | |
3 | +case ${SIMD_TYPE} in | |
4 | + sse2 | SSE2 ) | |
5 | + BASICOPTS+=(-msse) | |
6 | + BASICOPTS+=(-msse2) | |
7 | + ;; | |
8 | + sse3 | SSE3 ) | |
9 | + BASICOPTS+=(-msse) | |
10 | + BASICOPTS+=(-msse2) | |
11 | + BASICOPTS+=(-msse3) | |
12 | + ;; | |
13 | + sse4 | SSE4 ) | |
14 | + BASICOPTS+=(-msse) | |
15 | + BASICOPTS+=(-msse2) | |
16 | + BASICOPTS+=(-msse3) | |
17 | + BASICOPTS+=(-msse4) | |
18 | + ;; | |
19 | + avx | AVX ) | |
20 | + BASICOPTS+=(-msse) | |
21 | + BASICOPTS+=(-msse2) | |
22 | + BASICOPTS+=(-msse3) | |
23 | + BASICOPTS+=(-msse4) | |
24 | + BASICOPTS+=(-mavx) | |
25 | + ;; | |
26 | + avx2 | AVX2 ) | |
27 | + BASICOPTS+=(-msse) | |
28 | + BASICOPTS+=(-msse2) | |
29 | + BASICOPTS+=(-msse3) | |
30 | + BASICOPTS+=(-msse4) | |
31 | + BASICOPTS+=(-mavx) | |
32 | + BASICOPTS+=(-mavx2) | |
33 | + ;; | |
34 | + * ) | |
35 | + ;; | |
36 | +esac |
@@ -0,0 +1,36 @@ | ||
1 | +#!/bin/bash | |
2 | +# ToDo: Determine SIMD TYPES | |
3 | +case ${SIMD_TYPE} in | |
4 | + sse2 | SSE2 ) | |
5 | + BASICOPTS+=(-msse) | |
6 | + BASICOPTS+=(-msse2) | |
7 | + ;; | |
8 | + sse3 | SSE3 ) | |
9 | + BASICOPTS+=(-msse) | |
10 | + BASICOPTS+=(-msse2) | |
11 | + BASICOPTS+=(-msse3) | |
12 | + ;; | |
13 | + sse4 | SSE4 ) | |
14 | + BASICOPTS+=(-msse) | |
15 | + BASICOPTS+=(-msse2) | |
16 | + BASICOPTS+=(-msse3) | |
17 | + BASICOPTS+=(-msse4) | |
18 | + ;; | |
19 | + avx | AVX ) | |
20 | + BASICOPTS+=(-msse) | |
21 | + BASICOPTS+=(-msse2) | |
22 | + BASICOPTS+=(-msse3) | |
23 | + BASICOPTS+=(-msse4) | |
24 | + BASICOPTS+=(-mavx) | |
25 | + ;; | |
26 | + avx2 | AVX2 ) | |
27 | + BASICOPTS+=(-msse) | |
28 | + BASICOPTS+=(-msse2) | |
29 | + BASICOPTS+=(-msse3) | |
30 | + BASICOPTS+=(-msse4) | |
31 | + BASICOPTS+=(-mavx) | |
32 | + BASICOPTS+=(-mavx2) | |
33 | + ;; | |
34 | + * ) | |
35 | + ;; | |
36 | +esac |
@@ -0,0 +1,256 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +# You can set variables before executing: | |
4 | +# SRCROOT : STRING | |
5 | +# CMAKEFILES_DIR : STRING : Set root directory of CMake scripts DEFAULT=${SRCROOT}/source/cmake . | |
6 | +# CMAKE_TOOLCHAINS_DIR : STRING : Set root directory of CMake Toolchains. DEFAULT=${CMAKEFILES__DIR}/toolchains . | |
7 | +# BUILD_TYPE : STRING : Set build type with CMAKE. DEFAULT="Relwithdebinfo". | |
8 | +# NO_INCLUDE_DEFAULTS : STRING : SET "1" not try to include default values. | |
9 | + | |
10 | +typeset -i USE_QT6 | |
11 | +typeset -i USE_LTO | |
12 | +typeset -i USE_CXX20 | |
13 | +USE_QT6=0 | |
14 | +USE_LTO=1 | |
15 | +USE_CXX20=0 | |
16 | + | |
17 | +declare -a SCRIPT_LIST | |
18 | +declare -a COPTS | |
19 | +declare -a EXE_LDOPTS | |
20 | +declare -a DLL_LDOPTS | |
21 | +declare -a CMAKE_OPTS | |
22 | + | |
23 | +# Below are defined by a variation. | |
24 | +declare -a COPTS_PREFIX | |
25 | +declare -a LDOPTS_PREFIX | |
26 | +declare -a EXE_LDOPTS_PREFIX | |
27 | +declare -a DLL_LDOPTS_PREFIX | |
28 | + | |
29 | +declare -a DEBUGFLAGS | |
30 | +declare -a BASICOPTS | |
31 | + | |
32 | + | |
33 | +# Interpret arguments. | |
34 | +if [ __x__"${NO_INCLUDE_DEFAULTS}" != __x__1 ] ; then | |
35 | + if [ -e build_setup_defaults.txt ] ; then | |
36 | + . build_setup_defaults.txt | |
37 | + fi | |
38 | +fi | |
39 | +if [ __x__"${TARGET_ARCH}" = __x__ ] ; then | |
40 | + TARGET_ARCH=x86_64 | |
41 | +fi | |
42 | + | |
43 | + | |
44 | +for x in $@ ; do | |
45 | + case "$1" in | |
46 | + --srcroot | -r ) | |
47 | + shift | |
48 | + SRCROOT="$1" | |
49 | + ;; | |
50 | + --scripts-dir | -s ) | |
51 | + shift | |
52 | + SCRIPTS_DIR="$1" | |
53 | + ;; | |
54 | + --build-type | -type | -t ) | |
55 | + shift | |
56 | + BUILD_TYPE="$1" | |
57 | + ;; | |
58 | + --copts ) | |
59 | + shift | |
60 | + COPTS+=("$1") | |
61 | + ;; | |
62 | + --ldopts ) | |
63 | + shift | |
64 | + LDOPTS+=("$1") | |
65 | + ;; | |
66 | + --dll-ldopts ) | |
67 | + shift | |
68 | + DLL_LDOPTS+=("$1") | |
69 | + ;; | |
70 | + --exe-ldopts ) | |
71 | + shift | |
72 | + EXE_LDOPTS+=("$1") | |
73 | + ;; | |
74 | + --cmakefiles-dir | -d ) | |
75 | + shift | |
76 | + CMAKEFILES_DIR="$1" | |
77 | + ;; | |
78 | + --cmake-toolchains-dir | -td ) | |
79 | + shift | |
80 | + CMAKE_TOOLCHAINS_DIR="$1" | |
81 | + ;; | |
82 | + --cmake-toolchain-name | --toolchain | -t ) | |
83 | + shift | |
84 | + TOOLCHAIN_NAME="$1" | |
85 | + ;; | |
86 | + --toolchain-type | --type ) | |
87 | + shift | |
88 | + TOOLCHAIN_TYPE="$1" | |
89 | + ;; | |
90 | + --toolchain-version | --V ) | |
91 | + shift | |
92 | + TOOLCHAIN_VERSION="$1" | |
93 | + ;; | |
94 | + --toolchain-path ) | |
95 | + shift | |
96 | + TOOLCHAIN_PATH="$1" | |
97 | + ;; | |
98 | + --cross-build-type | -c ) | |
99 | + shift | |
100 | + CROSS_BUILD_TYPE="$1" | |
101 | + ;; | |
102 | + --cross-libs-prefix ) | |
103 | + shift | |
104 | + CROSS_LIBS_PREFIX="$1" | |
105 | + ;; | |
106 | + --target-arch | -a ) | |
107 | + shift | |
108 | + TARGET_ARCH="$1" | |
109 | + ;; | |
110 | + --qt6 | -6 ) | |
111 | + USE_QT6=1 | |
112 | + ;; | |
113 | + --qt5 | --no-qt6 | -5) | |
114 | + USE_QT6=0 | |
115 | + ;; | |
116 | + --lto ) | |
117 | + USE_LTO=1 | |
118 | + ;; | |
119 | + --no-lto ) | |
120 | + USE_LTO=0 | |
121 | + ;; | |
122 | + --cxx20 | --cxx-20 | -20 ) | |
123 | + USE_CXX20=1 | |
124 | + ;; | |
125 | + --no-cxx20 | --no-cxx-20 | -oldcxx ) | |
126 | + USE_CXX20=0 | |
127 | + ;; | |
128 | + --include | -I ) | |
129 | + shift | |
130 | + if [ -x "$1" ] ; then | |
131 | + . $1 | |
132 | + fi | |
133 | + ;; | |
134 | + esac | |
135 | + shift | |
136 | +done | |
137 | + | |
138 | +# Determine soruce root | |
139 | +if [ __x__"${SRCROOT}" = __x__ ] ; then | |
140 | + SRCROOT="${PWD}/../.." | |
141 | +fi | |
142 | +if [ __x__"${BUILD_TYPE}" = __x__ ] ; then | |
143 | + BUILD_TYPE="Releithdebinfo" | |
144 | +fi | |
145 | +if [ __x__"${CMAKEFILES_DIR}" = __x__ ] ; then | |
146 | + CMAKEFILES_DIR="${SRCROOT}/source/cmake" | |
147 | +fi | |
148 | +if [ __x__"${CMAKE_TOOLCHAINS_DIR}" = __x__ ] ; then | |
149 | + CMAKE_TOOLCHAINS_DIR="${CMAKEFILES_DIR}/toolchains" | |
150 | +fi | |
151 | +if [ __x__"${SCRIPTS_DIR}" = __x__ ] ; then | |
152 | + SCRIPTS_DIR="${SRCROOT}/source/setup-scripts" | |
153 | +fi | |
154 | + | |
155 | +if [ __x__"${CROSS_BUILD_TYPE}" != __x__ ] ; then | |
156 | + TOOLCHAIN_NAME_PREFIX="toolchain_${CROSS_BUILD_TYPE}_cross" | |
157 | + ADITIONAL_DEFINES_PREFIX="additional_defines_${CROSS_BUILD_TYPE}_cross" | |
158 | +else | |
159 | + TOOLCHAIN_NAME_PREFIX="toolchain_native" | |
160 | + ADITIONAL_DEFINES_PREFIX="additional_defines" | |
161 | +fi | |
162 | +case "${TOOLCHAIN_TYPE}" in | |
163 | + llvm* | llvm ) | |
164 | + if [ __x__"${TOOLCHAIN_VERSION}" = __x__ ] ; then | |
165 | + TOOLCHAIN_VERSION=12 | |
166 | + fi | |
167 | + CMAKE_OPTS+=(-DCMAKE_CSP_LLVM_VERSION=${TOOLCHAIN_VERSION}) | |
168 | + ;; | |
169 | + gcc* | gcc ) | |
170 | + if [ __x__"${TOOLCHAIN_VERSION}" = __x__ ] ; then | |
171 | + TOOLCHAIN_VERSION=11 | |
172 | + fi | |
173 | + CMAKE_OPTS+=(-DCMAKE_CSP_GCC_VERSION=${TOOLCHAIN_VERSION}) | |
174 | + ;; | |
175 | + * ) | |
176 | + if [ __x__"${TOOLCHAIN_VERSION}" = __x__ ] ; then | |
177 | + TOOLCHAIN_VERSION=11 | |
178 | + fi | |
179 | + CMAKE_OPTS+=(-DCMAKE_CSP_GCC_VERSION=${TOOLCHAIN_VERSION}) | |
180 | + ;; | |
181 | +esac | |
182 | +if [ __x__"${TOOLCHAIN_NAME}" = __x__ ] ; then | |
183 | + case "${TOOLCHAIN_TYPE}" in | |
184 | + llvm* ) | |
185 | + TOOLCHAIN_NAME="${TOOLCHAIN_NAME_PREFIX}_llvm-versioned.cmake" | |
186 | + TOOLCHAIN_SHORT_NAME="llvm" | |
187 | + ;; | |
188 | + gcc* ) | |
189 | + TOOLCHAIN_NAME="${TOOLCHAIN_NAME_PREFIX}_gcc${TOOLCHAIN_VERSION}.cmake" | |
190 | + TOOLCHAIN_SHORT_NAME="gcc" | |
191 | + ;; | |
192 | + * ) | |
193 | + TOOLCHAIN_NAME="${TOOLCHAIN_NAME_PREFIX}_gcc${TOOLCHAIN_VERSION}.cmake" | |
194 | + TOOLCHAIN_SHORT_NAME="gcc" | |
195 | + ;; | |
196 | + esac | |
197 | +fi | |
198 | + | |
199 | +if [ $USE_QT6 -ne 0 ] ; then | |
200 | + CMAKE_OPTS+=(-DUSE_QT_6=ON) | |
201 | +else | |
202 | + CMAKE_OPTS+=(-DUSE_QT_6=OFF) | |
203 | +fi | |
204 | + | |
205 | +if [ $USE_LTO -ne 0 ] ; then | |
206 | + CMAKE_OPTS+=(-DUSE_LTO=ON) | |
207 | +else | |
208 | + CMAKE_OPTS+=(-DUSE_LTO=OFF) | |
209 | +fi | |
210 | + | |
211 | +if [ $USE_CXX20 -ne 0 ] ; then | |
212 | + CMAKE_OPTS+=(-DCSP_BUILD_WITH_CXX20=ON) | |
213 | +else | |
214 | + CMAKE_OPTS+=(-DCSP_BUILD_WITH_CXX20=OFF) | |
215 | +fi | |
216 | + | |
217 | +ADDITONAL_DEFINES_FILE=" ${SCRIPTS_DIR}/${ADITIONAL_DEFINES_PREFIX}_${TOOLCHAIN_SHORT_NAME}${TOOLCHAIN_VERSION}.sh" | |
218 | +echo ${ADDITONAL_DEFINES_FILE} | |
219 | + | |
220 | +if [ __x__"${SIMD_TYPE}" = __x__ ] ; then | |
221 | + case ${TARGET_ARCH} in | |
222 | + arm64 | armv9 ) | |
223 | + SIMD_TYPE="" | |
224 | + ;; | |
225 | + x86_64 | i386 | i686 | * ) | |
226 | + SIMD_TYPE=sse2 | |
227 | + ;; | |
228 | + esac | |
229 | +fi | |
230 | + | |
231 | +# ToDo: Default values | |
232 | +if [ -e ${ADDITONAL_DEFINES_FILE} ] ; then | |
233 | + . ${ADDITONAL_DEFINES_FILE} | |
234 | +fi | |
235 | + | |
236 | + | |
237 | +CMAKE_ARG_LIST="" | |
238 | + | |
239 | +COPTS_ARG_STR=`echo ${BASICOPTS[@]} ${DEBUGFLAGS[@]} ${COPTS_PREFIX[@]} ${COPTS[@]}` | |
240 | +EXE_LDOPTS_STR=`echo ${BASICOPTS[@]} ${DEBUGFLAGS[@]} ${LDOPTS_PREFIX[@]} ${EXE_LDOPTS_PREFIX[@]} ${LDOPTS[@]} ${EXE_LDOPTS[@]}` | |
241 | +DLL_LDOPTS_STR=`echo ${BASICOPTS[@]} ${DEBUGFLAGS[@]} ${LDOPTS_PREFIX[@]} ${DLL_LDOPTS_PREFIX[@]} ${LDOPTS[@]} ${DLL_LDOPTS[@]}` | |
242 | + | |
243 | + | |
244 | + | |
245 | +# GO! | |
246 | +cmake "${SRCROOT}/source" \ | |
247 | + -DCMAKE_TOOLCHAIN_FILE="${CMAKE_TOOLCHAINS_DIR}/${TOOLCHAIN_NAME}" \ | |
248 | + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |
249 | + ${CMAKE_OPTS_PREFIX[@]} \ | |
250 | + -DCMAKE_C_FLAGS="${COPTS_ARG_STR}" \ | |
251 | + -DCMAKE_CXX_FLAGS="${COPTS_ARG_STR}" \ | |
252 | + -DCMAKE_EXE_LINKER_FLAGS="${EXE_LDOPTS_STR}" \ | |
253 | + -DCMAKE_MODULE_LINKER_FLAGS="${DLL_LDOPTS_STR}" \ | |
254 | + ${CMAKE_OPTS[@]} \ | |
255 | + | |
256 | + |
@@ -0,0 +1,11 @@ | ||
1 | +# Copy this to CURRENT_DIR/build_setup_defaults.txt . | |
2 | +BUILD_TYPE=Relwithdebinfo | |
3 | +TOOLCHAIN_TYPE=llvm | |
4 | +TOOLCHAIN_VERSION=13 | |
5 | + | |
6 | +USE_QT6=1 | |
7 | +USE_LTO=1 | |
8 | +USE_CXX20=1 | |
9 | + | |
10 | + | |
11 | + |