new build method
[vg.git] / vg_build.sh
diff --git a/vg_build.sh b/vg_build.sh
new file mode 100644 (file)
index 0000000..9ea7867
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/bash
+# Copyright (C) 2021-2022 Harry Godden (hgn) - All Rights Reserved
+
+# Util
+# ==============================================================================
+error(){
+    echo -e "\033[1;31mError:\e[0m $@"
+    exit 1
+}
+
+warning(){
+    echo -e "\033[1;33mWarning:\e[0m $@"
+}
+
+success(){
+   echo -e "\033[1;32mSuccess:\e[0m $@"
+}
+
+logit(){
+   echo -e "\033[0;37m$@\e[0m"
+}
+
+titleit(){
+   echo ""
+   echo -e "\033[1;35m$@\e[0m"
+   echo "================================================================"
+   echo ""
+}
+
+titleit "      vg_build.sh ver: 2.0\n"
+
+# Compile shit
+# ==============================================================================
+
+compiler_cache="ccache"
+
+# Autodetect ccache unavailible
+if ! [ -x "$( command -v $compiler_cache )" ]; then
+   compiler_cache=""
+fi
+
+compile_x(){
+   mkdir $_folder -p
+
+   cmd="$compiler_cache $_compiler 
+        $_options
+        $_warnings
+        $_include
+        $_library
+        $_src
+        -o $_folder/$_dst$_ext
+        $_link
+        $_epilogue"
+
+   logit "    $cmd\n"
+   $cmd
+
+       if [ $? -ne 0 ]; then
+               error "compiler failed"
+       fi
+
+   success "Compiled item\n"
+}
+
+# Tools scripts
+# ==============================================================================
+enable_tools=false
+
+vg_compile_tools() {
+   if [ $enable_tools = true ]; then source vg/src/tools.sh; fi
+}
+
+tools() {
+   enable_tools=true
+}
+
+$1
+$2
+$3
+$4
+$5
+$6
+$7
+$8
+$9