diff --git a/CMakeLists.txt b/CMakeLists.txt index a6634181..7fbbe94f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ cmake_minimum_required(VERSION 3.1.0) +cmake_policy(SET CMP0063 NEW) project(lovr) # Options @@ -319,6 +320,7 @@ else() add_executable(lovr ${LOVR_SRC}) endif() +set_target_properties(lovr PROPERTIES C_VISIBILITY_PRESET default) set_target_properties(lovr PROPERTIES C_STANDARD 99) target_include_directories(lovr PRIVATE src) target_link_libraries(lovr diff --git a/src/headset/oculus_mobile_bridge.h b/src/headset/oculus_mobile_bridge.h index 8e468129..2eb6c50d 100644 --- a/src/headset/oculus_mobile_bridge.h +++ b/src/headset/oculus_mobile_bridge.h @@ -1,6 +1,7 @@ // Functions on the Lovr side of the wall, called from the Oculus side of the wall. #pragma once +#include "../util.h" #include // What's going on here: @@ -81,18 +82,17 @@ typedef struct { BridgeLovrDevice deviceType; } BridgeLovrInitData; -void bridgeLovrInit(BridgeLovrInitData *initData); +LOVR_EXPORT void bridgeLovrInit(BridgeLovrInitData *initData); -void bridgeLovrUpdate(BridgeLovrUpdateData *updateData); +LOVR_EXPORT void bridgeLovrUpdate(BridgeLovrUpdateData *updateData); typedef struct { int eye; int framebuffer; } BridgeLovrDrawData; -void bridgeLovrDraw(BridgeLovrDrawData *drawData); +LOVR_EXPORT void bridgeLovrDraw(BridgeLovrDrawData *drawData); -void bridgeLovrPaused(bool paused); - -void bridgeLovrClose(); +LOVR_EXPORT void bridgeLovrPaused(bool paused); +LOVR_EXPORT void bridgeLovrClose(); diff --git a/src/util.h b/src/util.h index d5c91936..22871f9d 100644 --- a/src/util.h +++ b/src/util.h @@ -6,7 +6,7 @@ #ifdef _WIN32 #define LOVR_EXPORT __declspec(dllexport) #else -#define LOVR_EXPORT +#define LOVR_EXPORT __attribute__((visibility("default"))) #endif #ifndef _Noreturn