new build method
[vg.git] / vg_build.sh
1 #!/bin/bash
2 # Copyright (C) 2021-2022 Harry Godden (hgn) - All Rights Reserved
3
4 # Util
5 # ==============================================================================
6 error(){
7 echo -e "\033[1;31mError:\e[0m $@"
8 exit 1
9 }
10
11 warning(){
12 echo -e "\033[1;33mWarning:\e[0m $@"
13 }
14
15 success(){
16 echo -e "\033[1;32mSuccess:\e[0m $@"
17 }
18
19 logit(){
20 echo -e "\033[0;37m$@\e[0m"
21 }
22
23 titleit(){
24 echo ""
25 echo -e "\033[1;35m$@\e[0m"
26 echo "================================================================"
27 echo ""
28 }
29
30 titleit " vg_build.sh ver: 2.0\n"
31
32 # Compile shit
33 # ==============================================================================
34
35 compiler_cache="ccache"
36
37 # Autodetect ccache unavailible
38 if ! [ -x "$( command -v $compiler_cache )" ]; then
39 compiler_cache=""
40 fi
41
42 compile_x(){
43 mkdir $_folder -p
44
45 cmd="$compiler_cache $_compiler
46 $_options
47 $_warnings
48 $_include
49 $_library
50 $_src
51 -o $_folder/$_dst$_ext
52 $_link
53 $_epilogue"
54
55 logit " $cmd\n"
56 $cmd
57
58 if [ $? -ne 0 ]; then
59 error "compiler failed"
60 fi
61
62 success "Compiled item\n"
63 }
64
65 # Tools scripts
66 # ==============================================================================
67 enable_tools=false
68
69 vg_compile_tools() {
70 if [ $enable_tools = true ]; then source vg/src/tools.sh; fi
71 }
72
73 tools() {
74 enable_tools=true
75 }
76
77 $1
78 $2
79 $3
80 $4
81 $5
82 $6
83 $7
84 $8
85 $9