From 3dc7d72a505d32de1fb2d6a65e0461b8f0b55325 Mon Sep 17 00:00:00 2001 From: Stefan Stefanov Date: Mon, 22 Apr 2024 10:07:02 +0300 Subject: [PATCH] added tinyfiledialogs as a submodule & updated the build scripts for linux/mac --- .gitignore | 3 ++- .gitmodules | 3 +++ scripts/build_debug.sh | 0 scripts/build_hot_reload.sh | 4 ++-- src/dialog/build.sh | 7 +++++++ src/dialog/tinyfiledialog.odin | 6 ++---- 6 files changed, 16 insertions(+), 7 deletions(-) mode change 100644 => 100755 scripts/build_debug.sh mode change 100644 => 100755 scripts/build_hot_reload.sh create mode 100755 src/dialog/build.sh diff --git a/.gitignore b/.gitignore index b467572..b1203b3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ linux build/ build_generator/ -ols.json \ No newline at end of file +ols.json +libtinyfiledialogs.a \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 6282b93..e4908a1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "src/aseprite"] path = src/aseprite url = https://github.com/bersK/odin-aseprite.git +[submodule "src/dialog/libtinyfiledialogs"] + path = src/dialog/libtinyfiledialogs + url = https://github.com/native-toolkit/libtinyfiledialogs.git diff --git a/scripts/build_debug.sh b/scripts/build_debug.sh old mode 100644 new mode 100755 diff --git a/scripts/build_hot_reload.sh b/scripts/build_hot_reload.sh old mode 100644 new mode 100755 index 99bbd1d..996a14d --- a/scripts/build_hot_reload.sh +++ b/scripts/build_hot_reload.sh @@ -36,10 +36,10 @@ case $(uname) in esac # Build the game. -odin build . -use-separate-modules -extra-linker-flags:"$EXTRA_LINKER_FLAGS" -show-timings -define:RAYLIB_SHARED=true -build-mode:dll -out:build/game_tmp$DLL_EXT -debug $VET +odin build src -use-separate-modules -extra-linker-flags:"$EXTRA_LINKER_FLAGS" -show-timings -define:RAYLIB_SHARED=true -build-mode:dll -out:build/game_tmp$DLL_EXT -debug $VET # Need to use a temp file on Linux because it first writes an empty `game.so`, which the game will load before it is actually fully written. -mv game_tmp$DLL_EXT game$DLL_EXT +mv ./build/game_tmp$DLL_EXT ./build/game$DLL_EXT # Do not build the game.bin if it is already running. if ! pgrep game.bin > /dev/null; then diff --git a/src/dialog/build.sh b/src/dialog/build.sh new file mode 100755 index 0000000..2eba996 --- /dev/null +++ b/src/dialog/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +gcc ./libtinyfiledialogs/tinyfiledialogs.c -c -o libtinyfiledialogs.o + +ar rcs libtinyfiledialogs.a libtinyfiledialogs.o + +rm libtinyfiledialogs.o \ No newline at end of file diff --git a/src/dialog/tinyfiledialog.odin b/src/dialog/tinyfiledialog.odin index ae6dd35..1c82058 100644 --- a/src/dialog/tinyfiledialog.odin +++ b/src/dialog/tinyfiledialog.odin @@ -4,10 +4,8 @@ import "core:c" when ODIN_OS == .Windows { foreign import lib {"tinyfiledialogs.lib", "system:comdlg32.lib", "system:Ole32.lib"} -} -when ODIN_OS == .Linux { - - foreign import lib {"libtinyfiledialogs.a"} +} else when ODIN_OS == .Linux || ODIN_OS == .Darwin { + foreign import lib "libtinyfiledialogs.a" } foreign lib {