mirror of https://github.com/bjornbytes/lovr.git
Add glslang;
This commit is contained in:
parent
88296a7c16
commit
9ae285afa7
|
@ -19,3 +19,6 @@
|
||||||
[submodule "deps/oculus-openxr"]
|
[submodule "deps/oculus-openxr"]
|
||||||
path = deps/oculus-openxr
|
path = deps/oculus-openxr
|
||||||
url = https://github.com/lovr-org/ovr_openxr_mobile_sdk
|
url = https://github.com/lovr-org/ovr_openxr_mobile_sdk
|
||||||
|
[submodule "deps/glslang"]
|
||||||
|
path = deps/glslang
|
||||||
|
url = https://github.com/KhronosGroup/glslang
|
||||||
|
|
|
@ -16,6 +16,7 @@ option(LOVR_ENABLE_THREAD "Enable the thread module" ON)
|
||||||
option(LOVR_ENABLE_TIMER "Enable the timer module" ON)
|
option(LOVR_ENABLE_TIMER "Enable the timer module" ON)
|
||||||
|
|
||||||
option(LOVR_USE_LUAJIT "Use LuaJIT instead of Lua" ON)
|
option(LOVR_USE_LUAJIT "Use LuaJIT instead of Lua" ON)
|
||||||
|
option(LOVR_USE_GLSLANG "Use glslang to compile GLSL shaders" ON)
|
||||||
option(LOVR_USE_VULKAN "Use the Vulkan renderer" ON)
|
option(LOVR_USE_VULKAN "Use the Vulkan renderer" ON)
|
||||||
option(LOVR_USE_WEBGPU "Use the WebGPU renderer" OFF)
|
option(LOVR_USE_WEBGPU "Use the WebGPU renderer" OFF)
|
||||||
option(LOVR_USE_OPENXR "Enable the OpenXR backend for the headset module" ON)
|
option(LOVR_USE_OPENXR "Enable the OpenXR backend for the headset module" ON)
|
||||||
|
@ -170,6 +171,20 @@ if(LOVR_ENABLE_PHYSICS)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# glslang
|
||||||
|
if(LOVR_USE_GLSLANG)
|
||||||
|
set(ENABLE_HLSL OFF CACHE BOOL "")
|
||||||
|
set(ENABLE_SPVREMAPPER OFF CACHE BOOL "")
|
||||||
|
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "")
|
||||||
|
set(ENABLE_GLSLANG_INSTALL OFF CACHE BOOL "")
|
||||||
|
set(ENABLE_OPT OFF CACHE BOOL "")
|
||||||
|
set(ENABLE_CTEST OFF CACHE BOOL "")
|
||||||
|
set(BUILD_EXTERNAL OFF CACHE BOOL "")
|
||||||
|
add_subdirectory(deps/glslang glslang)
|
||||||
|
set_target_properties(SPIRV PROPERTIES EXCLUDE_FROM_ALL 1)
|
||||||
|
set(LOVR_GLSLANG glslang)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Vulkan
|
# Vulkan
|
||||||
if(LOVR_USE_VULKAN)
|
if(LOVR_USE_VULKAN)
|
||||||
find_package(Vulkan REQUIRED)
|
find_package(Vulkan REQUIRED)
|
||||||
|
@ -322,7 +337,6 @@ if(NOT LOVR_BUILD_EXE)
|
||||||
target_compile_definitions(lovr PUBLIC LOVR_OMIT_MAIN) # specifically for win32 WinMain
|
target_compile_definitions(lovr PUBLIC LOVR_OMIT_MAIN) # specifically for win32 WinMain
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
set_target_properties(lovr PROPERTIES C_VISIBILITY_PRESET ${LOVR_SYMBOL_VISIBILITY})
|
set_target_properties(lovr PROPERTIES C_VISIBILITY_PRESET ${LOVR_SYMBOL_VISIBILITY})
|
||||||
set_target_properties(lovr PROPERTIES C_STANDARD 11)
|
set_target_properties(lovr PROPERTIES C_STANDARD 11)
|
||||||
target_include_directories(lovr PRIVATE src src/modules src/lib/stdatomic etc)
|
target_include_directories(lovr PRIVATE src src/modules src/lib/stdatomic etc)
|
||||||
|
@ -331,6 +345,7 @@ target_link_libraries(lovr
|
||||||
${LOVR_LUA}
|
${LOVR_LUA}
|
||||||
${LOVR_MSDF}
|
${LOVR_MSDF}
|
||||||
${LOVR_ODE}
|
${LOVR_ODE}
|
||||||
|
${LOVR_GLSLANG}
|
||||||
${LOVR_OPENXR}
|
${LOVR_OPENXR}
|
||||||
${LOVR_OCULUS_AUDIO}
|
${LOVR_OCULUS_AUDIO}
|
||||||
${LOVR_PTHREADS}
|
${LOVR_PTHREADS}
|
||||||
|
|
33
Tupfile.lua
33
Tupfile.lua
|
@ -6,6 +6,7 @@ config = {
|
||||||
sanitize = false,
|
sanitize = false,
|
||||||
strict = true,
|
strict = true,
|
||||||
luajit = false,
|
luajit = false,
|
||||||
|
glslang = true,
|
||||||
modules = {
|
modules = {
|
||||||
audio = true,
|
audio = true,
|
||||||
data = true,
|
data = true,
|
||||||
|
@ -241,6 +242,38 @@ if target == 'win32' or target == 'macos' or target == 'linux' then
|
||||||
tup.rule('.obj/glfw/*.o', '^ LD %o^ $(cc) $(flags) -o %o %f $(glfw_lflags)', lib('glfw'))
|
tup.rule('.obj/glfw/*.o', '^ LD %o^ $(cc) $(flags) -o %o %f $(glfw_lflags)', lib('glfw'))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if config.modules.graphics and config.glslang then
|
||||||
|
cflags_graphics += '-Ideps/glslang/glslang/Include'
|
||||||
|
cflags_graphics += '-Ideps/glslang/StandAlone'
|
||||||
|
cflags += '-DLOVR_USE_GLSLANG'
|
||||||
|
lflags += '-lglslang'
|
||||||
|
|
||||||
|
glslang_cflags += '-fPIC'
|
||||||
|
glslang_cflags += '-fno-exceptions'
|
||||||
|
glslang_cflags += '-fno-rtti'
|
||||||
|
glslang_cflags += '-Ideps/glslang'
|
||||||
|
glslang_lflags += '-shared'
|
||||||
|
glslang_lflags += '-lstdc++'
|
||||||
|
glslang_src += 'deps/glslang/OGLCompilersDLL/*.cpp'
|
||||||
|
glslang_src += 'deps/glslang/glslang/CInterface/*.cpp'
|
||||||
|
glslang_src += 'deps/glslang/glslang/MachineIndependent/*.cpp'
|
||||||
|
glslang_src += 'deps/glslang/glslang/MachineIndependent/preprocessor/*.cpp'
|
||||||
|
glslang_src += ('deps/glslang/glslang/OSDependent/%s/ossource.cpp'):format(target == 'win32' and 'Windows' or 'Unix')
|
||||||
|
glslang_src += 'deps/glslang/glslang/GenericCodeGen/*.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/GlslangToSpv.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/Logger.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/SpvTools.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/SpvBuilder.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/SpvPostProcess.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/InReadableOrder.cpp'
|
||||||
|
glslang_src += 'deps/glslang/SPIRV/CInterface/spirv_c_interface.cpp'
|
||||||
|
glslang_src += 'deps/glslang/StandAlone/resource_limits_c.cpp'
|
||||||
|
glslang_src += 'deps/glslang/StandAlone/ResourceLimits.cpp'
|
||||||
|
|
||||||
|
tup.foreach_rule(glslang_src, '^ CC glslang/%b^ $(cc) $(flags) $(glslang_cflags) -c %f -o %o', '.obj/glslang/%B.o')
|
||||||
|
tup.rule('.obj/glslang/*.o', '^ LD %o^ $(cxx) $(flags) -o %o %f $(glslang_lflags)', lib('glslang'))
|
||||||
|
end
|
||||||
|
|
||||||
if config.modules.data then
|
if config.modules.data then
|
||||||
cflags_rasterizer += '-Ideps/msdfgen'
|
cflags_rasterizer += '-Ideps/msdfgen'
|
||||||
lflags += '-lmsdfgen'
|
lflags += '-lmsdfgen'
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 14f6e2730457bac14a64cb3d962d0a3da8c15ae4
|
Loading…
Reference in New Issue