write shell script to find dll

This commit is contained in:
NishiOwO 2025-03-29 19:59:51 +09:00
parent eb81684b2a
commit 4a2a55b642
No known key found for this signature in database
GPG Key ID: 27EF69B208EB9343
3 changed files with 26 additions and 2 deletions

View File

@ -46,4 +46,4 @@ jobs:
- name: Build NishBox
run: make PLATFORM=win${{env.BITS}}
- name: Copy DLL
run: cp `${{env.ARCH}}-w64-mingw32-gcc -print-file-name=libstdc++-6.dll` ./ && cp `${{env.ARCH}}-w64-mingw32-gcc -print-file-name=libstdc++-6.dll | sed -E 's/\/libstdc\+\+-6\.dll$//g'`/libgcc_*.dll ./ && cp deps/bin/*.dll ./
run: cp `make PLATFORM=win${{env.BITS}} print-deps` ./

View File

@ -3,11 +3,12 @@ include mk/p_*.mk
AR = $(TARGET_PREFIX)ar
CC = $(TARGET_PREFIX)gcc
OBJDUMP = $(TARGET_PREFIX)objdump
CFLAGS = -g -D_DEFAULT_SOURCE -DUSE_$(BACKEND) -I../engine $(ODE_CFLAGS) $(AMX_CFLAGS) $(PAWNC_CFLAGS) $(GL_CFLAGS)
LDFLAGS =
LIBS = $(ODE_LIBS) $(AMX_LIBS) $(PAWNC_LIBS) $(GL_LIBS)
.PHONY: all format clean ./engine ./src
.PHONY: all format clean ./engine ./src print-deps
all: ./src
@ -20,6 +21,9 @@ format:
./src:: ./engine
$(MAKE) -C $@
print-deps:
@sh deps.sh
clean:
$(MAKE) -C ./engine clean
$(MAKE) -C ./src clean

20
deps.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
solve () {
path=""
$OBJDUMP -p $1 | grep "DLL Name:" | rev | cut -d" " -f1 | rev | while read a; do
if [ -e "./deps/bin/$a" ]; then
path="./deps/bin/$a"
else
path="`$CC -print-file-name=$a`"
fi
if [ ! "x$path" = "x" ]; then
if [ -e "$path" ]; then
echo $path
solve $path
fi
fi
done
}
solve src/nishbox.exe