protot/3rdparty/bgfx/CMakeLists.txt

173 lines
5.7 KiB
CMake

PROJECT (BGFX CXX)
FIND_PACKAGE (OpenGL)
FIND_PACKAGE (Threads)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
#ADD_DEFINITIONS ("BX_PLATFORM_LINUX")
#ADD_DEFINITIONS ("-DBGFX_CONFIG_MULTITHREADED=0")
ADD_DEFINITIONS ("-DBGFX_CONFIG_RENDERER_OPENGL=1")
ADD_DEFINITIONS ("-DENTRY_CONFIG_USE_GLFW=1")
ADD_DEFINITIONS ("-D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_CONSTANT_MACROS")
INCLUDE_DIRECTORIES (
${CMAKE_CURRENT_SOURCE_DIR}/bx/include
${CMAKE_CURRENT_SOURCE_DIR}/../bimg/include
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/khronos
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/examples/common
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty
${OPENGL_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/fcpp/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glsl-optimizer/include/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glsl-optimizer/src/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glsl-optimizer/src/glsl/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glsl-optimizer/src/mesa/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glslang/glslang/Public/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glslang/glslang/Include/
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glslang/
${CMAKE_CURRENT_BINARY_DIR}/src
)
SET (BGFX_SOURCES
../bx/src/amalgamated.cpp
src/amalgamated.cpp
)
SET (BGFX_AUX_SOURCES
examples/common/entry/dbg.cpp
examples/common/nanovg/nanovg.cpp
examples/common/nanovg/nanovg_bgfx.cpp
examples/common/imgui/imgui.cpp
examples/common/imgui/ocornut_imgui.cpp
3rdparty/ib-compress/indexbuffercompression.cpp
3rdparty/ib-compress/indexbufferdecompression.cpp
3rdparty/stb/stb_image.c
3rdparty/ocornut-imgui/imgui.cpp
3rdparty/ocornut-imgui/imgui_draw.cpp
3rdparty/ocornut-imgui/imgui_demo.cpp
3rdparty/ocornut-imgui/imgui_node_graph_test.cpp
)
ADD_LIBRARY ( bgfx SHARED ${BGFX_SOURCES} )
ADD_LIBRARY ( bgfx_aux SHARED ${BGFX_AUX_SOURCES} )
TARGET_LINK_LIBRARIES (bgfx
${OPENGL_LIBRARIES}
)
#
# shaderc compilation
#
file(GLOB glcpp-library_sources
3rdparty/glsl-optimizer/src/mesa/main/*.c
3rdparty/glsl-optimizer/src/mesa/program/*.c
3rdparty/glsl-optimizer/src/glsl/glcpp/*.c
3rdparty/glsl-optimizer/src/glsl/*.cpp
3rdparty/glsl-optimizer/src/glsl/*.c
3rdparty/glsl-optimizer/src/util/*.c
)
list(REMOVE_ITEM glcpp-library_sources
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/glsl-optimizer/src/glsl/main.cpp)
SET ( glslang_SRCS
3rdparty/glslang/OGLCompilersDLL/InitializeDll.cpp
3rdparty/glslang/SPIRV/SPVRemapper.cpp
3rdparty/glslang/SPIRV/InReadableOrder.cpp
3rdparty/glslang/SPIRV/SpvBuilder.cpp
3rdparty/glslang/SPIRV/doc.cpp
3rdparty/glslang/SPIRV/disassemble.cpp
3rdparty/glslang/SPIRV/GlslangToSpv.cpp
3rdparty/glslang/SPIRV/Logger.cpp
# 3rdparty/glslang/StandAlone/StandAlone.cpp
# 3rdparty/glslang/StandAlone/ResourceLimits.cpp
# 3rdparty/glslang/StandAlone/spirv-remap.cpp
3rdparty/glslang/hlsl/hlslGrammar.cpp
3rdparty/glslang/hlsl/hlslParseHelper.cpp
3rdparty/glslang/hlsl/hlslParseables.cpp
3rdparty/glslang/hlsl/hlslTokenStream.cpp
3rdparty/glslang/hlsl/hlslAttributes.cpp
3rdparty/glslang/hlsl/hlslOpMap.cpp
3rdparty/glslang/hlsl/hlslScanContext.cpp
3rdparty/glslang/glslang/OSDependent/Unix/ossource.cpp
# 3rdparty/glslang/glslang/OSDependent/Windows/ossource.cpp
# 3rdparty/glslang/glslang/OSDependent/Windows/main.cpp
3rdparty/glslang/glslang/GenericCodeGen/CodeGen.cpp
3rdparty/glslang/glslang/GenericCodeGen/Link.cpp
3rdparty/glslang/glslang/MachineIndependent/parseConst.cpp
3rdparty/glslang/glslang/MachineIndependent/iomapper.cpp
3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
3rdparty/glslang/glslang/MachineIndependent/limits.cpp
3rdparty/glslang/glslang/MachineIndependent/Scan.cpp
3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
3rdparty/glslang/glslang/MachineIndependent/SymbolTable.cpp
3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
3rdparty/glslang/glslang/MachineIndependent/Constant.cpp
3rdparty/glslang/glslang/MachineIndependent/InfoSink.cpp
3rdparty/glslang/glslang/MachineIndependent/RemoveTree.cpp
3rdparty/glslang/glslang/MachineIndependent/IntermTraverse.cpp
3rdparty/glslang/glslang/MachineIndependent/Versions.cpp
3rdparty/glslang/glslang/MachineIndependent/PoolAlloc.cpp
3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp
3rdparty/glslang/glslang/MachineIndependent/reflection.cpp
3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp
3rdparty/glslang/glslang/MachineIndependent/ParseContextBase.cpp
3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpMemory.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpSymbols.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp
3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
3rdparty/glslang/glslang/MachineIndependent/propagateNoContraction.cpp
)
ADD_EXECUTABLE (shaderc
../bx/src/amalgamated.cpp
src/shader.cpp
src/shader_spirv.cpp
src/shader_dxbc.cpp
src/shader_dx9bc.cpp
tools/shaderc/shaderc.cpp
tools/shaderc/shaderc_glsl.cpp
tools/shaderc/shaderc.h
tools/shaderc/shaderc_hlsl.cpp
tools/shaderc/shaderc_pssl.cpp
tools/shaderc/shaderc_spirv.cpp
${glcpp-library_sources}
3rdparty/fcpp/cpp1.c
3rdparty/fcpp/cpp2.c
3rdparty/fcpp/cpp3.c
3rdparty/fcpp/cpp4.c
3rdparty/fcpp/cpp5.c
3rdparty/fcpp/cpp6.c
${glslang_SRCS}
)
SET_TARGET_PROPERTIES ( shaderc PROPERTIES
COMPILE_FLAGS "-fno-strict-aliasing"
)
TARGET_LINK_LIBRARIES ( shaderc
pthread
dl
)