diff --git a/CMakeLists.txt b/CMakeLists.txt index e4b493c0..82a2fb1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,7 +91,7 @@ endif() if(LOVR_USE_GLFW AND NOT (EMSCRIPTEN OR ANDROID)) if(LOVR_SYSTEM_GLFW) pkg_search_module(GLFW REQUIRED glfw3) - include_directories(${GLFW_INCLUDE_DIRS}) + list(APPEND LOVR_INCLUDES ${GLFW_INCLUDE_DIRS}) set(LOVR_GLFW ${GLFW_LIBRARIES}) else() set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "") @@ -100,7 +100,7 @@ if(LOVR_USE_GLFW AND NOT (EMSCRIPTEN OR ANDROID)) set(GLFW_INSTALL OFF CACHE BOOL "") set(BUILD_SHARED_LIBS ON CACHE BOOL "") add_subdirectory(deps/glfw glfw) - include_directories(deps/glfw/include) + list(APPEND LOVR_INCLUDES deps/glfw/include) set(LOVR_GLFW glfw ${GLFW_LIBRARIES}) endif() unset(LIB_SUFFIX CACHE) @@ -110,7 +110,7 @@ endif() if(LOVR_USE_LUAJIT AND NOT EMSCRIPTEN) if(LOVR_SYSTEM_LUA) pkg_search_module(LUAJIT REQUIRED luajit) - include_directories(${LUAJIT_INCLUDE_DIRS}) + set(LOVR_LUA_INCLUDE ${LUAJIT_INCLUDE_DIRS}) set(LOVR_LUA ${LUAJIT_LIBRARIES}) else() add_subdirectory(deps/luajit luajit) @@ -120,13 +120,13 @@ if(LOVR_USE_LUAJIT AND NOT EMSCRIPTEN) target_compile_definitions(minilua PRIVATE _CRT_SECURE_NO_WARNINGS) target_compile_definitions(buildvm PRIVATE _CRT_SECURE_NO_WARNINGS) endif() - include_directories(deps/luajit/src ${CMAKE_BINARY_DIR}/luajit) + set(LOVR_LUA_INCLUDE deps/luajit/src ${CMAKE_BINARY_DIR}/luajit) set(LOVR_LUA libluajit) endif() else() if(LOVR_SYSTEM_LUA) pkg_search_module(LUA REQUIRED lua) - include_directories(${LUA_INCLUDE_DIRS}) + set(LOVR_LUA_INCLUDE ${LUA_INCLUDE_DIRS}) set(LOVR_LUA ${LUA_LIBRARIES}) else() set(LUA_SRC @@ -139,7 +139,7 @@ else() target_link_libraries(lua m) target_link_libraries(lua dl) target_compile_definitions(lua PRIVATE -DLUA_USE_DLOPEN) - include_directories(deps/lua) + set(LOVR_LUA_INCLUDE deps/lua) set(LOVR_LUA lua) endif() endif() @@ -152,7 +152,7 @@ if(LOVR_ENABLE_DATA) set(MSDFGEN_USE_VCPKG OFF CACHE BOOL "") set(MSDFGEN_USE_CPP11 OFF CACHE BOOL "") add_subdirectory(deps/msdfgen msdfgen) - include_directories(deps/msdfgen) + list(APPEND LOVR_INCLUDES deps/msdfgen) set(LOVR_MSDF msdfgen-core) if(APPLE) set_target_properties(msdfgen-core PROPERTIES MACOSX_RPATH ON) @@ -186,26 +186,26 @@ if(LOVR_USE_GLSLANG) if(NOT EMSCRIPTEN) set(ENABLE_GLSLANG_BINARIES ON CACHE BOOL "") endif() - include_directories(deps/glslang/glslang/Include deps/glslang/glslang/Public) + list(APPEND LOVR_INCLUDES deps/glslang/glslang/Include deps/glslang/glslang/Public) add_subdirectory(deps/glslang glslang) set(LOVR_GLSLANG glslang SPIRV glslang-default-resource-limits) endif() # Vulkan if(LOVR_USE_VULKAN) - include_directories(deps/vulkan-headers/include) + list(APPEND LOVR_INCLUDES deps/vulkan-headers/include) endif() # OpenXR if(LOVR_ENABLE_HEADSET AND LOVR_USE_OPENXR) if(LOVR_SYSTEM_OPENXR AND NOT ANDROID) pkg_search_module(OPENXR openxr REQUIRED) - include_directories(${OPENXR_INCLUDE_DIRS}) + list(APPEND LOVR_INCLUDES ${OPENXR_INCLUDE_DIRS}) set(LOVR_OPENXR ${OPENXR_LIBRARIES}) else() set(DYNAMIC_LOADER ON CACHE BOOL "") set(BUILD_WITH_WAYLAND_HEADERS OFF CACHE BOOL "") - include_directories(deps/openxr/include) + list(APPEND LOVR_INCLUDES deps/openxr/include) add_subdirectory(deps/openxr openxr) set(LOVR_OPENXR openxr_loader) endif() @@ -226,7 +226,7 @@ if(LOVR_USE_STEAM_AUDIO) if(CMAKE_SIZEOF_VOID_P EQUAL 4) # Note: SteamAudio distributes 32 bit libs but wiring them up is very verbose message(FATAL_ERROR "LOVR_USE_STEAM_AUDIO is not currently available on 32 bit builds") endif() - include_directories("${LOVR_STEAM_AUDIO_PATH}/include") + list(APPEND LOVR_INCLUDES "${LOVR_STEAM_AUDIO_PATH}/include") add_library(Phonon SHARED IMPORTED) if(ANDROID) set_target_properties(Phonon PROPERTIES IMPORTED_LOCATION "${LOVR_STEAM_AUDIO_PATH}/lib/Android/arm64/libphonon.so") @@ -249,7 +249,7 @@ if(LOVR_USE_OCULUS_AUDIO) message(FATAL_ERROR "LOVR_USE_OCULUS_AUDIO requires the LOVR_OCULUS_AUDIO_PATH to be set to the location of the Oculus Spatializer Native (AudioSDK) folder") endif() - include_directories("${LOVR_OCULUS_AUDIO_PATH}/Include") + list(APPEND LOVR_INCLUDES "${LOVR_OCULUS_AUDIO_PATH}/Include") add_library(OculusAudio SHARED IMPORTED) if(ANDROID) @@ -319,6 +319,8 @@ set_target_properties(lovr PROPERTIES C_STANDARD 11) set_target_properties(lovr PROPERTIES C_STANDARD_REQUIRED ON) target_include_directories(lovr PRIVATE + ${LOVR_INCLUDES} + ${LOVR_LUA_INCLUDE} ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/modules ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/std @@ -618,6 +620,7 @@ if(NOT EMSCRIPTEN) endif() set_target_properties(${PLUGIN_TARGETS} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/plugins/${PLUGIN}") foreach(PLUGIN_TARGET ${PLUGIN_TARGETS}) + target_include_directories(${PLUGIN_TARGET} PRIVATE ${LOVR_LUA_INCLUDE}) target_link_libraries(${PLUGIN_TARGET} ${LOVR_LUA}) endforeach() list(APPEND ALL_PLUGIN_TARGETS ${PLUGIN_TARGETS})