call_task

This commit is contained in:
timerix 2022-09-09 21:27:34 +06:00
parent 881764061a
commit e20733c173
12 changed files with 81 additions and 97 deletions

16
call_task.sh Normal file
View File

@ -0,0 +1,16 @@
#!/bin/bash
tabs 4
TASK=$1
print "${CYAN}===========[$TASK]===========\n"
source cbuild/init.sh
#pre_build
clear_dir $OBJDIR
clear_dir $OUTDIR
if [ -f "$PRE_BUILD_SCRIPT" ]; then
print "${BLUE}executing $PRE_BUILD_SCRIPT"
source "$PRE_BUILD_SCRIPT"
fi
./$TASK_SCRIPT

View File

@ -1,24 +1,24 @@
###### Build cbuild/default_tasks ####### ###### Build cbuild/default_tasks #######
build_exec: build_exec:
@cbuild/default_tasks/build_exec.sh @cbuild/call_task.sh build_exec
build_exec_dbg: build_exec_dbg:
@cbuild/default_tasks/build_exec_dbg.sh @cbuild/call_task.sh build_exec_dbg
build_shared_lib: build_shared_lib:
@cbuild/default_tasks/build_shared_lib.sh @cbuild/call_task.sh build_shared_lib
build_shared_lib_dbg: build_shared_lib_dbg:
@cbuild/default_tasks/build_shared_lib_dbg.sh @cbuild/call_task.sh build_shared_lib_dbg
build_static_lib: build_static_lib:
@cbuild/default_tasks/build_static_lib.sh @cbuild/call_task.sh build_static_lib
build_static_lib_dbg: build_static_lib_dbg:
@cbuild/default_tasks/build_static_lib_dbg.sh @cbuild/call_task.sh build_static_lib_dbg
###### Launch cbuild/default_tasks ####### ###### Launch cbuild/default_tasks #######
exec: build_exec exec: build_exec
@cbuild/default_tasks/exec.sh @cbuild/call_task.sh exec
valgrind: build_exec_dbg valgrind: build_exec_dbg
@cbuild/default_tasks/valgrind.sh @cbuild/call_task.sh valgrind
all: build_exec all: build_exec

View File

@ -1,8 +1,6 @@
#!/bin/bash #!/bin/bash
PROJECT=some_project PROJECT=some_project
OUTDIR=bin
OBJDIR=obj
CMP_C=gcc CMP_C=gcc
CMP_CPP=g++ CMP_CPP=g++
STD_C=c11 STD_C=c11
@ -13,34 +11,55 @@ SRC_C="$( find src -name '*.c')"
SRC_CPP="$( find src -name '*.cpp')" SRC_CPP="$( find src -name '*.cpp')"
TESTS_C="$( find tests -name '*.c')" TESTS_C="$( find tests -name '*.c')"
TESTS_CPP="$(find tests -name '*.cpp')" TESTS_CPP="$(find tests -name '*.cpp')"
VALGRIND_ARGS="-s --log-file=valgrind.log --read-var-info=yes --track-origins=yes --fullpath-after=$PROJECT/ --leak-check=full --show-leak-kinds=all"
OUTDIR=bin
OBJDIR=obj
EXEC_FILE=$PROJECT.com
SHARED_LIB_FILE=$PROJECT.so
STATIC_LIB_FILE=$PROJECT.a
PRE_BUILD_SCRIPT=tasks/pre_build.sh PRE_BUILD_SCRIPT=tasks/pre_build.sh
# build_exec case $TASK in
EXEC_FILE=$PROJECT.com build_exec)
BUILD_EXEC_C_ARGS="-O2" C_ARGS="-O2"
BUILD_EXEC_CPP_ARGS="$BUILD_EXEC_C_ARGS" CPP_ARGS="$C_ARGS"
BUILD_EXEC_LINKER_ARGS="" LINKER_ARGS=""
# build_exec_dbg TASK_SCRIPT="cbuild/build_exec.sh"
BUILD_EXEC_DBG_C_ARGS="-O0 -g" ;;
BUILD_EXEC_DBG_CPP_ARGS="$BUILD_EXEC_DBG_C_ARGS" build_exec_dbg)
BUILD_EXEC_DBG_LINKER_ARGS="" C_ARGS="-O0 -g"
CPP_ARGS="$C_ARGS"
# build_shared_lib LINKER_ARGS=""
SHARED_LIB_FILE=$PROJECT.so TASK_SCRIPT="cbuild/build_exec.sh"
BUILD_SHARED_LIB_C_ARGS="-O2 -fpic -flto -shared" ;;
BUILD_SHARED_LIB_CPP_ARGS="$BUILD_SHARED_LIB_C_ARGS" build_shared_lib)
BUILD_SHARED_LIB_LINKER_ARGS="-Wl,-soname,$SHARED_LIB_FILE" C_ARGS="-O2 -fpic -flto -shared"
# build_shared_lib_dbg CPP_ARGS="$C_ARGS"
BUILD_SHARED_LIB_DBG_C_ARGS="-O0 -g -fpic -shared" LINKER_ARGS="-Wl,-soname,$SHARED_LIB_FILE"
BUILD_SHARED_LIB_DBG_CPP_ARGS="$BUILD_SHARED_LIB_C_ARGS" TASK_SCRIPT="cbuild/build_shared_lib.sh"
BUILD_SHARED_LIB_DBG_LINKER_ARGS="-Wl,-soname,$SHARED_LIB_FILE" ;;
build_shared_lib_dbg
# build_static_lib C_ARGS="-O0 -g -fpic -shared"
STATIC_LIB_FILE=$PROJECT.a CPP_ARGS="$C_ARGS"
BUILD_STATIC_LIB_C_ARGS="-O2 -fpic" LINKER_ARGS="-Wl,-soname,$SHARED_LIB_FILE"
BUILD_STATIC_LIB_CPP_ARGS="$BUILD_STATIC_LIB_C_ARGS" TASK_SCRIPT="cbuild/build_shared_lib.sh"
# build_static_lib_dbg ;;
BUILD_STATIC_LIB_DBG_C_ARGS="-O0 -g" build_static_lib)
BUILD_STATIC_LIB_DBG_CPP_ARGS="$BUILD_STATIC_LIB_DBG_C_ARGS" C_ARGS="-O2 -fpic"
CPP_ARGS="$C_ARGS"
TASK_SCRIPT="cbuild/build_static_lib.sh"
;;
build_static_lib_dbg)
C_ARGS="-O0 -g"
CPP_ARGS="$C_ARGS"
TASK_SCRIPT="cbuild/build_static_lib.sh"
;;
exec)
TASK_SCRIPT="cbuild/exec.sh"
;;
valgrind)
VALGRIND_ARGS="-s --log-file=valgrind.log --read-var-info=yes --track-origins=yes --fullpath-after=$PROJECT/ --leak-check=full --show-leak-kinds=all"
TASK_SCRIPT="cbuild/valgrind.sh"
;;
esac

View File

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
source cbuild/init.sh compile_c "$C_ARGS" "$SRC_C $TESTS_C"
compile_cpp "$CPP_ARGS" "$SRC_CPP $TESTS_CPP"
print "${CYAN}=============[build_exec]=============\n" link "$CPP_ARGS $LINKER_ARGS" "$EXEC_FILE"
compile_c "$BUILD_EXEC_C_ARGS" "$SRC_C $TESTS_C"
compile_cpp "$BUILD_EXEC_CPP_ARGS" "$SRC_CPP $TESTS_CPP"
link "$BUILD_EXEC_CPP_ARGS $BUILD_EXEC_LINKER_ARGS" "$EXEC_FILE"

View File

@ -1,8 +0,0 @@
#!/bin/bash
source cbuild/init.sh
print "${CYAN}===========[build_exec_dbg]===========\n"
compile_c "$BUILD_EXEC_DBG_C_ARGS" "$SRC_C $TESTS_C"
compile_cpp "$BUILD_EXEC_DBG_CPP_ARGS" "$SRC_CPP $TESTS_CPP"
link "$BUILD_EXEC_DBG_CPP_ARGS $BUILD_EXEC_DBG_LINKER_ARGS" "$EXEC_FILE"

View File

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
source cbuild/init.sh compile_c "$C_ARGS" "$SRC_C"
compile_cpp "$CPP_ARGS" "$SRC_CPP"
print "${CYAN}==========[build_shared_lib]==========\n" link "$CPP_ARGS $LINKER_ARGS" "$SHARED_LIB_FILE"
compile_c "$BUILD_SHARED_LIB_C_ARGS" "$SRC_C"
compile_cpp "$BUILD_SHARED_LIB_CPP_ARGS" "$SRC_CPP"
link "$BUILD_SHARED_LIB_CPP_ARGS $BUILD_SHARED_LIB_LINKER_ARGS" "$SHARED_LIB_FILE"

View File

@ -1,8 +0,0 @@
#!/bin/bash
source cbuild/init.sh
print "${CYAN}========[build_shared_lib_dbg]========\n"
compile_c "$BUILD_SHARED_LIB_DBG_C_ARGS" "$SRC_C"
compile_cpp "$BUILD_SHARED_LIB_DBG_CPP_ARGS" "$SRC_CPP"
link "$BUILD_SHARED_LIB_DBG_CPP_ARGS $BUILD_SHARED_LIB_DBG_LINKER_ARGS" "$SHARED_LIB_FILE"

View File

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
source cbuild/init.sh compile_c "$C_ARGS" "$SRC_C"
compile_cpp "$CPP_ARGS" "$SRC_CPP"
print "${CYAN}==========[build_static_lib]==========\n"
compile_c "$BUILD_STATIC_LIB_C_ARGS" "$SRC_C"
compile_cpp "$BUILD_STATIC_LIB_CPP_ARGS" "$SRC_CPP"
pack_static_lib "$STATIC_LIB_FILE" pack_static_lib "$STATIC_LIB_FILE"

View File

@ -1,8 +0,0 @@
#!/bin/bash
source cbuild/init.sh
print "${CYAN}==========[build_static_lib_dbg]==========\n"
compile_c "$BUILD_STATIC_LIB_DBG_C_ARGS" "$SRC_C"
compile_cpp "$BUILD_STATIC_LIB_DBG_CPP_ARGS" "$SRC_CPP"
pack_static_lib "$STATIC_LIB_FILE"

View File

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
source cbuild/init.sh
print "${CYAN}================[exec]================\n"
cd $OUTDIR cd $OUTDIR
./$EXEC_FILE ./$EXEC_FILE
cd .. cd ..

View File

@ -1,8 +1,5 @@
#!/bin/bash #!/bin/bash
source cbuild/init.sh
print "${CYAN}==============[valgrind]==============\n"
cd $OUTDIR cd $OUTDIR
valgrind $VALGRIND_ARGS ./$EXEC_FILE valgrind $VALGRIND_ARGS ./$EXEC_FILE
cat "valgrind.log" cat "valgrind.log"

12
init.sh
View File

@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
tabs 4
source cbuild/colors.sh source cbuild/colors.sh
source cbuild/functions.sh source cbuild/functions.sh
@ -16,14 +14,4 @@ if [ ! -f ".config" ]; then
print "${YELLOW}Default config created.\nEdit it's values.\n" print "${YELLOW}Default config created.\nEdit it's values.\n"
exit exit
fi fi
source .config source .config
clear_dir $OBJDIR
clear_dir $OUTDIR
#pre_build
if [ -f "$PRE_BUILD_SCRIPT" ]; then
print "${BLUE}executing $PRE_BUILD_SCRIPT"
source "$PRE_BUILD_SCRIPT"
fi