mirror of https://github.com/bjornbytes/lovr.git
tup: output to bin folder; toplevel config;
This commit is contained in:
parent
deeaff7a00
commit
8038353eac
|
@ -1,42 +1,15 @@
|
|||
.tup
|
||||
.obj
|
||||
tup.config
|
||||
config/*
|
||||
*.ttf.h
|
||||
*.json.h
|
||||
*.lua.h
|
||||
Activity*.java
|
||||
AndroidManifest*.xml
|
||||
/build.sh
|
||||
/watch.sh
|
||||
/debug.sh
|
||||
/db
|
||||
/lovr
|
||||
/lovr.apk
|
||||
/lovr.exe
|
||||
/lovr.exp
|
||||
/lovr.lib
|
||||
/lovr.pdb
|
||||
/lovr.ilk
|
||||
/lovr.js
|
||||
/lovr.worker.js
|
||||
/lovr.html
|
||||
/lovr.wasm
|
||||
/classes.dex
|
||||
build
|
||||
build-*
|
||||
/lib
|
||||
/libs
|
||||
/org
|
||||
/tmp
|
||||
bin
|
||||
/data
|
||||
/*.lua
|
||||
.DS_Store
|
||||
.vs
|
||||
/test
|
||||
.tup
|
||||
.obj
|
||||
bin
|
||||
build*
|
||||
plugins
|
||||
*.*.h
|
||||
*.lua
|
||||
*.config
|
||||
Activity*.java
|
||||
AndroidManifest*.xml
|
||||
deps/VrApi
|
||||
deps/pico
|
||||
deps/openxr
|
||||
deps/OpenXR-Oculus
|
||||
/plugins/*
|
||||
|
|
34
Tupfile
34
Tupfile
|
@ -68,25 +68,29 @@ SRC_@(GRAPHICS) += src/resources/shaders.c
|
|||
# 4 [CP] copy external libs -> libs folder
|
||||
: foreach $(RES) $(RES_y) |> !xd |> %f.h
|
||||
: foreach $(SRC) $(SRC_y) $(SRC_yy) | src/resources/*.h |> !cc |> .obj/%B.o
|
||||
: .obj/*.o |> !ld |> $(PREFIX)lovr$(SUFFIX) | $(EXTRAS) $(EXTRAS_y)
|
||||
: .obj/*.o |> !ld |> bin/$(PREFIX)lovr$(SUFFIX) | $(EXTRAS) $(EXTRAS_y)
|
||||
: foreach $(LIBS) |> !cp |> $(LIB)/%b
|
||||
|
||||
# Android
|
||||
# APK
|
||||
ifeq ($(PLATFORM),android)
|
||||
# There needs to be a Java class for the activity with 2 lines of code to load native libraries.
|
||||
# It gets compiled to a class file with javac and then into bytecode using dx
|
||||
JAVA = src/resources/Activity.java
|
||||
CLASS = org/lovr/app/Activity.class
|
||||
: src/resources/$(ACTIVITY_y).java |> !cp |> src/resources/Activity.java
|
||||
: src/resources/Activity.java |> ^ JAVAC %b^ javac -classpath $(CLASSPATH) -d . %f |> $(CLASS)
|
||||
: $(CLASS) $(EXTRA_JARS) |> !dx |> classes.dex
|
||||
JAR = bin/lovr.jar
|
||||
DEX = bin/apk/classes.dex
|
||||
MANIFEST = src/resources/AndroidManifest.xml
|
||||
|
||||
# Create an apk from the Android manifest. The zip command is used afterwards to add raw files
|
||||
# because it is way faster than calling aapt again and apks are just zips (TODO windows).
|
||||
: $(ANDROID_MANIFEST_y) |> !cp |> src/resources/AndroidManifest.xml
|
||||
: src/resources/AndroidManifest.xml | $(LIB)/*.so classes.dex |> ^ AAPT %b^ aapt package -F %o -M %f -I $(ANDROID_JAR) $(ANDROID_ASSETS) && zip -qu0 %o $(LIB)/*.so classes.dex |> tmp/lovr.unaligned.apk
|
||||
: src/resources/$(ACTIVITY_y).java |> !cp |> $(JAVA)
|
||||
: $(ANDROID_MANIFEST_y) |> !cp |> $(MANIFEST)
|
||||
|
||||
# Even though we have an apk, it isn't actually valid yet. It has to be aligned using the special
|
||||
# zipalign tool, and then signed using apksigner.
|
||||
: tmp/lovr.unaligned.apk |> !zipalign |> tmp/lovr.unsigned.apk
|
||||
: tmp/lovr.unsigned.apk |> !apksigner |> lovr.apk
|
||||
# java -> class -> jar -> dex
|
||||
: $(JAVA) |> ^ JAVAC %b^ javac -classpath $(CLASSPATH) -d bin %f |> bin/$(CLASS)
|
||||
: bin/$(CLASS) |> ^ JAR %b^ jar -cf %o -C bin $(CLASS) |> $(JAR)
|
||||
: $(JAR) $(EXTRA_JARS) |> !dx |> $(DEX)
|
||||
|
||||
# aapt
|
||||
: $(MANIFEST) | $(LIB)/*.so $(DEX) |> ^ AAPT %b^ aapt package -F %o -M %f -I $(ANDROID_JAR) bin/apk $(ANDROID_ASSETS) |> bin/lovr.unaligned.apk
|
||||
|
||||
# align n sign
|
||||
: bin/lovr.unaligned.apk |> !zipalign |> bin/lovr.unsigned.apk
|
||||
: bin/lovr.unsigned.apk |> !apksigner |> bin/lovr.apk
|
||||
endif
|
||||
|
|
20
Tuprules.tup
20
Tuprules.tup
|
@ -23,19 +23,19 @@ CFLAGS_win32 += -DLOVR_GL
|
|||
CFLAGS_win32 += -D_CRT_SECURE_NO_WARNINGS
|
||||
CFLAGS_win32 += -Wno-language-extension-token
|
||||
LDFLAGS_win32 += -lShell32 -lOle32
|
||||
EXTRAS_win32 += lovr.lib lovr.exp
|
||||
EXTRAS_win32 += bin/lovr.lib bin/lovr.exp
|
||||
ifeq (@(DEBUG),y)
|
||||
EXTRAS_win32 += lovr.pdb lovr.ilk
|
||||
EXTRAS_win32 += bin/lovr.pdb bin/lovr.ilk
|
||||
endif
|
||||
|
||||
## Linux
|
||||
CFLAGS_linux += -DLOVR_GL
|
||||
LDFLAGS_linux += -lm -lpthread -ldl
|
||||
LDFLAGS_linux += -Wl,-rpath,\$ORIGIN/libs
|
||||
LDFLAGS_linux += -Wl,-rpath,\$ORIGIN
|
||||
|
||||
## macOS
|
||||
CFLAGS_macos += -DLOVR_GL
|
||||
LDFLAGS_macos += -Wl,-rpath,@executable_path/libs
|
||||
LDFLAGS_macos += -Wl,-rpath,@executable_path
|
||||
LDFLAGS_macos += -lobjc
|
||||
|
||||
## Android
|
||||
|
@ -45,7 +45,6 @@ CFLAGS_android += --target=aarch64-linux-android@(ANDROID_VERSION)
|
|||
LDFLAGS_android += --target=aarch64-linux-android@(ANDROID_VERSION)
|
||||
LDFLAGS_android += -landroid -lEGL -lGLESv3
|
||||
LDFLAGS_android += -shared
|
||||
PREFIX_android = lib/arm64-v8a/lib
|
||||
|
||||
## emscripten
|
||||
CFLAGS_web += -DLOVR_WEBGL
|
||||
|
@ -56,8 +55,8 @@ LDFLAGS_@(WEBXR)_web += --js-library $(ROOT)/src/resources/webxr.js
|
|||
LDFLAGS_web += --shell-file $(ROOT)/src/resources/lovr.html
|
||||
CFLAGS_@(THREAD)_web += -s USE_PTHREADS=1
|
||||
LDFLAGS_@(THREAD)_web += -s USE_PTHREADS=1
|
||||
EXTRAS_web = lovr.js lovr.wasm
|
||||
EXTRAS_@(THREAD)_web += lovr.worker.js
|
||||
EXTRAS_web = bin/lovr.js bin/lovr.wasm
|
||||
EXTRAS_@(THREAD)_web += bin/lovr.worker.js
|
||||
|
||||
## Modules
|
||||
CFLAGS_@(AUDIO) += -DLOVR_ENABLE_AUDIO
|
||||
|
@ -231,9 +230,9 @@ PLATFORM = @(PLATFORM)
|
|||
endif
|
||||
|
||||
ifeq ($(PLATFORM),android)
|
||||
LIB = lib/arm64-v8a
|
||||
LIB = bin/apk/lib/arm64-v8a
|
||||
else
|
||||
LIB = libs
|
||||
LIB = bin
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),win32)
|
||||
|
@ -261,6 +260,7 @@ ifeq ($(PLATFORM),android)
|
|||
CFLAGS += $(CFLAGS_android) $(CFLAGS_y_android)
|
||||
LDFLAGS += $(LDFLAGS_android) $(LDFLAGS_y_android)
|
||||
LIBS += $(LIBS_y_android)
|
||||
PREFIX = apk/lib/arm64-v8a/lib
|
||||
SUFFIX = .so
|
||||
endif
|
||||
|
||||
|
@ -277,7 +277,7 @@ CFLAGS += @(EXTRA_CFLAGS)
|
|||
LDFLAGS += @(EXTRA_LDFLAGS)
|
||||
|
||||
## Macros
|
||||
!cc = |> ^ CC %b^ $(CC) $(CFLAGS_y) $(CFLAGS) -o %o -c %f |>
|
||||
!cc = |> ^o CC %b^ $(CC) $(CFLAGS_y) $(CFLAGS) -o %o -c %f |>
|
||||
!ld = |> ^ LD %o^ $(CC) -o %o %f $(LDFLAGS_y) $(LDFLAGS) |>
|
||||
!xd = |> ^ XD %f^ xxd -i %f > %o |>
|
||||
!cp = |> ^ CP %b^ cp %f %o |>
|
||||
|
|
Loading…
Reference in New Issue