mirror of https://github.com/bjornbytes/lovr.git
tup: pico rules;
This commit is contained in:
parent
55f66f217e
commit
91fb120dcc
|
@ -637,6 +637,12 @@ elseif(ANDROID)
|
|||
target_compile_definitions(lovr PRIVATE -DLOVR_GLES)
|
||||
target_include_directories(lovr PRIVATE "${ANDROID_NDK}/sources/android/native_app_glue")
|
||||
|
||||
# Dynamically linked targets output libraries in lib/<ABI> for easy including in apk with aapt
|
||||
set_target_properties(
|
||||
lovr ${LOVR_ODE} ${LOVR_OPENAL}
|
||||
PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib/${ANDROID_ABI}"
|
||||
)
|
||||
|
||||
if(LOVR_BUILD_EXE)
|
||||
get_filename_component(ANDROID_SDK "${ANDROID_NDK}" DIRECTORY) # SDK root is parent of NDK dir
|
||||
set(ANDROID_JAR "${ANDROID_SDK}/platforms/${ANDROID_PLATFORM}/android.jar")
|
||||
|
@ -647,12 +653,6 @@ elseif(ANDROID)
|
|||
set(ANDROID_ASSETS -A ${ANDROID_ASSETS})
|
||||
endif()
|
||||
|
||||
# Dynamically linked targets output libraries in lib/<ABI> and are copied to the apk with aapt
|
||||
set_target_properties(
|
||||
lovr ${LOVR_ODE} ${LOVR_OPENAL}
|
||||
PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib/${ANDROID_ABI}"
|
||||
)
|
||||
|
||||
# Flavor-specific config:
|
||||
# - Imported targets need to have their libraries manually copied to lib/<ABI>
|
||||
# - Figure out which Java class (Activity) and AndroidManifest.xml to use
|
||||
|
|
13
Tupfile
13
Tupfile
|
@ -1,12 +1,16 @@
|
|||
include_rules
|
||||
|
||||
# core
|
||||
ifneq (@(PICO),y)
|
||||
SRC += src/main.c
|
||||
endif
|
||||
SRC += src/core/arr.c
|
||||
SRC += src/core/fs.c
|
||||
SRC += src/core/maf.c
|
||||
SRC += src/core/map.c
|
||||
ifneq (@(PICO),y)
|
||||
SRC += src/core/os_$(PLATFORM).c
|
||||
endif
|
||||
SRC += src/core/png.c
|
||||
SRC += src/core/ref.c
|
||||
SRC += src/core/utf.c
|
||||
|
@ -25,6 +29,7 @@ SRC_@(HEADSET)@(OPENVR) += src/modules/headset/headset_openvr.c
|
|||
SRC_@(HEADSET)@(OPENXR) += src/modules/headset/headset_openxr.c
|
||||
SRC_@(HEADSET)@(OCULUS) += src/modules/headset/headset_oculus.c
|
||||
SRC_@(HEADSET)@(VRAPI) += src/modules/headset/headset_vrapi.c
|
||||
SRC_@(HEADSET)@(PICO) += src/modules/headset/headset_pico.c
|
||||
SRC_@(HEADSET)@(WEBVR) += src/modules/headset/headset_webvr.c
|
||||
SRC_@(HEADSET)@(WEBXR) += src/modules/headset/headset_webxr.c
|
||||
SRC_@(HEADSET)@(LEAP) += src/modules/headset/headset_leap.c
|
||||
|
@ -77,12 +82,14 @@ 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
|
||||
CLASS = org/lovr/app/Activity.class
|
||||
: src/resources/Activity.java |> ^ JAVAC %b^ javac -classpath $(ANDROID_JAR) -d . %f |> $(CLASS)
|
||||
: $(CLASS) |> !dx |> classes.dex
|
||||
: 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
|
||||
|
||||
# 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) | $(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
|
||||
: $(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
|
||||
|
||||
# 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.
|
||||
|
|
31
Tuprules.tup
31
Tuprules.tup
|
@ -37,6 +37,7 @@ CFLAGS_@(OPENXR) += -DLOVR_USE_OPENXR
|
|||
CFLAGS_@(OCULUS) += -DLOVR_USE_OCULUS
|
||||
CFLAGS_@(OCULUS) += -I@(OCULUS_PATH)/LibOVR/Include
|
||||
CFLAGS_@(VRAPI) += -DLOVR_USE_VRAPI
|
||||
CFLAGS_@(PICO) += -DLOVR_USE_PICO
|
||||
CFLAGS_@(WEBXR) += -DLOVR_USE_WEBXR
|
||||
CFLAGS_@(LEAP) += -DLOVR_USE_LEAP
|
||||
|
||||
|
@ -182,6 +183,7 @@ ifeq ($(PLATFORM),android)
|
|||
ANDROID_JAR = @(ANDROID_SDK)/sdk/platforms/android-@(ANDROID_VERSION)/android.jar
|
||||
GLUE = @(ANDROID_SDK)/sdk/ndk-bundle/sources/android/native_app_glue
|
||||
VRAPI_LIB_PATH = $(DEPS)/VrApi/Libs/Android/arm64-v8a/Release
|
||||
PICO_LIB_PATH = $(DEPS)/pico/jni/arm64-v8a
|
||||
CFLAGS += --target=aarch64-linux-android@(ANDROID_VERSION)
|
||||
CFLAGS += -I$(GLUE)
|
||||
LDFLAGS += --target=aarch64-linux-android@(ANDROID_VERSION)
|
||||
|
@ -193,11 +195,30 @@ ifeq ($(PLATFORM),android)
|
|||
PREFIX = $(LIB)/lib
|
||||
SUFFIX = .so
|
||||
CFLAGS_@(GRAPHICS) += -DLOVR_GLES
|
||||
ACTIVITY_@(VRAPI) = Activity_vrapi
|
||||
ACTIVITY_@(PICO) = Activity_pico
|
||||
|
||||
ifeq (@(ANDROID_MANIFEST),)
|
||||
ANDROID_MANIFEST_@(VRAPI) = src/resources/AndroidManifest_vrapi.xml
|
||||
ANDROID_MANIFEST_@(PICO) = src/resources/AndroidManifest_pico.xml
|
||||
else
|
||||
ANDROID_MANIFEST_y = @(ANDROID_MANIFEST)
|
||||
endif
|
||||
|
||||
ifneq (@(ANDROID_ASSETS),)
|
||||
ANDROID_ASSETS = -A @(ANDROID_ASSETS)
|
||||
endif
|
||||
|
||||
CLASSPATH = $(ANDROID_JAR)
|
||||
ifeq (@(PICO),y)
|
||||
EXTRA_JARS = $(DEPS)/pico/classes.jar
|
||||
ifeq (@(TUP_PLATFORM),win32)
|
||||
CLASSPATH = "$(CLASSPATH);$(EXTRA_JARS)"
|
||||
else
|
||||
CLASSPATH = "$(CLASSPATH):$(EXTRA_JARS)"
|
||||
endif
|
||||
endif
|
||||
|
||||
# Macros
|
||||
!dx = |> ^ DX %b^ dx --dex --output=%o %f |>
|
||||
!zipalign = |> ^ ZIPALIGN %f^ $(TOOLS)/zipalign -f 4 %f %o |>
|
||||
|
@ -219,15 +240,17 @@ ifeq ($(PLATFORM),android)
|
|||
CFLAGS_@(ENET) += -I$(DEPS)/enet/include
|
||||
CFLAGS_@(VRAPI) += -I$(DEPS)/VrApi/Include
|
||||
|
||||
LDFLAGS_@(AUDIO) += -L$(BUILD)/openal -lopenal
|
||||
LDFLAGS_@(AUDIO) += -L$(BUILD)/$(LIB) -lopenal
|
||||
LDFLAGS_@(DATA) += -L$(BUILD)/lib_msdfgen -lmsdfgen
|
||||
LDFLAGS_@(PHYSICS) += -L$(BUILD)/ode -lode
|
||||
LDFLAGS_@(PHYSICS) += -L$(BUILD)/$(LIB) -lode
|
||||
LDFLAGS_@(ENET) += -L$(BUILD)/enet -lenet
|
||||
LDFLAGS_@(VRAPI) += -L$(VRAPI_LIB_PATH) -lvrapi
|
||||
LDFLAGS_@(PICO) += -L$(PICO_LIB_PATH) -lPvr_NativeSDK
|
||||
|
||||
LIBS_@(AUDIO) += $(BUILD)/openal/libopenal.*so*
|
||||
LIBS_@(PHYSICS) += $(BUILD)/ode/libode.so
|
||||
LIBS_@(AUDIO) += $(BUILD)/$(LIB)/libopenal.*so*
|
||||
LIBS_@(PHYSICS) += $(BUILD)/$(LIB)/libode.so
|
||||
LIBS_@(VRAPI) += $(VRAPI_LIB_PATH)/libvrapi.so
|
||||
LIBS_@(PICO) += $(PICO_LIB_PATH)/libPvr_NativeSDK.so
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue