mirror of https://github.com/bjornbytes/lovr.git
Fix Android tup build; Reorganize Tuprules;
This commit is contained in:
parent
351d1ae200
commit
e7adf62bfa
8
Tupfile
8
Tupfile
|
@ -74,7 +74,7 @@ ifeq ($(PLATFORM),android)
|
||||||
CLASS = org/lovr/app/Activity.class
|
CLASS = org/lovr/app/Activity.class
|
||||||
JAR = bin/lovr.jar
|
JAR = bin/lovr.jar
|
||||||
DEX = bin/apk/classes.dex
|
DEX = bin/apk/classes.dex
|
||||||
MANIFEST = src/resources/AndroidManifest.xml
|
MANIFEST = bin/AndroidManifest.xml
|
||||||
|
|
||||||
: src/resources/$(ACTIVITY_y).java |> !cp |> $(JAVA)
|
: src/resources/$(ACTIVITY_y).java |> !cp |> $(JAVA)
|
||||||
: $(ANDROID_MANIFEST_y) |> !cp |> $(MANIFEST)
|
: $(ANDROID_MANIFEST_y) |> !cp |> $(MANIFEST)
|
||||||
|
@ -85,9 +85,9 @@ ifeq ($(PLATFORM),android)
|
||||||
: $(JAR) $(EXTRA_JARS) |> !dx |> $(DEX)
|
: $(JAR) $(EXTRA_JARS) |> !dx |> $(DEX)
|
||||||
|
|
||||||
# aapt
|
# aapt
|
||||||
: $(MANIFEST) | $(LIB)/*.so $(DEX) |> ^ AAPT %b^ aapt package -F %o -M %f -I $(ANDROID_JAR) bin/apk $(ANDROID_ASSETS) |> bin/lovr.unaligned.apk
|
: $(MANIFEST) | $(LIB)/*.so $(DEX) |> ^ AAPT %b^ aapt package -F %o -M %f -0 so -I $(ANDROID_JAR) bin/apk $(ANDROID_ASSETS) |> bin/.lovr.unaligned.apk
|
||||||
|
|
||||||
# align n sign
|
# align n sign
|
||||||
: bin/lovr.unaligned.apk |> !zipalign |> bin/lovr.unsigned.apk
|
: bin/.lovr.unaligned.apk |> !zipalign |> bin/.lovr.unsigned.apk
|
||||||
: bin/lovr.unsigned.apk |> !apksigner |> bin/lovr.apk
|
: bin/.lovr.unsigned.apk |> !apksigner |> bin/lovr.apk
|
||||||
endif
|
endif
|
||||||
|
|
332
Tuprules.tup
332
Tuprules.tup
|
@ -1,4 +1,6 @@
|
||||||
ROOT = $(TUP_CWD)
|
ROOT = $(TUP_CWD)
|
||||||
|
DEPS = $(ROOT)/deps
|
||||||
|
LIB = bin
|
||||||
|
|
||||||
## Base
|
## Base
|
||||||
ifeq (@(CC),)
|
ifeq (@(CC),)
|
||||||
|
@ -19,46 +21,6 @@ FLAGS_@(DEBUG) += -g
|
||||||
FLAGS_@(OPTIMIZE) += -Oz
|
FLAGS_@(OPTIMIZE) += -Oz
|
||||||
FLAGS_@(SANITIZE) += -fsanitize=address,undefined
|
FLAGS_@(SANITIZE) += -fsanitize=address,undefined
|
||||||
|
|
||||||
## Windows
|
|
||||||
CFLAGS_win32 += -DLOVR_GL
|
|
||||||
CFLAGS_win32 += -D_CRT_SECURE_NO_WARNINGS
|
|
||||||
CFLAGS_win32 += -Wno-language-extension-token
|
|
||||||
LDFLAGS_win32 += -lShell32 -lOle32
|
|
||||||
EXTRAS_win32 += bin/lovr.lib bin/lovr.exp
|
|
||||||
ifeq (@(DEBUG),y)
|
|
||||||
EXTRAS_win32 += bin/lovr.pdb bin/lovr.ilk
|
|
||||||
endif
|
|
||||||
|
|
||||||
## Linux
|
|
||||||
CFLAGS_linux += -DLOVR_GL
|
|
||||||
LDFLAGS_linux += -lm -lpthread -ldl
|
|
||||||
LDFLAGS_linux += -Wl,-rpath,\$ORIGIN
|
|
||||||
|
|
||||||
## macOS
|
|
||||||
CFLAGS_macos += -DLOVR_GL
|
|
||||||
LDFLAGS_macos += -Wl,-rpath,@executable_path
|
|
||||||
LDFLAGS_macos += -lobjc
|
|
||||||
|
|
||||||
## Android
|
|
||||||
CFLAGS_android += -DLOVR_GLES
|
|
||||||
CFLAGS_android += -I@(ANDROID_NDK)/sources/android/native_app_glue
|
|
||||||
CFLAGS_android += --target=aarch64-linux-android@(ANDROID_VERSION)
|
|
||||||
LDFLAGS_android += --target=aarch64-linux-android@(ANDROID_VERSION)
|
|
||||||
LDFLAGS_android += -landroid -lEGL -lGLESv3
|
|
||||||
LDFLAGS_android += -shared
|
|
||||||
|
|
||||||
## emscripten
|
|
||||||
CFLAGS_web += -DLOVR_WEBGL
|
|
||||||
LDFLAGS_web += -s USE_WEBGL2
|
|
||||||
LDFLAGS_web += -s FORCE_FILESYSTEM
|
|
||||||
LDFLAGS_web += -s EXPORTED_FUNCTIONS="['_main','_lovrDestroy','_webxr_attach','_webxr_detach','_lovrCanvasCreateFromHandle','_lovrCanvasDestroy','_lovrGraphicsSetBackbuffer','_lovrGraphicsSetViewMatrix','_lovrGraphicsSetProjection']"
|
|
||||||
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 = bin/lovr.js bin/lovr.wasm
|
|
||||||
EXTRAS_@(THREAD)_web += bin/lovr.worker.js
|
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
DISABLE_@(AUDIO) += -DLOVR_DISABLE_AUDIO
|
DISABLE_@(AUDIO) += -DLOVR_DISABLE_AUDIO
|
||||||
DISABLE_@(DATA) += -DLOVR_DISABLE_DATA
|
DISABLE_@(DATA) += -DLOVR_DISABLE_DATA
|
||||||
|
@ -82,85 +44,52 @@ CFLAGS_@(VRAPI) += -DLOVR_USE_VRAPI
|
||||||
CFLAGS_@(PICO) += -DLOVR_USE_PICO
|
CFLAGS_@(PICO) += -DLOVR_USE_PICO
|
||||||
CFLAGS_@(WEBXR) += -DLOVR_USE_WEBXR
|
CFLAGS_@(WEBXR) += -DLOVR_USE_WEBXR
|
||||||
|
|
||||||
## Libraries
|
ifeq (@(PLATFORM),)
|
||||||
ifneq (@(CMAKE_DEPS),)
|
PLATFORM = @(TUP_PLATFORM)
|
||||||
BUILD = @(CMAKE_DEPS)
|
else
|
||||||
DEPS = $(ROOT)/deps
|
PLATFORM = @(PLATFORM)
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq (@(OPTIMIZE),y)
|
## Windows
|
||||||
CONFIG = Release
|
ifeq ($(PLATFORM),win32)
|
||||||
else
|
win32 = y
|
||||||
CONFIG = Debug
|
SUFFIX = .exe
|
||||||
endif
|
CFLAGS += -DLOVR_GL
|
||||||
|
CFLAGS += -D_CRT_SECURE_NO_WARNINGS
|
||||||
|
CFLAGS += -Wno-language-extension-token
|
||||||
|
LDFLAGS += -lShell32 -lOle32
|
||||||
|
EXTRAS += bin/lovr.lib bin/lovr.exp
|
||||||
|
EXTRAS_@(DEBUG) += bin/lovr.pdb bin/lovr.ilk
|
||||||
|
endif
|
||||||
|
|
||||||
# Lua
|
## Linux
|
||||||
ifeq (@(LUAJIT),y)
|
ifeq ($(PLATFORM),linux)
|
||||||
CFLAGS += -I$(DEPS)/luajit/src
|
CFLAGS += -DLOVR_GL
|
||||||
LDFLAGS_win32 += -L$(BUILD)/luajit/src/$(CONFIG) -lluajit
|
LDFLAGS += -lm -lpthread -ldl
|
||||||
LDFLAGS_macos += -L$(BUILD)/luajit/src -lluajit -pagezero_size 10000 -image_base 100000000
|
LDFLAGS += -Wl,-rpath,\$ORIGIN
|
||||||
LDFLAGS_linux += -L$(BUILD)/luajit/src -lluajit
|
endif
|
||||||
LDFLAGS_android += -L$(BUILD)/luajit/src -lluajit
|
|
||||||
LIBS_win32 += $(BUILD)/luajit/src/$(CONFIG)/luajit.dll
|
|
||||||
LIBS_macos += $(BUILD)/luajit/src/libluajit.dylib
|
|
||||||
LIBS_linux += $(BUILD)/luajit/src/libluajit.so
|
|
||||||
else
|
|
||||||
CFLAGS += -I$(DEPS)/lua/src -I$(BUILD)/lua
|
|
||||||
LDFLAGS_win32 += -L$(BUILD)/lua/$(CONFIG) -llua
|
|
||||||
LDFLAGS_macos += -L$(BUILD)/lua -llua
|
|
||||||
LDFLAGS_linux += -L$(BUILD)/lua -llua
|
|
||||||
LDFLAGS_android += -L$(BUILD)/lua -llua
|
|
||||||
LDFLAGS_web += $(BUILD)/lua/liblua.a
|
|
||||||
endif
|
|
||||||
|
|
||||||
# GLFW
|
## macOS
|
||||||
CFLAGS_win32 += -I$(DEPS)/glfw/include
|
ifeq ($(PLATFORM),macosx)
|
||||||
CFLAGS_macos += -I$(DEPS)/glfw/include
|
macos = y
|
||||||
CFLAGS_linux += -I$(DEPS)/glfw/include
|
PLATFORM = macos
|
||||||
LDFLAGS_win32 += -L$(BUILD)/glfw/src/$(CONFIG) -lglfw3dll
|
CFLAGS += -DLOVR_GL
|
||||||
LDFLAGS_macos += -L$(BUILD)/glfw/src -lglfw
|
LDFLAGS += -Wl,-rpath,@executable_path
|
||||||
LDFLAGS_linux += -L$(BUILD)/glfw/src -lglfw
|
LDFLAGS += -lobjc
|
||||||
LIBS_win32 += $(BUILD)/glfw/src/$(CONFIG)/glfw3.dll
|
|
||||||
LIBS_macos += $(BUILD)/glfw/src/libglfw.*dylib
|
|
||||||
LIBS_linux += $(BUILD)/glfw/src/libglfw.*so*
|
|
||||||
|
|
||||||
# msdfgen
|
|
||||||
CFLAGS_@(DATA) += -I$(DEPS)/msdfgen
|
|
||||||
LDFLAGS_@(DATA)_win32 += -L$(BUILD)/lib_msdfgen/$(CONFIG) -lmsdfgen
|
|
||||||
LDFLAGS_@(DATA)_macos += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
|
||||||
LDFLAGS_@(DATA)_linux += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
|
||||||
LDFLAGS_@(DATA)_android += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
|
||||||
LDFLAGS_@(DATA)_web += $(BUILD)/lib_msdfgen/libmsdfgen.a
|
|
||||||
LIBS_@(DATA)_win32 += $(BUILD)/lib_msdfgen/$(CONFIG)/msdfgen.dll
|
|
||||||
LIBS_@(DATA)_macos += $(BUILD)/lib_msdfgen/libmsdfgen.dylib
|
|
||||||
LIBS_@(DATA)_linux += $(BUILD)/lib_msdfgen/libmsdfgen.so
|
|
||||||
|
|
||||||
# OpenVR
|
|
||||||
CFLAGS_@(OPENVR) += -I$(DEPS)/openvr/headers
|
|
||||||
LDFLAGS_@(OPENVR)_win32 += -L$(DEPS)/openvr/bin/win64/$(CONFIG) -lopenvr_api64
|
|
||||||
LDFLAGS_@(OPENVR)_macos += -L$(BUILD)/openvr_api -lopenvr_api
|
|
||||||
LDFLAGS_@(OPENVR)_linux += -L$(BUILD)/openvr_api -lopenvr_api
|
|
||||||
LIBS_@(OPENVR)_win32 += $(DEPS)/openvr/bin/win64/openvr_api.dll
|
|
||||||
LIBS_@(OPENVR)_macos += $(BUILD)/openvr_api/libopenvr_api.dylib
|
|
||||||
LIBS_@(OPENVR)_linux += $(BUILD)/openvr_api/libopenvr_api.so
|
|
||||||
|
|
||||||
# ODE
|
|
||||||
CFLAGS_@(PHYSICS) += -I$(DEPS)/ode/include -I$(BUILD)/ode/include
|
|
||||||
LDFLAGS_@(PHYSICS)_win32 += -L$(BUILD)/ode/$(CONFIG) -lode
|
|
||||||
LDFLAGS_@(PHYSICS)_macos += -L$(BUILD)/ode -lode
|
|
||||||
LDFLAGS_@(PHYSICS)_linux += -L$(BUILD)/ode -lode
|
|
||||||
LDFLAGS_@(PHYSICS)_android += -L$(BUILD)/lib/arm64-v8a -lode
|
|
||||||
LDFLAGS_@(PHYSICS)_web += $(BUILD)/ode/libode.a
|
|
||||||
LIBS_@(PHYSICS)_win32 += $(BUILD)/ode/$(CONFIG)/ode.dll
|
|
||||||
LIBS_@(PHYSICS)_macos += $(BUILD)/ode/libode.dylib
|
|
||||||
LIBS_@(PHYSICS)_linux += $(BUILD)/ode/libode.so
|
|
||||||
LIBS_@(PHYSICS)_android += $(BUILD)/lib/arm64-v8a/libode.so
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
## Android
|
## Android
|
||||||
ifeq (@(PLATFORM),android)
|
ifeq ($(PLATFORM),android)
|
||||||
|
android = y
|
||||||
|
SUFFIX = .so
|
||||||
|
PREFIX = apk/lib/arm64-v8a/lib
|
||||||
|
LIB = bin/apk/lib/arm64-v8a
|
||||||
|
|
||||||
CC = @(ANDROID_NDK)/toolchains/llvm/prebuilt/@(ANDROID_HOST_TAG)/bin/clang
|
CC = @(ANDROID_NDK)/toolchains/llvm/prebuilt/@(ANDROID_HOST_TAG)/bin/clang
|
||||||
TOOLS = @(ANDROID_SDK)/build-tools/@(ANDROID_BUILD_TOOLS_VERSION)
|
CFLAGS += -DLOVR_GLES
|
||||||
ANDROID_JAR = @(ANDROID_SDK)/platforms/android-@(ANDROID_VERSION)/android.jar
|
CFLAGS += -I@(ANDROID_NDK)/sources/android/native_app_glue
|
||||||
|
FLAGS += --target=aarch64-linux-android@(ANDROID_VERSION)
|
||||||
|
LDFLAGS += -shared -landroid -lEGL -lGLESv3
|
||||||
|
|
||||||
ACTIVITY_@(OPENXR) = Activity_openxr
|
ACTIVITY_@(OPENXR) = Activity_openxr
|
||||||
ACTIVITY_@(VRAPI) = Activity_vrapi
|
ACTIVITY_@(VRAPI) = Activity_vrapi
|
||||||
|
@ -168,15 +97,14 @@ ifeq (@(PLATFORM),android)
|
||||||
ANDROID_MANIFEST_@(OPENXR) = src/resources/AndroidManifest_oculus.xml
|
ANDROID_MANIFEST_@(OPENXR) = src/resources/AndroidManifest_oculus.xml
|
||||||
ANDROID_MANIFEST_@(VRAPI) = src/resources/AndroidManifest_oculus.xml
|
ANDROID_MANIFEST_@(VRAPI) = src/resources/AndroidManifest_oculus.xml
|
||||||
ANDROID_MANIFEST_@(PICO) = src/resources/AndroidManifest_pico.xml
|
ANDROID_MANIFEST_@(PICO) = src/resources/AndroidManifest_pico.xml
|
||||||
|
|
||||||
ifneq (@(ANDROID_MANIFEST),)
|
ifneq (@(ANDROID_MANIFEST),)
|
||||||
ANDROID_MANIFEST_y = @(ANDROID_MANIFEST)
|
ANDROID_MANIFEST_y = @(ANDROID_MANIFEST)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq (@(ANDROID_ASSETS),)
|
ifneq (@(ANDROID_ASSETS),)
|
||||||
ANDROID_ASSETS = -A @(ANDROID_ASSETS)
|
ANDROID_ASSETS = -A @(ANDROID_ASSETS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ANDROID_JAR = @(ANDROID_SDK)/platforms/android-@(ANDROID_VERSION)/android.jar
|
||||||
CLASSPATH = $(ANDROID_JAR)
|
CLASSPATH = $(ANDROID_JAR)
|
||||||
ifeq (@(PICO),y)
|
ifeq (@(PICO),y)
|
||||||
EXTRA_JARS = $(DEPS)/pico/classes.jar
|
EXTRA_JARS = $(DEPS)/pico/classes.jar
|
||||||
|
@ -187,84 +115,124 @@ ifeq (@(PLATFORM),android)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
TOOLS = @(ANDROID_SDK)/build-tools/@(ANDROID_BUILD_TOOLS_VERSION)
|
||||||
!dx = |> ^ DX %b^ dx --dex --output=%o %f |>
|
!dx = |> ^ DX %b^ dx --dex --output=%o %f |>
|
||||||
!zipalign = |> ^ ZIPALIGN %f^ $(TOOLS)/zipalign -f 4 %f %o |>
|
!zipalign = |> ^ ZIPALIGN %f^ $(TOOLS)/zipalign -f -p 4 %f %o |>
|
||||||
!apksigner = |> ^ APKSIGNER %o^ $(TOOLS)/apksigner sign --ks @(ANDROID_KEYSTORE) --ks-pass @(ANDROID_KEYSTORE_PASS) --out %o %f |>
|
!apksigner = |> ^ APKSIGNER %o^ $(TOOLS)/apksigner sign --ks @(ANDROID_KEYSTORE) --ks-pass @(ANDROID_KEYSTORE_PASS) --out %o %f |>
|
||||||
|
|
||||||
ifneq ($(BUILD),)
|
# OpenXR
|
||||||
OPENXR_LIB_PATH = $(DEPS)/OpenXR-Oculus/Libs/Android/arm64-v8a/Release
|
OPENXR_LIB_PATH = $(DEPS)/OpenXR-Oculus/Libs/Android/arm64-v8a/Release
|
||||||
VRAPI_LIB_PATH = $(DEPS)/VrApi/Libs/Android/arm64-v8a/Release
|
CFLAGS_@(OPENXR) += -I$(DEPS)/OpenXR-Oculus/Include
|
||||||
PICO_LIB_PATH = $(DEPS)/pico/jni/arm64-v8a
|
LDFLAGS_@(OPENXR) += -L$(OPENXR_LIB_PATH) -lopenxr_loader
|
||||||
|
LIBS_@(OPENXR) += $(OPENXR_LIB_PATH)/libopenxr_loader.so
|
||||||
|
|
||||||
CFLAGS_@(OPENXR) += -I$(DEPS)/OpenXR-Oculus/Include
|
# VrApi
|
||||||
CFLAGS_@(VRAPI) += -I$(DEPS)/VrApi/Include
|
VRAPI_LIB_PATH = $(DEPS)/VrApi/Libs/Android/arm64-v8a/Release
|
||||||
|
CFLAGS_@(VRAPI) += -I$(DEPS)/VrApi/Include
|
||||||
|
LDFLAGS_@(VRAPI) += -L$(VRAPI_LIB_PATH) -lvrapi
|
||||||
|
LIBS_@(VRAPI) += $(VRAPI_LIB_PATH)/libvrapi.so
|
||||||
|
|
||||||
LDFLAGS_@(OPENXR) += -L$(OPENXR_LIB_PATH) -lopenxr_loader
|
# pico
|
||||||
LDFLAGS_@(VRAPI) += -L$(VRAPI_LIB_PATH) -lvrapi
|
PICO_LIB_PATH = $(DEPS)/pico/jni/arm64-v8a
|
||||||
LDFLAGS_@(PICO) += -L$(PICO_LIB_PATH) -lPvr_NativeSDK
|
LDFLAGS_@(PICO) += -L$(PICO_LIB_PATH) -lPvr_NativeSDK
|
||||||
|
LIBS_@(PICO) += $(PICO_LIB_PATH)/libPvr_NativeSDK.so
|
||||||
LIBS_@(OPENXR) += $(OPENXR_LIB_PATH)/libopenxr_loader.so
|
|
||||||
LIBS_@(VRAPI) += $(VRAPI_LIB_PATH)/libvrapi.so
|
|
||||||
LIBS_@(PICO) += $(PICO_LIB_PATH)/libPvr_NativeSDK.so
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
## Platform (I don't think tup has a better way to do this stuff aside from using Lua...)
|
|
||||||
ifeq (@(PLATFORM),)
|
|
||||||
PLATFORM = @(TUP_PLATFORM)
|
|
||||||
else
|
|
||||||
PLATFORM = @(PLATFORM)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PLATFORM),android)
|
|
||||||
LIB = bin/apk/lib/arm64-v8a
|
|
||||||
else
|
|
||||||
LIB = bin
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PLATFORM),win32)
|
|
||||||
CFLAGS += $(CFLAGS_win32) $(CFLAGS_y_win32)
|
|
||||||
LDFLAGS += $(LDFLAGS_win32) $(LDFLAGS_y_win32)
|
|
||||||
EXTRAS += $(EXTRAS_win32) $(EXTRAS_y_win32)
|
|
||||||
LIBS += $(LIBS_y_win32)
|
|
||||||
SUFFIX = .exe
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PLATFORM),macosx)
|
|
||||||
PLATFORM = macos
|
|
||||||
CFLAGS += $(CFLAGS_macos) $(CFLAGS_y_macos)
|
|
||||||
LDFLAGS += $(LDFLAGS_macos) $(LDFLAGS_y_macos)
|
|
||||||
LIBS += $(LIBS_y_macos)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PLATFORM),linux)
|
|
||||||
CFLAGS += $(CFLAGS_linux) $(CFLAGS_y_linux)
|
|
||||||
LDFLAGS += $(LDFLAGS_linux) $(LDFLAGS_y_linux)
|
|
||||||
LIBS += $(LIBS_linux) $(LIBS_y_linux)
|
|
||||||
endif
|
|
||||||
|
|
||||||
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
|
endif
|
||||||
|
|
||||||
|
## emscripten
|
||||||
ifeq ($(PLATFORM),web)
|
ifeq ($(PLATFORM),web)
|
||||||
CFLAGS += $(CFLAGS_web) $(CFLAGS_y_web)
|
web = y
|
||||||
LDFLAGS += $(LDFLAGS_web) $(LDFLAGS_y_web)
|
SUFFIX = .html
|
||||||
LIBS += $(LIBS_y_web)
|
CFLAGS += -DLOVR_WEBGL
|
||||||
SUFFIX = .html
|
LDFLAGS += -s USE_WEBGL2
|
||||||
|
LDFLAGS += -s FORCE_FILESYSTEM
|
||||||
|
LDFLAGS += -s EXPORTED_FUNCTIONS="['_main','_lovrDestroy','_webxr_attach','_webxr_detach','_lovrCanvasCreateFromHandle','_lovrCanvasDestroy','_lovrGraphicsSetBackbuffer','_lovrGraphicsSetViewMatrix','_lovrGraphicsSetProjection']"
|
||||||
|
LDFLAGS_@(WEBXR) += --js-library $(ROOT)/src/resources/webxr.js
|
||||||
|
LDFLAGS += --shell-file $(ROOT)/src/resources/lovr.html
|
||||||
|
CFLAGS_@(THREAD) += -s USE_PTHREADS=1
|
||||||
|
LDFLAGS_@(THREAD) += -s USE_PTHREADS=1
|
||||||
|
EXTRAS = bin/lovr.js bin/lovr.wasm
|
||||||
|
EXTRAS_@(THREAD) += bin/lovr.worker.js
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += $(FLAGS) $(FLAGS_y) $(DISABLE_n) $(CFLAGS_y)
|
## Libraries
|
||||||
LDFLAGS += $(FLAGS) $(FLAGS_y)
|
ifneq (@(CMAKE_DEPS),)
|
||||||
CFLAGS += @(EXTRA_CFLAGS)
|
BUILD = @(CMAKE_DEPS)
|
||||||
LDFLAGS += @(EXTRA_LDFLAGS)
|
|
||||||
|
ifeq (@(OPTIMIZE),y)
|
||||||
|
CONFIG = Release
|
||||||
|
else
|
||||||
|
CONFIG = Debug
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Lua
|
||||||
|
ifeq (@(LUAJIT),y)
|
||||||
|
CFLAGS += -I$(DEPS)/luajit/src
|
||||||
|
LDFLAGS_$(win32) += -L$(BUILD)/luajit/src/$(CONFIG) -lluajit
|
||||||
|
LDFLAGS_$(macos) += -L$(BUILD)/luajit/src -lluajit -pagezero_size 10000 -image_base 100000000
|
||||||
|
LDFLAGS_$(linux) += -L$(BUILD)/luajit/src -lluajit
|
||||||
|
LDFLAGS_$(android) += -L$(BUILD)/luajit/src -lluajit
|
||||||
|
LIBS_$(win32) += $(BUILD)/luajit/src/$(CONFIG)/luajit.dll
|
||||||
|
LIBS_$(macos) += $(BUILD)/luajit/src/libluajit.dylib
|
||||||
|
LIBS_$(linux) += $(BUILD)/luajit/src/libluajit.so
|
||||||
|
else
|
||||||
|
CFLAGS += -I$(DEPS)/lua/src -I$(BUILD)/lua
|
||||||
|
LDFLAGS_$(win32) += -L$(BUILD)/lua/$(CONFIG) -llua
|
||||||
|
LDFLAGS_$(macos) += -L$(BUILD)/lua -llua
|
||||||
|
LDFLAGS_$(linux) += -L$(BUILD)/lua -llua
|
||||||
|
LDFLAGS_$(android) += -L$(BUILD)/lua -llua
|
||||||
|
LDFLAGS_$(web) += $(BUILD)/lua/liblua.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
# GLFW
|
||||||
|
CFLAGS_$(win32) += -I$(DEPS)/glfw/include
|
||||||
|
CFLAGS_$(macos) += -I$(DEPS)/glfw/include
|
||||||
|
CFLAGS_$(linux) += -I$(DEPS)/glfw/include
|
||||||
|
LDFLAGS_$(win32) += -L$(BUILD)/glfw/src/$(CONFIG) -lglfw3dll
|
||||||
|
LDFLAGS_$(macos) += -L$(BUILD)/glfw/src -lglfw
|
||||||
|
LDFLAGS_$(linux) += -L$(BUILD)/glfw/src -lglfw
|
||||||
|
LIBS_$(win32) += $(BUILD)/glfw/src/$(CONFIG)/glfw3.dll
|
||||||
|
LIBS_$(macos) += $(BUILD)/glfw/src/libglfw.*dylib
|
||||||
|
LIBS_$(linux) += $(BUILD)/glfw/src/libglfw.*so*
|
||||||
|
|
||||||
|
# msdfgen
|
||||||
|
CFLAGS_@(DATA) += -I$(DEPS)/msdfgen
|
||||||
|
LDFLAGS_@(DATA)_$(win32) += -L$(BUILD)/lib_msdfgen/$(CONFIG) -lmsdfgen
|
||||||
|
LDFLAGS_@(DATA)_$(macos) += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
||||||
|
LDFLAGS_@(DATA)_$(linux) += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
||||||
|
LDFLAGS_@(DATA)_$(android) += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
||||||
|
LDFLAGS_@(DATA)_web += $(BUILD)/lib_msdfgen/libmsdfgen.a
|
||||||
|
LIBS_@(DATA)_win32 += $(BUILD)/lib_msdfgen/$(CONFIG)/msdfgen.dll
|
||||||
|
LIBS_@(DATA)_macos += $(BUILD)/lib_msdfgen/libmsdfgen.dylib
|
||||||
|
LIBS_@(DATA)_linux += $(BUILD)/lib_msdfgen/libmsdfgen.so
|
||||||
|
|
||||||
|
# OpenVR
|
||||||
|
CFLAGS_@(OPENVR) += -I$(DEPS)/openvr/headers
|
||||||
|
LDFLAGS_@(OPENVR)_$(win32) += -L$(DEPS)/openvr/bin/win64/$(CONFIG) -lopenvr_api64
|
||||||
|
LDFLAGS_@(OPENVR)_$(macos) += -L$(BUILD)/openvr_api -lopenvr_api
|
||||||
|
LDFLAGS_@(OPENVR)_$(linux) += -L$(BUILD)/openvr_api -lopenvr_api
|
||||||
|
LIBS_@(OPENVR)_$(win32) += $(DEPS)/openvr/bin/win64/openvr_api.dll
|
||||||
|
LIBS_@(OPENVR)_$(macos) += $(BUILD)/openvr_api/libopenvr_api.dylib
|
||||||
|
LIBS_@(OPENVR)_$(linux) += $(BUILD)/openvr_api/libopenvr_api.so
|
||||||
|
|
||||||
|
# ODE
|
||||||
|
CFLAGS_@(PHYSICS) += -I$(DEPS)/ode/include -I$(BUILD)/ode/include
|
||||||
|
LDFLAGS_@(PHYSICS)_$(win32) += -L$(BUILD)/ode/$(CONFIG) -lode
|
||||||
|
LDFLAGS_@(PHYSICS)_$(macos) += -L$(BUILD)/ode -lode
|
||||||
|
LDFLAGS_@(PHYSICS)_$(linux) += -L$(BUILD)/ode -lode
|
||||||
|
LDFLAGS_@(PHYSICS)_$(android) += -L$(BUILD)/lib/arm64-v8a -lode
|
||||||
|
LDFLAGS_@(PHYSICS)_$(web) += $(BUILD)/ode/libode.a
|
||||||
|
LIBS_@(PHYSICS)_$(win32) += $(BUILD)/ode/$(CONFIG)/ode.dll
|
||||||
|
LIBS_@(PHYSICS)_$(macos) += $(BUILD)/ode/libode.dylib
|
||||||
|
LIBS_@(PHYSICS)_$(linux) += $(BUILD)/ode/libode.so
|
||||||
|
LIBS_@(PHYSICS)_$(android) += $(BUILD)/lib/arm64-v8a/libode.so
|
||||||
|
endif
|
||||||
|
|
||||||
|
LIBS += $(LIBS_y) $(LIBS_y_y)
|
||||||
|
CFLAGS += $(FLAGS) $(FLAGS_y) $(DISABLE_n) $(CFLAGS_y) @(EXTRA_CFLAGS)
|
||||||
|
LDFLAGS += $(FLAGS) $(FLAGS_y) $(LDFLAGS_y) $(LDFLAGS_y_y) @(EXTRA_LDFLAGS)
|
||||||
|
|
||||||
## Macros
|
## Macros
|
||||||
!cc = |> ^o CC %b^ $(CC) $(CFLAGS) -o %o -c %f |>
|
!cc = |> ^o CC %b^ $(CC) $(CFLAGS) -o %o -c %f |>
|
||||||
!ld = |> ^ LD %o^ $(CC) -o %o %f $(LDFLAGS_y) $(LDFLAGS) |>
|
!ld = |> ^ LD %o^ $(CC) -o %o %f $(LDFLAGS) |>
|
||||||
!xd = |> ^ XD %f^ xxd -i %f > %o |>
|
!xd = |> ^ XD %f^ xxd -i %f > %o |>
|
||||||
!cp = |> ^ CP %b^ cp %f %o |>
|
!cp = |> ^ CP %b^ cp %f %o |>
|
||||||
|
|
Loading…
Reference in New Issue