tup macOS fixes;

- Need to use dylib suffix.
- Need pagezero stuff (should we only do this when using LuaJIT?)
- rpath is totally different.
- stb_vorbis alloca broke?
This commit is contained in:
bjorn 2019-12-13 07:27:37 -08:00
parent 6f24da9f7f
commit 33991b41ad
3 changed files with 22 additions and 19 deletions

View File

@ -152,9 +152,7 @@ endif()
# MSDF
if(LOVR_ENABLE_DATA)
set(BUILD_SHARED_LIBS OFF)
add_subdirectory(deps/msdfgen lib_msdfgen)
set(BUILD_SHARED_LIBS ON)
include_directories(deps/msdfgen)
set(LOVR_MSDF lib_msdfgen)
endif()

View File

@ -40,6 +40,20 @@ CFLAGS_@(VRAPI) += -DLOVR_USE_OCULUS_MOBILE
CFLAGS_@(WEBVR) += LOVR_USE_WEBVR
CFLAGS_@(LEAP) += LOVR_USE_LEAP
## Platforms
# $(LDFLAGS_@(TUP_PLATFORM)) doesn't seem to work, oh well
ifeq (@(TUP_PLATFORM),macosx)
LDFLAGS += -lobjc
LDFLAGS += -pagezero_size 10000 -image_base 100000000
ORIGIN = @executable_path
SO = dylib
endif
ifeq (@(TUP_PLATFORM),linux)
LDFLAGS += -lm -lpthread
ORIGIN = \$ORIGIN
SO = so
endif
## Libraries
ifeq (@(CMAKE_DEPS),y)
@ -50,47 +64,38 @@ ifeq (@(CMAKE_DEPS),y)
# LuaJIT
CFLAGS += -I$(ROOT)/deps/luajit/src
LDFLAGS += -L$(ROOT)/build/luajit/src -lluajit
LIBS += $(ROOT)/build/luajit/src/libluajit.so
LIBS += $(ROOT)/build/luajit/src/libluajit.$(SO)
# msdfgen
CFLAGS_@(DATA) += -I$(ROOT)/deps/msdfgen
LDFLAGS_@(DATA) += -L$(ROOT)/build/lib_msdfgen -lmsdfgen
LIBS_@(DATA) += $(ROOT)/build/lib_msdfgen/libmsdfgen.so
LIBS += $(ROOT)/build/lib_msdfgen/libmsdfgen.$(SO)
# ode
CFLAGS_@(PHYSICS) += -I$(ROOT)/deps/ode/include -I$(ROOT)/build/ode/include
LDFLAGS_@(PHYSICS) += -L$(ROOT)/build/ode -lode
LIBS_@(PHYSICS) += $(ROOT)/build/ode/libode.so
LIBS_@(PHYSICS) += $(ROOT)/build/ode/libode.$(SO)
# glfw
CFLAGS += -I$(ROOT)/deps/glfw/include
LDFLAGS += -L$(ROOT)/build/glfw/src -lglfw
LIBS += $(ROOT)/build/glfw/src/libglfw.so*
LIBS += $(ROOT)/build/glfw/src/libglfw.*$(SO)*
# OpenVR
CFLAGS_@(OPENVR) += -I$(ROOT)/deps/openvr/headers
LDFLAGS_@(OPENVR) += -L$(ROOT)/build/openvr_api -lopenvr_api
LIBS_@(OPENVR) += $(ROOT)/build/openvr_api/libopenvr_api.so
LIBS_@(OPENVR) += $(ROOT)/build/openvr_api/libopenvr_api.$(SO)
# OpenAL
CFLAGS_@(AUDIO) += -I$(ROOT)/deps/openal-soft/include
LDFLAGS_@(AUDIO) += -L$(ROOT)/build/openal -lopenal
LIBS_@(AUDIO) += $(ROOT)/build/openal/libopenal.so*
LIBS_@(AUDIO) += $(ROOT)/build/openal/libopenal.*$(SO)*
# Configure rpath to look for libraries in a `libs` folder next to the executable
LDFLAGS += -Wl,-rpath,\$ORIGIN/libs
LDFLAGS += -Wl,-rpath,$(ORIGIN)/libs
LIBS += $(LIBS_y)
endif
## Platforms
# $(LDFLAGS_@(TUP_PLATFORM)) doesn't seem to work, oh well
ifeq (@(TUP_PLATFORM),macosx)
LDFLAGS += -lobjc
endif
ifeq (@(TUP_PLATFORM),linux)
LDFLAGS += -lm -lpthread
endif
CFLAGS += @(EXTRA_CFLAGS)
LDFLAGS += @(EXTRA_LDFLAGS)

View File

@ -226,7 +226,7 @@
#ifdef _MSC_VER
#include <malloc.h>
#endif
#if defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__)
#if defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__) || defined(__APPLE__)
#include <alloca.h>
#endif
#else // STB_VORBIS_NO_CRT