build scripts updated

This commit is contained in:
timerix 2023-03-31 17:14:49 +06:00
parent 930aa029d3
commit 21709b788a
8 changed files with 28 additions and 9 deletions

3
.gitignore vendored
View File

@ -1,6 +1,7 @@
# build results # build results
bin/ bin/
obj/ obj/
libs/
*.log *.log
*.tmp *.tmp
@ -11,6 +12,6 @@ obj/
*.user *.user
*.vcxproj.filters *.vcxproj.filters
# other files # user files
.old*/ .old*/
current.config current.config

View File

@ -8,9 +8,21 @@ GUI is based on [Dear ImGui](https://github.com/ocornut/imgui) and [SDL](https:/
```shell ```shell
git clone --recurse-submodules https://github.com/Timerix22/GraphC git clone --recurse-submodules https://github.com/Timerix22/GraphC
``` ```
2. Install **SDL2** from package manager or compile it from source (read [SDL docs](SDL/docs/README.md)). 2. Install **SDL2** from package manager or compile it from source
```shell
cd SDL2
./configute
make -j [number of cpu cores]
make install
# on windows
mkdir ../libs
cp ./build/.libs/*.dll ../libs/
```
If it didn't work, read [SDL docs](SDL2/docs/README.md) and [INSTALL.txt](SDL2/INSTALL.txt)).
3. Compile the program 3. Compile the program
```shell ```shell
make build_exec make build_exec
``` ```
4. Copy program files from `bin/*` to any directory 4. Copy program files from `bin/*` to any directory

2
cbuild

@ -1 +1 @@
Subproject commit d72aa0c8098fe2a427e50355250f473d70886502 Subproject commit 2bebe76c7e14155392a167bdda61113d0039e188

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
CBUILD_VERSION=6 CBUILD_VERSION=6
CONFIG_VERSION=2 CONFIG_VERSION=3
PROJECT="GraphC" PROJECT="GraphC"
CMP_C="gcc" CMP_C="gcc"
@ -26,11 +26,13 @@ OUTDIR="bin"
case "$OS" in case "$OS" in
WINDOWS) WINDOWS)
EXEC_FILE="$PROJECT.exe" EXEC_FILE="$PROJECT.exe"
INCLUDE="-I./imgui -I/usr/include/SDL2"
LINKER_LIBS="-L./$OBJDIR/libs/ -lSDL2 -lopengl32"
;; ;;
LINUX) LINUX)
EXEC_FILE="$PROJECT" EXEC_FILE="$PROJECT"
INCLUDE="-I./imgui -I/usr/include/SDL2" INCLUDE="-I./imgui -I/usr/include/SDL2"
LINKER_SHARED_LIBS="-lSDL2 -lGL" LINKER_LIBS="-lSDL2 -lGL"
;; ;;
*) *)
error "operating system $OS has no configuration variants" error "operating system $OS has no configuration variants"
@ -52,7 +54,7 @@ case "$TASK" in
# -fuse-linker-plugin is required to use static libs with lto, it strips away all # -fuse-linker-plugin is required to use static libs with lto, it strips away all
C_ARGS="-O2 -flto=auto -fuse-linker-plugin -fprofile-use -fprofile-prefix-path=$(realpath $OBJDIR)/objects" C_ARGS="-O2 -flto=auto -fuse-linker-plugin -fprofile-use -fprofile-prefix-path=$(realpath $OBJDIR)/objects"
CPP_ARGS="$C_ARGS" CPP_ARGS="$C_ARGS"
LINKER_ARGS="$CPP_ARGS $LINKER_SHARED_LIBS" LINKER_ARGS="$CPP_ARGS $LINKER_LIBS"
PRE_TASK_SCRIPT=tasks/pre_build.sh PRE_TASK_SCRIPT=tasks/pre_build.sh
TASK_SCRIPT=cbuild/default_tasks/build_exec.sh TASK_SCRIPT=cbuild/default_tasks/build_exec.sh
KEREP_BUILD_TASK=build_static_lib KEREP_BUILD_TASK=build_static_lib
@ -61,7 +63,7 @@ case "$TASK" in
build_exec_dbg) build_exec_dbg)
C_ARGS="-O0 -g" C_ARGS="-O0 -g"
CPP_ARGS="$C_ARGS" CPP_ARGS="$C_ARGS"
LINKER_ARGS="$CPP_ARGS $LINKER_SHARED_LIBS" LINKER_ARGS="$CPP_ARGS $LINKER_LIBS"
PRE_TASK_SCRIPT=tasks/pre_build.sh PRE_TASK_SCRIPT=tasks/pre_build.sh
TASK_SCRIPT=cbuild/default_tasks/build_exec.sh TASK_SCRIPT=cbuild/default_tasks/build_exec.sh
KEREP_BUILD_TASK=build_static_lib_dbg KEREP_BUILD_TASK=build_static_lib_dbg

2
imgui

@ -1 +1 @@
Subproject commit ed66d7c4a5bf09743bc9c719e65479c93783f1e6 Subproject commit 3e08a7e76e7e275e90d22d9081c01e0515d187b0

@ -1 +0,0 @@
Subproject commit ed66d7c4a5bf09743bc9c719e65479c93783f1e6

View File

@ -2,3 +2,5 @@
myprint "${WHITE}deleting .kerep_rebuild.tmp" myprint "${WHITE}deleting .kerep_rebuild.tmp"
rm -rf .kerep_rebuild.tmp rm -rf .kerep_rebuild.tmp
myprint "${WHITE}deleting .imgui_rebuild.tmp"
rm -rf .imgui_rebuild.tmp

View File

@ -22,3 +22,6 @@ function handle_static_dependency {
handle_static_dependency kerep $KEREP_BUILD_TASK handle_static_dependency kerep $KEREP_BUILD_TASK
handle_static_dependency imgui $KEREP_BUILD_TASK handle_static_dependency imgui $KEREP_BUILD_TASK
# copy all precompiled libs
cp libs/* $OBJDIR/libs/