mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 13:02:33 +01:00
bgfx: Move shaderc to bgfx with 3rdparties
This commit is contained in:
26
cmake/3rdparty/fcpp.cmake
vendored
26
cmake/3rdparty/fcpp.cmake
vendored
@@ -1,26 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
if(TARGET fcpp)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(GLOB FCPP_SOURCES ${BGFX_DIR}/3rdparty/fcpp/*.c ${BGFX_DIR}/3rdparty/fcpp/*.h)
|
||||
|
||||
add_library(fcpp STATIC ${FCPP_SOURCES})
|
||||
target_include_directories(fcpp PUBLIC ${BGFX_DIR}/3rdparty/fcpp)
|
||||
target_compile_definitions(fcpp PRIVATE NINCLUDE=64 NWORK=65536 NBUFF=65536 OLD_PREPROCESSOR=0)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(fcpp PROPERTIES COMPILE_FLAGS "/W0")
|
||||
endif()
|
||||
|
||||
set_target_properties(fcpp PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
set_source_files_properties(${BGFX_DIR}/3rdparty/fcpp/usecpp.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
80
cmake/3rdparty/glsl-optimizer.cmake
vendored
80
cmake/3rdparty/glsl-optimizer.cmake
vendored
@@ -1,80 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
if(TARGET glsl-optimizer)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(GLSL-OPTIMIZER_INCLUDES
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/include ${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/src/mapi ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/src
|
||||
)
|
||||
|
||||
# glsl-optimizer makes UBSan segfault for whatever reason
|
||||
# We already know that it's full of UB anyway... so just don't build it with UBSan
|
||||
string(REPLACE "-fsanitize=undefined" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
string(REPLACE "-fsanitize=undefined" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
|
||||
# glcpp
|
||||
file(GLOB GLCPP_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/glcpp/*.c
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/src/util/*.c
|
||||
)
|
||||
# Library must be static because hash_table_ctor referenced in function glcpp_parser_create
|
||||
add_library(glcpp STATIC ${GLCPP_SOURCES})
|
||||
target_include_directories(glcpp PUBLIC ${GLSL-OPTIMIZER_INCLUDES})
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
target_compile_options(glcpp PRIVATE "-fno-strict-aliasing")
|
||||
endif()
|
||||
if(MSVC)
|
||||
set_target_properties(glcpp PROPERTIES COMPILE_FLAGS "/W0")
|
||||
endif()
|
||||
set_target_properties(glcpp PROPERTIES FOLDER "bgfx/3rdparty")
|
||||
|
||||
# mesa
|
||||
file(GLOB MESA_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa/program/*.c
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa/main/*.c
|
||||
)
|
||||
# Library must be static because mesa/program/prog_hash_table.c uses _mesa_error_no_memory which is in glsl/standalone_scaffolding.cpp of glsl-optimizer
|
||||
add_library(mesa STATIC ${MESA_SOURCES})
|
||||
target_include_directories(mesa PUBLIC ${GLSL-OPTIMIZER_INCLUDES})
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
target_compile_options(mesa PRIVATE "-fno-strict-aliasing")
|
||||
endif()
|
||||
if(MSVC)
|
||||
set_target_properties(mesa PROPERTIES COMPILE_FLAGS "/W0")
|
||||
endif()
|
||||
set_target_properties(mesa PROPERTIES FOLDER "bgfx/3rdparty")
|
||||
|
||||
# glsl-optimizer
|
||||
file(GLOB GLSL-OPTIMIZER_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/*.c
|
||||
)
|
||||
file(GLOB GLSL-OPTIMIZER_SOURCES_REMOVE ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/main.cpp
|
||||
${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/builtin_stubs.cpp
|
||||
)
|
||||
list(REMOVE_ITEM GLSL-OPTIMIZER_SOURCES ${GLSL-OPTIMIZER_SOURCES_REMOVE})
|
||||
add_library(glsl-optimizer STATIC ${GLSL-OPTIMIZER_SOURCES})
|
||||
target_link_libraries(glsl-optimizer glcpp mesa)
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
target_compile_options(
|
||||
glsl-optimizer PRIVATE -fno-strict-aliasing -Wno-implicit-fallthrough -Wno-parentheses -Wno-sign-compare
|
||||
-Wno-unused-function -Wno-unused-parameter
|
||||
)
|
||||
endif()
|
||||
if(MSVC)
|
||||
set_target_properties(glsl-optimizer PROPERTIES COMPILE_FLAGS "/W0")
|
||||
target_compile_definitions(
|
||||
glsl-optimizer PRIVATE __STDC__ __STDC_VERSION__=199901L strdup=_strdup alloca=_alloca isascii=__isascii
|
||||
)
|
||||
elseif(APPLE)
|
||||
target_compile_options(glsl-optimizer PRIVATE -Wno-deprecated-register)
|
||||
endif()
|
||||
set_target_properties(glsl-optimizer PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
91
cmake/3rdparty/glslang.cmake
vendored
91
cmake/3rdparty/glslang.cmake
vendored
@@ -1,91 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
if(TARGET glslang)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(
|
||||
GLOB
|
||||
GLSLANG_SOURCES
|
||||
${BGFX_DIR}/3rdparty/glslang/glslang/GenericCodeGen/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glslang/glslang/MachineIndependent/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glslang/glslang/MachineIndependent/preprocessor/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glslang/glslang/HLSL/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glslang/hlsl/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glslang/SPIRV/*.cpp
|
||||
${BGFX_DIR}/3rdparty/glslang/OGLCompilersDLL/*.cpp
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND GLSLANG_SOURCES ${BGFX_DIR}/3rdparty/glslang/glslang/OSDependent/Windows/ossource.cpp)
|
||||
else()
|
||||
list(APPEND GLSLANG_SOURCES ${BGFX_DIR}/3rdparty/glslang/glslang/OSDependent/Unix/ossource.cpp)
|
||||
endif()
|
||||
|
||||
add_library(glslang STATIC EXCLUDE_FROM_ALL ${GLSLANG_SOURCES})
|
||||
target_include_directories(
|
||||
glslang
|
||||
PUBLIC ${BGFX_DIR}/3rdparty/spirv-tools/include ${BGFX_DIR}/3rdparty/spirv-tools/source ${BGFX_DIR}/3rdparty/glslang
|
||||
${BGFX_DIR}/3rdparty/glslang/glslang/Include ${BGFX_DIR}/3rdparty/glslang/glslang/Public
|
||||
PRIVATE ${BGFX_DIR}/3rdparty
|
||||
)
|
||||
|
||||
set_target_properties(glslang PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(
|
||||
glslang
|
||||
PRIVATE "/wd4005"
|
||||
"/wd4065"
|
||||
"/wd4100"
|
||||
"/wd4127"
|
||||
"/wd4189"
|
||||
"/wd4244"
|
||||
"/wd4310"
|
||||
"/wd4389"
|
||||
"/wd4456"
|
||||
"/wd4457"
|
||||
"/wd4458"
|
||||
"/wd4702"
|
||||
"/wd4715"
|
||||
"/wd4838"
|
||||
)
|
||||
else()
|
||||
target_compile_options(
|
||||
glslang
|
||||
PRIVATE "-Wno-ignored-qualifiers"
|
||||
"-Wno-implicit-fallthrough"
|
||||
"-Wno-missing-field-initializers"
|
||||
"-Wno-reorder"
|
||||
"-Wno-return-type"
|
||||
"-Wno-shadow"
|
||||
"-Wno-sign-compare"
|
||||
"-Wno-switch"
|
||||
"-Wno-undef"
|
||||
"-Wno-unknown-pragmas"
|
||||
"-Wno-unused-function"
|
||||
"-Wno-unused-parameter"
|
||||
"-Wno-unused-variable"
|
||||
"-fno-strict-aliasing"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
target_compile_options(
|
||||
glslang PRIVATE "-Wno-c++11-extensions" "-Wno-unused-const-variable" "-Wno-deprecated-register"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
target_compile_options(glslang PRIVATE "-Wno-unused-but-set-variable")
|
||||
endif()
|
||||
|
||||
target_compile_definitions(glslang PRIVATE ENABLE_OPT=1 ENABLE_HLSL=1)
|
||||
25
cmake/3rdparty/spirv-cross.cmake
vendored
25
cmake/3rdparty/spirv-cross.cmake
vendored
@@ -1,25 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
if(TARGET spirv-cross)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(GLOB SPIRV_CROSS_SOURCES ${BGFX_DIR}/3rdparty/spirv-cross/*.cpp ${BGFX_DIR}/3rdparty/spirv-cross/*.h)
|
||||
|
||||
add_library(spirv-cross STATIC ${SPIRV_CROSS_SOURCES})
|
||||
target_compile_definitions(spirv-cross PRIVATE SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
|
||||
target_include_directories(spirv-cross PUBLIC ${BGFX_DIR}/3rdparty/spirv-cross ${BGFX_DIR}/3rdparty/spirv-cross/include)
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(spirv-cross PRIVATE "/wd4018" "/wd4245" "/wd4706" "/wd4715")
|
||||
endif()
|
||||
|
||||
set_target_properties(spirv-cross PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
48
cmake/3rdparty/spirv-tools.cmake
vendored
48
cmake/3rdparty/spirv-tools.cmake
vendored
@@ -1,48 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
if(TARGET spirv-tools)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(
|
||||
GLOB
|
||||
SPIRV_TOOLS_SOURCES
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/*.cpp
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/*.h
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/opt/*.cpp
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/opt/*.h
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/reduce/*.cpp
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/reduce/*.h
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/util/*.cpp
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/util/*.h
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/val/*.cpp
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source/val/*.h
|
||||
)
|
||||
|
||||
add_library(spirv-tools STATIC ${SPIRV_TOOLS_SOURCES})
|
||||
target_include_directories(
|
||||
spirv-tools
|
||||
PUBLIC ${BGFX_DIR}/3rdparty/spirv-headers/include ${BGFX_DIR}/3rdparty/spirv-tools
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/include ${BGFX_DIR}/3rdparty/spirv-tools/include/generated
|
||||
${BGFX_DIR}/3rdparty/spirv-tools/source
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(spirv-tools PRIVATE "/wd4127" "/wd4389" "/wd4702" "/wd4706")
|
||||
else()
|
||||
target_compile_options(spirv-tools PRIVATE "-Wno-switch")
|
||||
|
||||
if(MINGW OR ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
||||
target_compile_options(spirv-tools PRIVATE "-Wno-misleading-indentation")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_target_properties(spirv-tools PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
66
cmake/bgfx/3rdparty/fcpp.cmake
vendored
Normal file
66
cmake/bgfx/3rdparty/fcpp.cmake
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# Ensure the directory exists
|
||||
if(NOT IS_DIRECTORY ${BGFX_DIR})
|
||||
message(SEND_ERROR "Could not load bgfx, directory does not exist. ${BGFX_DIR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(FCPP_DIR ${BGFX_DIR}/3rdparty/fcpp)
|
||||
|
||||
add_library(fcpp STATIC)
|
||||
|
||||
target_compile_definitions(
|
||||
fcpp
|
||||
PRIVATE "NINCLUDE=64" #
|
||||
"NWORK=65536" #
|
||||
"NBUFF=65536" #
|
||||
"OLD_PREPROCESSOR=0" #
|
||||
# "MSG_PREFIX=\"Preprocessor: \"" #
|
||||
)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(fcpp PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(fcpp PUBLIC ${FCPP_DIR})
|
||||
|
||||
file(
|
||||
GLOB
|
||||
FCPP_SOURCES
|
||||
${FCPP_DIR}/*.h
|
||||
${FCPP_DIR}/cpp1.c
|
||||
${FCPP_DIR}/cpp2.c
|
||||
${FCPP_DIR}/cpp3.c
|
||||
${FCPP_DIR}/cpp4.c
|
||||
${FCPP_DIR}/cpp5.c
|
||||
${FCPP_DIR}/cpp6.c
|
||||
${FCPP_DIR}/cpp6.c
|
||||
)
|
||||
|
||||
target_sources(fcpp PRIVATE ${FCPP_SOURCES})
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(
|
||||
fcpp
|
||||
PRIVATE
|
||||
"/wd4055" # warning C4055: 'type cast': from data pointer 'void *' to function pointer 'void (__cdecl *)(char *,void *)'
|
||||
"/wd4244" # warning C4244: '=': conversion from 'const flex_int32_t' to 'YY_CHAR', possible loss of data
|
||||
"/wd4701" # warning C4701: potentially uninitialized local variable 'lower' used
|
||||
"/wd4706" # warning C4706: assignment within conditional expression
|
||||
)
|
||||
else()
|
||||
target_compile_options(
|
||||
fcpp
|
||||
PRIVATE -Wno-implicit-fallthrough #
|
||||
-Wno-incompatible-pointer-types #
|
||||
-Wno-parentheses-equality #
|
||||
)
|
||||
endif()
|
||||
248
cmake/bgfx/3rdparty/glsl-optimizer.cmake
vendored
Normal file
248
cmake/bgfx/3rdparty/glsl-optimizer.cmake
vendored
Normal file
@@ -0,0 +1,248 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# Ensure the directory exists
|
||||
if(NOT IS_DIRECTORY ${BGFX_DIR})
|
||||
message(SEND_ERROR "Could not load bgfx, directory does not exist. ${BGFX_DIR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(GLSL_OPTIMIZER ${BGFX_DIR}/3rdparty/glsl-optimizer)
|
||||
|
||||
add_library(glsl-optimizer STATIC)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(glsl-optimizer PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
glsl-optimizer
|
||||
PUBLIC ${GLSL_OPTIMIZER}/include #
|
||||
${GLSL_OPTIMIZER}/src/glsl #
|
||||
PRIVATE ${GLSL_OPTIMIZER}/src #
|
||||
${GLSL_OPTIMIZER}/src/mesa #
|
||||
${GLSL_OPTIMIZER}/src/mapi #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB
|
||||
GLSL_OPTIMIZER_SOURCES
|
||||
${GLSL_OPTIMIZER}/src/glsl/glcpp/glcpp.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/glcpp/glcpp-lex.c
|
||||
${GLSL_OPTIMIZER}/src/glsl/glcpp/glcpp-parse.c
|
||||
${GLSL_OPTIMIZER}/src/glsl/glcpp/glcpp-parse.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/glcpp/pp.c
|
||||
${GLSL_OPTIMIZER}/src/glsl/ast.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ast_array_index.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ast_expr.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ast_function.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ast_to_hir.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ast_type.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/builtin_functions.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/builtin_type_macros.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/builtin_types.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/builtin_variables.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_lexer.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_optimizer.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_optimizer.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_parser.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_parser.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_parser_extras.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_parser_extras.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_symbol_table.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_symbol_table.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_types.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/glsl_types.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/hir_field_selection.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_basic_block.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_basic_block.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_builder.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_builder.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_clone.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_constant_expression.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_equals.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_expression_flattening.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_expression_flattening.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_function.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_function_can_inline.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_function_detect_recursion.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_function_inlining.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_hierarchical_visitor.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_hierarchical_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_hv_accept.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_import_prototypes.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_optimization.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_print_glsl_visitor.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_print_glsl_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_print_metal_visitor.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_print_metal_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_print_visitor.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_print_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_rvalue_visitor.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_rvalue_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_stats.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_stats.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_uniform.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_unused_structs.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_unused_structs.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_validate.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_variable_refcount.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_variable_refcount.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/ir_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_atomics.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_functions.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_interface_blocks.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_uniform_block_active_visitor.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_uniform_block_active_visitor.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_uniform_blocks.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_uniform_initializers.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_uniforms.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_varyings.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/link_varyings.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/linker.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/linker.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/list.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/loop_analysis.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/loop_analysis.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/loop_controls.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/loop_unroll.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_clip_distance.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_discard.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_discard_flow.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_if_to_cond_assign.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_instructions.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_jumps.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_mat_op_to_vec.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_named_interface_blocks.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_noise.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_offset_array.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_output_reads.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_packed_varyings.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_packing_builtins.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_ubo_reference.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_variable_index_to_cond_assign.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_vec_index_to_cond_assign.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_vec_index_to_swizzle.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_vector.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_vector_insert.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/lower_vertex_id.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_algebraic.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_array_splitting.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_constant_folding.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_constant_propagation.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_constant_variable.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_copy_propagation.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_copy_propagation_elements.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_cse.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_dead_builtin_variables.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_dead_builtin_varyings.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_dead_code.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_dead_code_local.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_dead_functions.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_flatten_nested_if_blocks.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_flip_matrices.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_function_inlining.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_if_simplification.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_minmax.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_noop_swizzle.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_rebalance_tree.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_redundant_jumps.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_structure_splitting.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_swizzle_swizzle.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_tree_grafting.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/opt_vectorize.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/program.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/s_expression.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/s_expression.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/standalone_scaffolding.cpp
|
||||
${GLSL_OPTIMIZER}/src/glsl/standalone_scaffolding.h
|
||||
${GLSL_OPTIMIZER}/src/glsl/strtod.c
|
||||
${GLSL_OPTIMIZER}/src/glsl/strtod.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/compiler.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/config.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/context.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/core.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/dd.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/errors.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/glheader.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/glminimal.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/imports.c
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/imports.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/macros.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/mtypes.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/main/simple_list.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/hash_table.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/prog_hash_table.c
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/prog_instruction.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/prog_parameter.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/prog_statevars.h
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/symbol_table.c
|
||||
${GLSL_OPTIMIZER}/src/mesa/program/symbol_table.h
|
||||
${GLSL_OPTIMIZER}/src/util/hash_table.c
|
||||
${GLSL_OPTIMIZER}/src/util/hash_table.h
|
||||
${GLSL_OPTIMIZER}/src/util/macros.h
|
||||
${GLSL_OPTIMIZER}/src/util/ralloc.c
|
||||
${GLSL_OPTIMIZER}/src/util/ralloc.h
|
||||
)
|
||||
|
||||
target_sources(glsl-optimizer PRIVATE ${GLSL_OPTIMIZER_SOURCES})
|
||||
|
||||
if(MSVC)
|
||||
target_compile_definitions(
|
||||
glsl-optimizer
|
||||
PRIVATE "__STDC__" #
|
||||
"__STDC_VERSION__=199901L" #
|
||||
"strdup=_strdup" #
|
||||
"alloca=_alloca" #
|
||||
"isascii=__isascii" #
|
||||
)
|
||||
target_compile_options(
|
||||
glsl-optimizer
|
||||
PRIVATE
|
||||
"/wd4100" # error C4100: '' : unreferenced formal parameter
|
||||
"/wd4127" # warning C4127: conditional expression is constant
|
||||
"/wd4132" # warning C4132: 'deleted_key_value': const object should be initialized
|
||||
"/wd4189" # warning C4189: 'interface_type': local variable is initialized but not referenced
|
||||
"/wd4204" # warning C4204: nonstandard extension used: non-constant aggregate initializer
|
||||
"/wd4244" # warning C4244: '=': conversion from 'const flex_int32_t' to 'YY_CHAR', possible loss of data
|
||||
"/wd4389" # warning C4389: '!=': signed/unsigned mismatch
|
||||
"/wd4245" # warning C4245: 'return': conversion from 'int' to 'unsigned int', signed/unsigned mismatch
|
||||
"/wd4701" # warning C4701: potentially uninitialized local variable 'lower' used
|
||||
"/wd4702" # warning C4702: unreachable code
|
||||
"/wd4706" # warning C4706: assignment within conditional expression
|
||||
"/wd4996" # warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup.
|
||||
)
|
||||
else()
|
||||
target_compile_options(
|
||||
glsl-optimizer
|
||||
PRIVATE "-fno-strict-aliasing" # glsl-optimizer has bugs if strict aliasing is used.
|
||||
#
|
||||
"-Wno-implicit-fallthrough" #
|
||||
"-Wno-parentheses" #
|
||||
"-Wno-sign-compare" #
|
||||
"-Wno-unused-function" #
|
||||
"-Wno-unused-parameter" #
|
||||
)
|
||||
endif()
|
||||
|
||||
if(XCODE)
|
||||
target_compile_options(
|
||||
glsl-optimizer PRIVATE #
|
||||
"-Wno-deprecated-register" #
|
||||
)
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
target_compile_options(
|
||||
glsl-optimizer PRIVATE #
|
||||
"-Wno-misleading-indentation" #
|
||||
)
|
||||
endif()
|
||||
65
cmake/bgfx/3rdparty/glslang.cmake
vendored
Normal file
65
cmake/bgfx/3rdparty/glslang.cmake
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# Ensure the directory exists
|
||||
if(NOT IS_DIRECTORY ${BGFX_DIR})
|
||||
message(SEND_ERROR "Could not load bgfx, directory does not exist. ${BGFX_DIR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(GLSLANG ${BGFX_DIR}/3rdparty/glslang)
|
||||
set(SPIRV_TOOLS ${BGFX_DIR}/3rdparty/spirv-tools)
|
||||
|
||||
add_library(glslang STATIC)
|
||||
|
||||
target_compile_definitions(
|
||||
glslang
|
||||
PRIVATE #
|
||||
ENABLE_OPT=1 # spriv-tools
|
||||
ENABLE_HLSL=1 #
|
||||
)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(glslang PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
glslang
|
||||
PUBLIC ${GLSLANG} #
|
||||
${GLSLANG}/glslang/Public #
|
||||
PRIVATE ${GLSLANG}/.. #
|
||||
${SPIRV_TOOLS}/include #
|
||||
${SPIRV_TOOLS}/source #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
GLSLANG_SOURCES
|
||||
${GLSLANG}/glslang/*.cpp
|
||||
${GLSLANG}/glslang/*.h
|
||||
#
|
||||
${GLSLANG}/hlsl/*.cpp
|
||||
${GLSLANG}/hlsl/*.h
|
||||
#
|
||||
${GLSLANG}/SPIRV/*.cpp
|
||||
${GLSLANG}/SPIRV/*.h
|
||||
#
|
||||
${GLSLANG}/OGLCompilersDLL/*.cpp
|
||||
${GLSLANG}/OGLCompilersDLL/*.h
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
list(FILTER GLSLANG_SOURCES EXCLUDE REGEX "glslang/OSDependent/Unix/.*.cpp")
|
||||
list(FILTER GLSLANG_SOURCES EXCLUDE REGEX "glslang/OSDependent/Unix/.*.h")
|
||||
else()
|
||||
list(FILTER GLSLANG_SOURCES EXCLUDE REGEX "glslang/OSDependent/Windows/.*.cpp")
|
||||
list(FILTER GLSLANG_SOURCES EXCLUDE REGEX "glslang/OSDependent/Windows/.*.h")
|
||||
endif()
|
||||
|
||||
target_sources(glslang PRIVATE ${GLSLANG_SOURCES})
|
||||
62
cmake/bgfx/3rdparty/spirv-cross.cmake
vendored
Normal file
62
cmake/bgfx/3rdparty/spirv-cross.cmake
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# Ensure the directory exists
|
||||
if(NOT IS_DIRECTORY ${BGFX_DIR})
|
||||
message(SEND_ERROR "Could not load bgfx, directory does not exist. ${BGFX_DIR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(SPIRV_CROSS ${BGFX_DIR}/3rdparty/spirv-cross)
|
||||
|
||||
add_library(spirv-cross STATIC)
|
||||
|
||||
target_compile_definitions(spirv-cross PRIVATE SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(spirv-cross PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
spirv-cross #
|
||||
PUBLIC #
|
||||
${SPIRV_CROSS} #
|
||||
PRIVATE #
|
||||
${SPIRV_CROSS}/include #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB
|
||||
SPIRV_CROSS_SOURCES
|
||||
#
|
||||
${SPIRV_CROSS}/spirv.hpp
|
||||
${SPIRV_CROSS}/spirv_cfg.cpp
|
||||
${SPIRV_CROSS}/spirv_cfg.hpp
|
||||
${SPIRV_CROSS}/spirv_common.hpp
|
||||
${SPIRV_CROSS}/spirv_cpp.cpp
|
||||
${SPIRV_CROSS}/spirv_cpp.hpp
|
||||
${SPIRV_CROSS}/spirv_cross.cpp
|
||||
${SPIRV_CROSS}/spirv_cross.hpp
|
||||
${SPIRV_CROSS}/spirv_cross_parsed_ir.cpp
|
||||
${SPIRV_CROSS}/spirv_cross_parsed_ir.hpp
|
||||
${SPIRV_CROSS}/spirv_cross_util.cpp
|
||||
${SPIRV_CROSS}/spirv_cross_util.hpp
|
||||
${SPIRV_CROSS}/spirv_glsl.cpp
|
||||
${SPIRV_CROSS}/spirv_glsl.hpp
|
||||
${SPIRV_CROSS}/spirv_hlsl.cpp
|
||||
${SPIRV_CROSS}/spirv_hlsl.hpp
|
||||
${SPIRV_CROSS}/spirv_msl.cpp
|
||||
${SPIRV_CROSS}/spirv_msl.hpp
|
||||
${SPIRV_CROSS}/spirv_parser.cpp
|
||||
${SPIRV_CROSS}/spirv_parser.hpp
|
||||
${SPIRV_CROSS}/spirv_reflect.cpp
|
||||
${SPIRV_CROSS}/spirv_reflect.hpp
|
||||
)
|
||||
|
||||
target_sources(spirv-cross PRIVATE ${SPIRV_CROSS_SOURCES})
|
||||
147
cmake/bgfx/3rdparty/spirv-opt.cmake
vendored
Normal file
147
cmake/bgfx/3rdparty/spirv-opt.cmake
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# Ensure the directory exists
|
||||
if(NOT IS_DIRECTORY ${BGFX_DIR})
|
||||
message(SEND_ERROR "Could not load bgfx, directory does not exist. ${BGFX_DIR}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(SPIRV_HEADERS ${BGFX_DIR}/3rdparty/spirv-headers)
|
||||
set(SPIRV_TOOLS ${BGFX_DIR}/3rdparty/spirv-tools)
|
||||
|
||||
add_library(spirv-opt STATIC)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(spirv-opt PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
spirv-opt
|
||||
PUBLIC ${SPIRV_TOOLS}/include #
|
||||
PRIVATE ${SPIRV_TOOLS} #
|
||||
${SPIRV_TOOLS}/include/generated #
|
||||
${SPIRV_TOOLS}/source #
|
||||
${SPIRV_HEADERS}/include #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB
|
||||
SPIRV_OPT_SOURCES
|
||||
# libspirv
|
||||
${SPIRV_TOOLS}/source/opt/*.cpp
|
||||
${SPIRV_TOOLS}/source/opt/*.h
|
||||
${SPIRV_TOOLS}/source/reduce/*.cpp
|
||||
${SPIRV_TOOLS}/source/reduce/*.h
|
||||
${SPIRV_TOOLS}/source/assembly_grammar.cpp
|
||||
${SPIRV_TOOLS}/source/assembly_grammar.h
|
||||
${SPIRV_TOOLS}/source/binary.cpp
|
||||
${SPIRV_TOOLS}/source/binary.h
|
||||
${SPIRV_TOOLS}/source/cfa.h
|
||||
${SPIRV_TOOLS}/source/diagnostic.cpp
|
||||
${SPIRV_TOOLS}/source/diagnostic.h
|
||||
${SPIRV_TOOLS}/source/disassemble.cpp
|
||||
${SPIRV_TOOLS}/source/disassemble.h
|
||||
${SPIRV_TOOLS}/source/enum_set.h
|
||||
${SPIRV_TOOLS}/source/enum_string_mapping.cpp
|
||||
${SPIRV_TOOLS}/source/enum_string_mapping.h
|
||||
${SPIRV_TOOLS}/source/ext_inst.cpp
|
||||
${SPIRV_TOOLS}/source/ext_inst.h
|
||||
${SPIRV_TOOLS}/source/extensions.cpp
|
||||
${SPIRV_TOOLS}/source/extensions.h
|
||||
${SPIRV_TOOLS}/source/instruction.h
|
||||
${SPIRV_TOOLS}/source/latest_version_glsl_std_450_header.h
|
||||
${SPIRV_TOOLS}/source/latest_version_opencl_std_header.h
|
||||
${SPIRV_TOOLS}/source/latest_version_spirv_header.h
|
||||
${SPIRV_TOOLS}/source/libspirv.cpp
|
||||
${SPIRV_TOOLS}/source/macro.h
|
||||
${SPIRV_TOOLS}/source/name_mapper.cpp
|
||||
${SPIRV_TOOLS}/source/name_mapper.h
|
||||
${SPIRV_TOOLS}/source/opcode.cpp
|
||||
${SPIRV_TOOLS}/source/opcode.h
|
||||
${SPIRV_TOOLS}/source/operand.cpp
|
||||
${SPIRV_TOOLS}/source/operand.h
|
||||
${SPIRV_TOOLS}/source/parsed_operand.cpp
|
||||
${SPIRV_TOOLS}/source/parsed_operand.h
|
||||
${SPIRV_TOOLS}/source/print.cpp
|
||||
${SPIRV_TOOLS}/source/print.h
|
||||
${SPIRV_TOOLS}/source/software_version.cpp
|
||||
${SPIRV_TOOLS}/source/spirv_constant.h
|
||||
${SPIRV_TOOLS}/source/spirv_definition.h
|
||||
${SPIRV_TOOLS}/source/spirv_endian.cpp
|
||||
${SPIRV_TOOLS}/source/spirv_endian.h
|
||||
${SPIRV_TOOLS}/source/spirv_optimizer_options.cpp
|
||||
${SPIRV_TOOLS}/source/spirv_reducer_options.cpp
|
||||
${SPIRV_TOOLS}/source/spirv_target_env.cpp
|
||||
${SPIRV_TOOLS}/source/spirv_target_env.h
|
||||
${SPIRV_TOOLS}/source/spirv_validator_options.cpp
|
||||
${SPIRV_TOOLS}/source/spirv_validator_options.h
|
||||
${SPIRV_TOOLS}/source/table.cpp
|
||||
${SPIRV_TOOLS}/source/table.h
|
||||
${SPIRV_TOOLS}/source/text.cpp
|
||||
${SPIRV_TOOLS}/source/text.h
|
||||
${SPIRV_TOOLS}/source/text_handler.cpp
|
||||
${SPIRV_TOOLS}/source/text_handler.h
|
||||
${SPIRV_TOOLS}/source/util/bit_vector.cpp
|
||||
${SPIRV_TOOLS}/source/util/bit_vector.h
|
||||
${SPIRV_TOOLS}/source/util/bitutils.h
|
||||
${SPIRV_TOOLS}/source/util/hex_float.h
|
||||
${SPIRV_TOOLS}/source/util/parse_number.cpp
|
||||
${SPIRV_TOOLS}/source/util/parse_number.h
|
||||
${SPIRV_TOOLS}/source/util/string_utils.cpp
|
||||
${SPIRV_TOOLS}/source/util/string_utils.h
|
||||
${SPIRV_TOOLS}/source/util/timer.h
|
||||
${SPIRV_TOOLS}/source/val/basic_block.cpp
|
||||
${SPIRV_TOOLS}/source/val/construct.cpp
|
||||
${SPIRV_TOOLS}/source/val/decoration.h
|
||||
${SPIRV_TOOLS}/source/val/function.cpp
|
||||
${SPIRV_TOOLS}/source/val/instruction.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate.h
|
||||
${SPIRV_TOOLS}/source/val/validate_adjacency.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_annotation.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_arithmetics.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_atomics.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_barriers.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_bitwise.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_builtins.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_capability.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_cfg.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_composites.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_constants.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_conversion.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_debug.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_decorations.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_derivatives.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_execution_limitations.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_extensions.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_function.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_id.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_image.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_instruction.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_interfaces.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_layout.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_literals.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_logicals.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_memory.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_memory_semantics.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_mesh_shading.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_misc.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_mode_setting.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_non_uniform.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_primitives.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_ray_query.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_ray_tracing.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_scopes.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_small_type_uses.cpp
|
||||
${SPIRV_TOOLS}/source/val/validate_type.cpp
|
||||
${SPIRV_TOOLS}/source/val/validation_state.cpp
|
||||
)
|
||||
|
||||
target_sources(spirv-opt PRIVATE ${SPIRV_OPT_SOURCES})
|
||||
@@ -21,3 +21,12 @@ if(BGFX_BUILD_TOOLS_GEOMETRY)
|
||||
include(geometryc.cmake)
|
||||
include(geometryv.cmake)
|
||||
endif()
|
||||
if(BGFX_BUILD_TOOLS_SHADER)
|
||||
include(3rdparty/spirv-opt.cmake)
|
||||
include(3rdparty/spirv-cross.cmake)
|
||||
include(3rdparty/glslang.cmake)
|
||||
include(3rdparty/glsl-optimizer.cmake)
|
||||
include(3rdparty/fcpp.cmake)
|
||||
include(3rdparty/webgpu.cmake)
|
||||
include(shaderc.cmake)
|
||||
endif()
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
add_executable(geometryc)
|
||||
|
||||
# Grab the texturec source files
|
||||
# Grab the geometryc source files
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
GEOMETRYC_SOURCES #
|
||||
|
||||
70
cmake/bgfx/shaderc.cmake
Normal file
70
cmake/bgfx/shaderc.cmake
Normal file
@@ -0,0 +1,70 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
add_executable(shaderc)
|
||||
|
||||
#target_include_directories(
|
||||
# shaderc
|
||||
# PRIVATE
|
||||
# ${BIMG_DIR}/include #
|
||||
# ${GLSL_OPTIMIZER}/include #
|
||||
# ${GLSL_OPTIMIZER}/src/mesa #
|
||||
# ${GLSL_OPTIMIZER}/src/mapi #
|
||||
# ${GLSL_OPTIMIZER}/src/glsl #
|
||||
#)
|
||||
|
||||
target_link_libraries(
|
||||
shaderc
|
||||
PRIVATE bx
|
||||
bgfx-vertexlayout
|
||||
fcpp
|
||||
glslang
|
||||
glsl-optimizer
|
||||
spirv-opt
|
||||
spirv-cross
|
||||
)
|
||||
target_link_libraries(
|
||||
shaderc
|
||||
PRIVATE bx
|
||||
bimg
|
||||
bgfx-vertexlayout
|
||||
fcpp
|
||||
glslang
|
||||
glsl-optimizer
|
||||
spirv-opt
|
||||
spirv-cross
|
||||
webgpu
|
||||
)
|
||||
if(BGFX_AMALGAMATED)
|
||||
target_link_libraries(shaderc PRIVATE bgfx-shader)
|
||||
endif()
|
||||
|
||||
# Grab the shaderc source files
|
||||
file(
|
||||
GLOB
|
||||
SHADERC_SOURCES #
|
||||
${BGFX_DIR}/tools/shaderc/*.cpp #
|
||||
${BGFX_DIR}/tools/shaderc/*.h #
|
||||
${BGFX_DIR}/src/shader* #
|
||||
)
|
||||
|
||||
target_sources(shaderc PRIVATE ${SHADERC_SOURCES})
|
||||
|
||||
set_target_properties(geometryc PROPERTIES FOLDER "bgfx/tools")
|
||||
|
||||
if(BGFX_BUILD_TOOLS AND BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools shaderc)
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
target_link_libraries(shaderc PRIVATE log)
|
||||
elseif(IOS)
|
||||
set_target_properties(shaderc PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER shaderc)
|
||||
endif()
|
||||
@@ -1,13 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
if(BGFX_BUILD_TOOLS_SHADER)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/tools/shaderc.cmake)
|
||||
endif()
|
||||
@@ -1,54 +0,0 @@
|
||||
# bgfx.cmake - bgfx building in cmake
|
||||
# Written in 2017 by Joshua Brookover <joshua.al.brookover@gmail.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all copyright
|
||||
# and related and neighboring rights to this software to the public domain
|
||||
# worldwide. This software is distributed without any warranty.
|
||||
#
|
||||
# You should have received a copy of the CC0 Public Domain Dedication along with
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
include(CMakeParseArguments)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../3rdparty/fcpp.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../3rdparty/glsl-optimizer.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../3rdparty/glslang.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../3rdparty/spirv-cross.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../3rdparty/spirv-tools.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../3rdparty/webgpu.cmake)
|
||||
|
||||
add_executable(
|
||||
shaderc
|
||||
${BGFX_DIR}/tools/shaderc/shaderc.cpp
|
||||
${BGFX_DIR}/tools/shaderc/shaderc.h
|
||||
${BGFX_DIR}/tools/shaderc/shaderc_glsl.cpp
|
||||
${BGFX_DIR}/tools/shaderc/shaderc_hlsl.cpp
|
||||
${BGFX_DIR}/tools/shaderc/shaderc_pssl.cpp
|
||||
${BGFX_DIR}/tools/shaderc/shaderc_spirv.cpp
|
||||
${BGFX_DIR}/tools/shaderc/shaderc_metal.cpp
|
||||
)
|
||||
target_compile_definitions(shaderc PRIVATE "-D_CRT_SECURE_NO_WARNINGS")
|
||||
set_target_properties(shaderc PROPERTIES FOLDER "bgfx/tools")
|
||||
target_link_libraries(
|
||||
shaderc
|
||||
PRIVATE bx
|
||||
bimg
|
||||
bgfx-vertexlayout
|
||||
bgfx-shader
|
||||
fcpp
|
||||
glsl-optimizer
|
||||
glslang
|
||||
spirv-cross
|
||||
spirv-tools
|
||||
webgpu
|
||||
)
|
||||
|
||||
if(BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools shaderc)
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
target_link_libraries(shaderc PRIVATE log)
|
||||
elseif(IOS)
|
||||
set_target_properties(shaderc PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER shaderc)
|
||||
endif()
|
||||
Reference in New Issue
Block a user