mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 21:12:35 +01:00
fix formatting for all cmake files
This commit is contained in:
@@ -115,7 +115,7 @@ with section("format"):
|
||||
max_lines_hwrap = 2
|
||||
|
||||
# What style line endings to use in the output.
|
||||
line_ending = 'windows'
|
||||
line_ending = 'unix'
|
||||
|
||||
# Format command names consistently as 'lower' or 'upper' case
|
||||
command_case = 'canonical'
|
||||
|
||||
22
cmake/3rdparty/astc-encoder.cmake
vendored
22
cmake/3rdparty/astc-encoder.cmake
vendored
@@ -8,23 +8,17 @@
|
||||
# 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 astc-encoder )
|
||||
if(TARGET astc-encoder)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(
|
||||
GLOB
|
||||
ASTC_ENCODER_SOURCES
|
||||
${BIMG_DIR}/3rdparty/astc-encoder/source/*.cpp
|
||||
file(GLOB ASTC_ENCODER_SOURCES ${BIMG_DIR}/3rdparty/astc-encoder/source/*.cpp
|
||||
${BIMG_DIR}/3rdparty/astc-encoder/include/*.h
|
||||
)
|
||||
|
||||
add_library( astc-encoder STATIC ${ASTC_ENCODER_SOURCES} )
|
||||
target_include_directories( astc-encoder
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/astc-encoder>
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/astc-encoder/include> )
|
||||
set_target_properties( astc-encoder
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty" )
|
||||
add_library(astc-encoder STATIC ${ASTC_ENCODER_SOURCES})
|
||||
target_include_directories(
|
||||
astc-encoder PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/astc-encoder>
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/astc-encoder/include>
|
||||
)
|
||||
set_target_properties(astc-encoder PROPERTIES FOLDER "bgfx/3rdparty")
|
||||
|
||||
19
cmake/3rdparty/dear-imgui.cmake
vendored
19
cmake/3rdparty/dear-imgui.cmake
vendored
@@ -8,17 +8,16 @@
|
||||
# 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 dear-imgui )
|
||||
if(TARGET dear-imgui)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB dear_IMGUI_SOURCES ${BGFX_DIR}/3rdparty/dear-imgui/*.cpp ${BGFX_DIR}/3rdparty/dear-imgui/*.h ${BGFX_DIR}/3rdparty/dear-imgui/*.inl )
|
||||
file(GLOB dear_IMGUI_SOURCES ${BGFX_DIR}/3rdparty/dear-imgui/*.cpp ${BGFX_DIR}/3rdparty/dear-imgui/*.h
|
||||
${BGFX_DIR}/3rdparty/dear-imgui/*.inl
|
||||
)
|
||||
|
||||
add_library( dear-imgui STATIC EXCLUDE_FROM_ALL ${dear_IMGUI_SOURCES} )
|
||||
target_compile_definitions( dear-imgui PRIVATE "-D_CRT_SECURE_NO_WARNINGS" "-D__STDC_FORMAT_MACROS" )
|
||||
target_include_directories( dear-imgui PUBLIC ${BGFX_DIR}/3rdparty )
|
||||
target_link_libraries( dear-imgui PUBLIC bx )
|
||||
set_target_properties( dear-imgui
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(dear-imgui STATIC EXCLUDE_FROM_ALL ${dear_IMGUI_SOURCES})
|
||||
target_compile_definitions(dear-imgui PRIVATE "-D_CRT_SECURE_NO_WARNINGS" "-D__STDC_FORMAT_MACROS")
|
||||
target_include_directories(dear-imgui PUBLIC ${BGFX_DIR}/3rdparty)
|
||||
target_link_libraries(dear-imgui PUBLIC bx)
|
||||
set_target_properties(dear-imgui PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
13
cmake/3rdparty/edtaa3.cmake
vendored
13
cmake/3rdparty/edtaa3.cmake
vendored
@@ -8,15 +8,12 @@
|
||||
# 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 edtaa3 )
|
||||
if(TARGET edtaa3)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB EDTAA3_SOURCES ${BIMG_DIR}/3rdparty/edtaa3/*.cpp ${BIMG_DIR}/3rdparty/edtaa3/*.h )
|
||||
file(GLOB EDTAA3_SOURCES ${BIMG_DIR}/3rdparty/edtaa3/*.cpp ${BIMG_DIR}/3rdparty/edtaa3/*.h)
|
||||
|
||||
add_library( edtaa3 STATIC ${EDTAA3_SOURCES} )
|
||||
target_include_directories( edtaa3 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( edtaa3
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(edtaa3 STATIC ${EDTAA3_SOURCES})
|
||||
target_include_directories(edtaa3 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>)
|
||||
set_target_properties(edtaa3 PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
13
cmake/3rdparty/etc1.cmake
vendored
13
cmake/3rdparty/etc1.cmake
vendored
@@ -8,15 +8,12 @@
|
||||
# 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 etc1 )
|
||||
if(TARGET etc1)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB ETC1_SOURCES ${BIMG_DIR}/3rdparty/etc1/*.cpp ${BIMG_DIR}/3rdparty/etc1/*.h )
|
||||
file(GLOB ETC1_SOURCES ${BIMG_DIR}/3rdparty/etc1/*.cpp ${BIMG_DIR}/3rdparty/etc1/*.h)
|
||||
|
||||
add_library( etc1 STATIC ${ETC1_SOURCES} )
|
||||
target_include_directories( etc1 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( etc1
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(etc1 STATIC ${ETC1_SOURCES})
|
||||
target_include_directories(etc1 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>)
|
||||
set_target_properties(etc1 PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
15
cmake/3rdparty/etc2.cmake
vendored
15
cmake/3rdparty/etc2.cmake
vendored
@@ -8,16 +8,13 @@
|
||||
# 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 etc2 )
|
||||
if(TARGET etc2)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB ETC2_SOURCES ${BIMG_DIR}/3rdparty/etc2/*.cpp ${BIMG_DIR}/3rdparty/etc2/*.h )
|
||||
file(GLOB ETC2_SOURCES ${BIMG_DIR}/3rdparty/etc2/*.cpp ${BIMG_DIR}/3rdparty/etc2/*.h)
|
||||
|
||||
add_library( etc2 STATIC ${ETC2_SOURCES} )
|
||||
target_include_directories( etc2 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
target_link_libraries( etc2 PUBLIC bx )
|
||||
set_target_properties( etc2
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(etc2 STATIC ${ETC2_SOURCES})
|
||||
target_include_directories(etc2 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>)
|
||||
target_link_libraries(etc2 PUBLIC bx)
|
||||
set_target_properties(etc2 PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
27
cmake/3rdparty/fcpp.cmake
vendored
27
cmake/3rdparty/fcpp.cmake
vendored
@@ -8,28 +8,19 @@
|
||||
# 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 )
|
||||
if(TARGET fcpp)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB FCPP_SOURCES ${BGFX_DIR}/3rdparty/fcpp/*.c ${BGFX_DIR}/3rdparty/fcpp/*.h )
|
||||
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
|
||||
)
|
||||
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" )
|
||||
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 )
|
||||
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)
|
||||
|
||||
94
cmake/3rdparty/glsl-optimizer.cmake
vendored
94
cmake/3rdparty/glsl-optimizer.cmake
vendored
@@ -8,83 +8,73 @@
|
||||
# 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 )
|
||||
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
|
||||
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}" )
|
||||
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 )
|
||||
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} )
|
||||
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")
|
||||
target_compile_options(glcpp PRIVATE "-fno-strict-aliasing")
|
||||
endif()
|
||||
if( MSVC )
|
||||
set_target_properties( glcpp PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
if(MSVC)
|
||||
set_target_properties(glcpp PROPERTIES COMPILE_FLAGS "/W0")
|
||||
endif()
|
||||
set_target_properties( glcpp PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
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 )
|
||||
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} )
|
||||
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")
|
||||
target_compile_options(mesa PRIVATE "-fno-strict-aliasing")
|
||||
endif()
|
||||
if( MSVC )
|
||||
set_target_properties( mesa PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
if(MSVC)
|
||||
set_target_properties(mesa PROPERTIES COMPILE_FLAGS "/W0")
|
||||
endif()
|
||||
set_target_properties( mesa PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
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 )
|
||||
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
|
||||
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
|
||||
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
|
||||
)
|
||||
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-" )
|
||||
set_target_properties(glsl-optimizer PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
64
cmake/3rdparty/glslang.cmake
vendored
64
cmake/3rdparty/glslang.cmake
vendored
@@ -8,11 +8,13 @@
|
||||
# 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 )
|
||||
if(TARGET glslang)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB GLSLANG_SOURCES
|
||||
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
|
||||
@@ -22,32 +24,26 @@ file( GLOB GLSLANG_SOURCES
|
||||
${BGFX_DIR}/3rdparty/glslang/OGLCompilersDLL/*.cpp
|
||||
)
|
||||
|
||||
if( WIN32 )
|
||||
list( APPEND GLSLANG_SOURCES ${BGFX_DIR}/3rdparty/glslang/glslang/OSDependent/Windows/ossource.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 )
|
||||
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
|
||||
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-" )
|
||||
set_target_properties(glslang PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
if( MSVC )
|
||||
target_compile_options( glslang PRIVATE
|
||||
"/wd4005"
|
||||
if(MSVC)
|
||||
target_compile_options(
|
||||
glslang
|
||||
PRIVATE "/wd4005"
|
||||
"/wd4065"
|
||||
"/wd4100"
|
||||
"/wd4127"
|
||||
@@ -63,8 +59,9 @@ if( MSVC )
|
||||
"/wd4838"
|
||||
)
|
||||
else()
|
||||
target_compile_options( glslang PRIVATE
|
||||
"-Wno-ignored-qualifiers"
|
||||
target_compile_options(
|
||||
glslang
|
||||
PRIVATE "-Wno-ignored-qualifiers"
|
||||
"-Wno-implicit-fallthrough"
|
||||
"-Wno-missing-field-initializers"
|
||||
"-Wno-reorder"
|
||||
@@ -81,21 +78,14 @@ else()
|
||||
)
|
||||
endif()
|
||||
|
||||
if( APPLE )
|
||||
target_compile_options( glslang PRIVATE
|
||||
"-Wno-c++11-extensions"
|
||||
"-Wno-unused-const-variable"
|
||||
"-Wno-deprecated-register"
|
||||
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"
|
||||
)
|
||||
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
|
||||
)
|
||||
target_compile_definitions(glslang PRIVATE ENABLE_OPT=1 ENABLE_HLSL=1)
|
||||
|
||||
13
cmake/3rdparty/iqa.cmake
vendored
13
cmake/3rdparty/iqa.cmake
vendored
@@ -8,15 +8,12 @@
|
||||
# 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 iqa )
|
||||
if(TARGET iqa)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB IQA_SOURCES ${BIMG_DIR}/3rdparty/iqa/source/*.c ${BIMG_DIR}/3rdparty/iqa/include/*.h )
|
||||
file(GLOB IQA_SOURCES ${BIMG_DIR}/3rdparty/iqa/source/*.c ${BIMG_DIR}/3rdparty/iqa/include/*.h)
|
||||
|
||||
add_library( iqa STATIC ${IQA_SOURCES} )
|
||||
target_include_directories( iqa PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/iqa/include> )
|
||||
set_target_properties( iqa
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(iqa STATIC ${IQA_SOURCES})
|
||||
target_include_directories(iqa PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/iqa/include>)
|
||||
set_target_properties(iqa PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
15
cmake/3rdparty/libsquish.cmake
vendored
15
cmake/3rdparty/libsquish.cmake
vendored
@@ -8,15 +8,14 @@
|
||||
# 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 squish )
|
||||
if(TARGET squish)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB SQUISH_SOURCES ${BIMG_DIR}/3rdparty/libsquish/*.cpp ${BIMG_DIR}/3rdparty/libsquish/*.h ${BIMG_DIR}/3rdparty/libsquish/*.inl )
|
||||
file(GLOB SQUISH_SOURCES ${BIMG_DIR}/3rdparty/libsquish/*.cpp ${BIMG_DIR}/3rdparty/libsquish/*.h
|
||||
${BIMG_DIR}/3rdparty/libsquish/*.inl
|
||||
)
|
||||
|
||||
add_library( squish STATIC ${SQUISH_SOURCES} )
|
||||
target_include_directories( squish PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( squish
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(squish STATIC ${SQUISH_SOURCES})
|
||||
target_include_directories(squish PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>)
|
||||
set_target_properties(squish PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
13
cmake/3rdparty/meshoptimizer.cmake
vendored
13
cmake/3rdparty/meshoptimizer.cmake
vendored
@@ -8,15 +8,12 @@
|
||||
# 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 meshoptimizer )
|
||||
if(TARGET meshoptimizer)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB MESHOPTIMIZER_SOURCES ${BGFX_DIR}/3rdparty/meshoptimizer/src/*.cpp ${BGFX_DIR}/3rdparty/meshoptimizer/src/*.h )
|
||||
file(GLOB MESHOPTIMIZER_SOURCES ${BGFX_DIR}/3rdparty/meshoptimizer/src/*.cpp ${BGFX_DIR}/3rdparty/meshoptimizer/src/*.h)
|
||||
|
||||
add_library( meshoptimizer STATIC ${MESHOPTIMIZER_SOURCES} )
|
||||
target_include_directories( meshoptimizer PUBLIC ${BGFX_DIR}/3rdparty )
|
||||
set_target_properties( meshoptimizer
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(meshoptimizer STATIC ${MESHOPTIMIZER_SOURCES})
|
||||
target_include_directories(meshoptimizer PUBLIC ${BGFX_DIR}/3rdparty)
|
||||
set_target_properties(meshoptimizer PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
18
cmake/3rdparty/nvtt.cmake
vendored
18
cmake/3rdparty/nvtt.cmake
vendored
@@ -8,7 +8,7 @@
|
||||
# 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 nvtt )
|
||||
if(TARGET nvtt)
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -27,13 +27,9 @@ file(
|
||||
${BIMG_DIR}/3rdparty/nvtt/*.h
|
||||
)
|
||||
|
||||
add_library( nvtt STATIC ${NVTT_SOURCES} )
|
||||
target_include_directories( nvtt
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/nvtt> )
|
||||
target_link_libraries( nvtt PUBLIC bx )
|
||||
set_target_properties( nvtt
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(nvtt STATIC ${NVTT_SOURCES})
|
||||
target_include_directories(
|
||||
nvtt PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/nvtt>
|
||||
)
|
||||
target_link_libraries(nvtt PUBLIC bx)
|
||||
set_target_properties(nvtt PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
13
cmake/3rdparty/pvrtc.cmake
vendored
13
cmake/3rdparty/pvrtc.cmake
vendored
@@ -8,15 +8,12 @@
|
||||
# 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 pvrtc )
|
||||
if(TARGET pvrtc)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB PVRTC_SOURCES ${BIMG_DIR}/3rdparty/pvrtc/*.cpp ${BIMG_DIR}/3rdparty/pvrtc/*.h )
|
||||
file(GLOB PVRTC_SOURCES ${BIMG_DIR}/3rdparty/pvrtc/*.cpp ${BIMG_DIR}/3rdparty/pvrtc/*.h)
|
||||
|
||||
add_library( pvrtc STATIC ${PVRTC_SOURCES} )
|
||||
target_include_directories( pvrtc PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( pvrtc
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(pvrtc STATIC ${PVRTC_SOURCES})
|
||||
target_include_directories(pvrtc PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>)
|
||||
set_target_properties(pvrtc PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
32
cmake/3rdparty/spirv-cross.cmake
vendored
32
cmake/3rdparty/spirv-cross.cmake
vendored
@@ -8,34 +8,18 @@
|
||||
# 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 )
|
||||
if(TARGET spirv-cross)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(
|
||||
GLOB
|
||||
SPIRV_CROSS_SOURCES
|
||||
${BGFX_DIR}/3rdparty/spirv-cross/*.cpp
|
||||
${BGFX_DIR}/3rdparty/spirv-cross/*.h
|
||||
)
|
||||
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
|
||||
)
|
||||
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"
|
||||
)
|
||||
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-" )
|
||||
set_target_properties(spirv-cross PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
35
cmake/3rdparty/spirv-tools.cmake
vendored
35
cmake/3rdparty/spirv-tools.cmake
vendored
@@ -8,7 +8,7 @@
|
||||
# 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 )
|
||||
if(TARGET spirv-tools)
|
||||
return()
|
||||
endif()
|
||||
|
||||
@@ -27,35 +27,22 @@ file(
|
||||
${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
|
||||
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"
|
||||
)
|
||||
if(MSVC)
|
||||
target_compile_options(spirv-tools PRIVATE "/wd4127" "/wd4389" "/wd4702" "/wd4706")
|
||||
else()
|
||||
target_compile_options( spirv-tools PRIVATE
|
||||
"-Wno-switch"
|
||||
)
|
||||
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"
|
||||
)
|
||||
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-" )
|
||||
set_target_properties(spirv-tools PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
15
cmake/3rdparty/tinyexr.cmake
vendored
15
cmake/3rdparty/tinyexr.cmake
vendored
@@ -1,12 +1,11 @@
|
||||
if( TARGET tinyexr )
|
||||
if(TARGET tinyexr)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB_RECURSE TINYEXR_SOURCES ${BIMG_DIR}/3rdparty/tinyexr/*.c ${BIMG_DIR}/3rdparty/tinyexr/*.h )
|
||||
file(GLOB_RECURSE TINYEXR_SOURCES ${BIMG_DIR}/3rdparty/tinyexr/*.c ${BIMG_DIR}/3rdparty/tinyexr/*.h)
|
||||
|
||||
add_library( tinyexr STATIC ${TINYEXR_SOURCES} )
|
||||
target_include_directories( tinyexr PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/tinyexr/deps/miniz> )
|
||||
set_target_properties( tinyexr
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
add_library(tinyexr STATIC ${TINYEXR_SOURCES})
|
||||
target_include_directories(
|
||||
tinyexr PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/tinyexr/deps/miniz>
|
||||
)
|
||||
set_target_properties(tinyexr PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
19
cmake/3rdparty/webgpu.cmake
vendored
19
cmake/3rdparty/webgpu.cmake
vendored
@@ -8,27 +8,20 @@
|
||||
# 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 webgpu )
|
||||
if(TARGET webgpu)
|
||||
return()
|
||||
endif()
|
||||
|
||||
file(
|
||||
GLOB
|
||||
WEBGPU_SOURCES
|
||||
${BGFX_DIR}/3rdparty/webgpu/include/webgpu/*.h
|
||||
file(GLOB WEBGPU_SOURCES ${BGFX_DIR}/3rdparty/webgpu/include/webgpu/*.h
|
||||
# ${BGFX_DIR}/3rdparty/webgpu/webgpu_cpp.cpp # requires dawn to be installed
|
||||
)
|
||||
|
||||
# Library without sources is interface
|
||||
#add_library( webgpu STATIC ${WEBGPU_SOURCES} )
|
||||
add_library(webgpu INTERFACE)
|
||||
target_include_directories( webgpu
|
||||
# PUBLIC
|
||||
INTERFACE
|
||||
$<BUILD_INTERFACE:${BGFX_DIR}/3rdparty/webgpu/include>
|
||||
target_include_directories(
|
||||
webgpu # PUBLIC
|
||||
INTERFACE $<BUILD_INTERFACE:${BGFX_DIR}/3rdparty/webgpu/include>
|
||||
)
|
||||
|
||||
set_target_properties( webgpu
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
set_target_properties(webgpu PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
@@ -17,155 +17,161 @@
|
||||
# [DISASM]
|
||||
# [WERROR]
|
||||
# )
|
||||
function( shaderc_parse ARG_OUT )
|
||||
cmake_parse_arguments( ARG "DEPENDS;ANDROID;ASM_JS;IOS;LINUX;NACL;OSX;WINDOWS;PREPROCESS;RAW;FRAGMENT;VERTEX;COMPUTE;VERBOSE;DEBUG;DISASM;WERROR" "FILE;OUTPUT;VARYINGDEF;BIN2C;PROFILE;O" "INCLUDES;DEFINES" ${ARGN} )
|
||||
set( CLI "" )
|
||||
function(shaderc_parse ARG_OUT)
|
||||
cmake_parse_arguments(
|
||||
ARG
|
||||
"DEPENDS;ANDROID;ASM_JS;IOS;LINUX;NACL;OSX;WINDOWS;PREPROCESS;RAW;FRAGMENT;VERTEX;COMPUTE;VERBOSE;DEBUG;DISASM;WERROR"
|
||||
"FILE;OUTPUT;VARYINGDEF;BIN2C;PROFILE;O"
|
||||
"INCLUDES;DEFINES"
|
||||
${ARGN}
|
||||
)
|
||||
set(CLI "")
|
||||
|
||||
# -f
|
||||
if( ARG_FILE )
|
||||
list( APPEND CLI "-f" "${ARG_FILE}" )
|
||||
if(ARG_FILE)
|
||||
list(APPEND CLI "-f" "${ARG_FILE}")
|
||||
endif()
|
||||
|
||||
# -i
|
||||
if( ARG_INCLUDES )
|
||||
foreach( INCLUDE ${ARG_INCLUDES} )
|
||||
list( APPEND CLI "-i" )
|
||||
list( APPEND CLI "${INCLUDE}" )
|
||||
if(ARG_INCLUDES)
|
||||
foreach(INCLUDE ${ARG_INCLUDES})
|
||||
list(APPEND CLI "-i")
|
||||
list(APPEND CLI "${INCLUDE}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# -o
|
||||
if( ARG_OUTPUT )
|
||||
list( APPEND CLI "-o" "${ARG_OUTPUT}" )
|
||||
if(ARG_OUTPUT)
|
||||
list(APPEND CLI "-o" "${ARG_OUTPUT}")
|
||||
endif()
|
||||
|
||||
# --bin2c
|
||||
if( ARG_BIN2C )
|
||||
list( APPEND CLI "--bin2c" "${ARG_BIN2C}" )
|
||||
if(ARG_BIN2C)
|
||||
list(APPEND CLI "--bin2c" "${ARG_BIN2C}")
|
||||
endif()
|
||||
|
||||
# --depends
|
||||
if( ARG_DEPENDS )
|
||||
list( APPEND CLI "--depends" )
|
||||
if(ARG_DEPENDS)
|
||||
list(APPEND CLI "--depends")
|
||||
endif()
|
||||
|
||||
# --platform
|
||||
set( PLATFORM "" )
|
||||
set( PLATFORMS "ANDROID;ASM_JS;IOS;LINUX;NACL;OSX;WINDOWS" )
|
||||
foreach( P ${PLATFORMS} )
|
||||
if( ARG_${P} )
|
||||
if( PLATFORM )
|
||||
message( SEND_ERROR "Call to shaderc_parse() cannot have both flags ${PLATFORM} and ${P}." )
|
||||
set(PLATFORM "")
|
||||
set(PLATFORMS "ANDROID;ASM_JS;IOS;LINUX;NACL;OSX;WINDOWS")
|
||||
foreach(P ${PLATFORMS})
|
||||
if(ARG_${P})
|
||||
if(PLATFORM)
|
||||
message(SEND_ERROR "Call to shaderc_parse() cannot have both flags ${PLATFORM} and ${P}.")
|
||||
return()
|
||||
endif()
|
||||
set( PLATFORM "${P}" )
|
||||
set(PLATFORM "${P}")
|
||||
endif()
|
||||
endforeach()
|
||||
if( "${PLATFORM}" STREQUAL "" )
|
||||
message( SEND_ERROR "Call to shaderc_parse() must have a platform flag: ${PLATFORMS}" )
|
||||
if("${PLATFORM}" STREQUAL "")
|
||||
message(SEND_ERROR "Call to shaderc_parse() must have a platform flag: ${PLATFORMS}")
|
||||
return()
|
||||
elseif( "${PLATFORM}" STREQUAL "ANDROID" )
|
||||
list( APPEND CLI "--platform" "android" )
|
||||
elseif( "${PLATFORM}" STREQUAL "ASM_JS" )
|
||||
list( APPEND CLI "--platform" "asm.js" )
|
||||
elseif( "${PLATFORM}" STREQUAL "IOS" )
|
||||
list( APPEND CLI "--platform" "ios" )
|
||||
elseif( "${PLATFORM}" STREQUAL "LINUX" )
|
||||
list( APPEND CLI "--platform" "linux" )
|
||||
elseif( "${PLATFORM}" STREQUAL "NACL" )
|
||||
list( APPEND CLI "--platform" "nacl" )
|
||||
elseif( "${PLATFORM}" STREQUAL "OSX" )
|
||||
list( APPEND CLI "--platform" "osx" )
|
||||
elseif( "${PLATFORM}" STREQUAL "WINDOWS" )
|
||||
list( APPEND CLI "--platform" "windows" )
|
||||
elseif("${PLATFORM}" STREQUAL "ANDROID")
|
||||
list(APPEND CLI "--platform" "android")
|
||||
elseif("${PLATFORM}" STREQUAL "ASM_JS")
|
||||
list(APPEND CLI "--platform" "asm.js")
|
||||
elseif("${PLATFORM}" STREQUAL "IOS")
|
||||
list(APPEND CLI "--platform" "ios")
|
||||
elseif("${PLATFORM}" STREQUAL "LINUX")
|
||||
list(APPEND CLI "--platform" "linux")
|
||||
elseif("${PLATFORM}" STREQUAL "NACL")
|
||||
list(APPEND CLI "--platform" "nacl")
|
||||
elseif("${PLATFORM}" STREQUAL "OSX")
|
||||
list(APPEND CLI "--platform" "osx")
|
||||
elseif("${PLATFORM}" STREQUAL "WINDOWS")
|
||||
list(APPEND CLI "--platform" "windows")
|
||||
endif()
|
||||
|
||||
# --preprocess
|
||||
if( ARG_PREPROCESS )
|
||||
list( APPEND CLI "--preprocess" )
|
||||
if(ARG_PREPROCESS)
|
||||
list(APPEND CLI "--preprocess")
|
||||
endif()
|
||||
|
||||
# --define
|
||||
if( ARG_DEFINES )
|
||||
list( APPEND CLI "--defines" )
|
||||
set( DEFINES "" )
|
||||
foreach( DEFINE ${ARG_DEFINES} )
|
||||
if( NOT "${DEFINES}" STREQUAL "" )
|
||||
set( DEFINES "${DEFINES}\\\\;${DEFINE}" )
|
||||
if(ARG_DEFINES)
|
||||
list(APPEND CLI "--defines")
|
||||
set(DEFINES "")
|
||||
foreach(DEFINE ${ARG_DEFINES})
|
||||
if(NOT "${DEFINES}" STREQUAL "")
|
||||
set(DEFINES "${DEFINES}\\\\;${DEFINE}")
|
||||
else()
|
||||
set( DEFINES "${DEFINE}" )
|
||||
set(DEFINES "${DEFINE}")
|
||||
endif()
|
||||
endforeach()
|
||||
list( APPEND CLI "${DEFINES}" )
|
||||
list(APPEND CLI "${DEFINES}")
|
||||
endif()
|
||||
|
||||
# --raw
|
||||
if( ARG_RAW )
|
||||
list( APPEND CLI "--raw" )
|
||||
if(ARG_RAW)
|
||||
list(APPEND CLI "--raw")
|
||||
endif()
|
||||
|
||||
# --type
|
||||
set( TYPE "" )
|
||||
set( TYPES "FRAGMENT;VERTEX;COMPUTE" )
|
||||
foreach( T ${TYPES} )
|
||||
if( ARG_${T} )
|
||||
if( TYPE )
|
||||
message( SEND_ERROR "Call to shaderc_parse() cannot have both flags ${TYPE} and ${T}." )
|
||||
set(TYPE "")
|
||||
set(TYPES "FRAGMENT;VERTEX;COMPUTE")
|
||||
foreach(T ${TYPES})
|
||||
if(ARG_${T})
|
||||
if(TYPE)
|
||||
message(SEND_ERROR "Call to shaderc_parse() cannot have both flags ${TYPE} and ${T}.")
|
||||
return()
|
||||
endif()
|
||||
set( TYPE "${T}" )
|
||||
set(TYPE "${T}")
|
||||
endif()
|
||||
endforeach()
|
||||
if( "${TYPE}" STREQUAL "" )
|
||||
message( SEND_ERROR "Call to shaderc_parse() must have a type flag: ${TYPES}" )
|
||||
if("${TYPE}" STREQUAL "")
|
||||
message(SEND_ERROR "Call to shaderc_parse() must have a type flag: ${TYPES}")
|
||||
return()
|
||||
elseif( "${TYPE}" STREQUAL "FRAGMENT" )
|
||||
list( APPEND CLI "--type" "fragment" )
|
||||
elseif( "${TYPE}" STREQUAL "VERTEX" )
|
||||
list( APPEND CLI "--type" "vertex" )
|
||||
elseif( "${TYPE}" STREQUAL "COMPUTE" )
|
||||
list( APPEND CLI "--type" "compute" )
|
||||
elseif("${TYPE}" STREQUAL "FRAGMENT")
|
||||
list(APPEND CLI "--type" "fragment")
|
||||
elseif("${TYPE}" STREQUAL "VERTEX")
|
||||
list(APPEND CLI "--type" "vertex")
|
||||
elseif("${TYPE}" STREQUAL "COMPUTE")
|
||||
list(APPEND CLI "--type" "compute")
|
||||
endif()
|
||||
|
||||
# --varyingdef
|
||||
if( ARG_VARYINGDEF )
|
||||
list( APPEND CLI "--varyingdef" "${ARG_VARYINGDEF}" )
|
||||
if(ARG_VARYINGDEF)
|
||||
list(APPEND CLI "--varyingdef" "${ARG_VARYINGDEF}")
|
||||
endif()
|
||||
|
||||
# --verbose
|
||||
if( ARG_VERBOSE )
|
||||
list( APPEND CLI "--verbose" )
|
||||
if(ARG_VERBOSE)
|
||||
list(APPEND CLI "--verbose")
|
||||
endif()
|
||||
|
||||
# --debug
|
||||
if( ARG_DEBUG )
|
||||
list( APPEND CLI "--debug" )
|
||||
if(ARG_DEBUG)
|
||||
list(APPEND CLI "--debug")
|
||||
endif()
|
||||
|
||||
# --disasm
|
||||
if( ARG_DISASM )
|
||||
list( APPEND CLI "--disasm" )
|
||||
if(ARG_DISASM)
|
||||
list(APPEND CLI "--disasm")
|
||||
endif()
|
||||
|
||||
# --profile
|
||||
if( ARG_PROFILE )
|
||||
list( APPEND CLI "--profile" "${ARG_PROFILE}" )
|
||||
if(ARG_PROFILE)
|
||||
list(APPEND CLI "--profile" "${ARG_PROFILE}")
|
||||
endif()
|
||||
|
||||
# -O
|
||||
if( ARG_O )
|
||||
list( APPEND CLI "-O" "${ARG_O}" )
|
||||
if(ARG_O)
|
||||
list(APPEND CLI "-O" "${ARG_O}")
|
||||
endif()
|
||||
|
||||
# --Werror
|
||||
if( ARG_WERROR )
|
||||
list( APPEND CLI "--Werror" )
|
||||
if(ARG_WERROR)
|
||||
list(APPEND CLI "--Werror")
|
||||
endif()
|
||||
|
||||
set( ${ARG_OUT} ${CLI} PARENT_SCOPE )
|
||||
set(${ARG_OUT} ${CLI} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function (_get_profile_ext PROFILE PROFILE_EXT)
|
||||
function(_get_profile_ext PROFILE PROFILE_EXT)
|
||||
string(REPLACE 300_es essl PROFILE ${PROFILE})
|
||||
string(REPLACE 120 glsl PROFILE ${PROFILE})
|
||||
string(REPLACE spirv spv PROFILE ${PROFILE})
|
||||
@@ -174,11 +180,8 @@ function (_get_profile_ext PROFILE PROFILE_EXT)
|
||||
string(REPLACE s_4_0 dx10 PROFILE ${PROFILE})
|
||||
string(REPLACE s_5_0 dx11 PROFILE ${PROFILE})
|
||||
|
||||
set(${PROFILE_EXT}
|
||||
${PROFILE}
|
||||
PARENT_SCOPE
|
||||
)
|
||||
endfunction ()
|
||||
set(${PROFILE_EXT} ${PROFILE} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# compile_shader_to_header(
|
||||
# TYPE VERTEX|FRAGMENT|COMPUTE
|
||||
@@ -187,44 +190,42 @@ endfunction ()
|
||||
# OUTPUT_DIR directory
|
||||
#)
|
||||
#
|
||||
function (compile_shader_to_header)
|
||||
function(compile_shader_to_header)
|
||||
set(options "")
|
||||
set(oneValueArgs TYPE VARYING_DEF OUTPUT_DIR)
|
||||
set(multiValueArgs SHADERS)
|
||||
cmake_parse_arguments(
|
||||
ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}"
|
||||
)
|
||||
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
|
||||
|
||||
set(PROFILES 120 300_es spirv) # pssl
|
||||
if (UNIX AND NOT APPLE)
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(PLATFORM LINUX)
|
||||
elseif (EMSCRIPTEN)
|
||||
elseif(EMSCRIPTEN)
|
||||
set(PLATFORM ASM_JS)
|
||||
elseif (APPLE)
|
||||
elseif(APPLE)
|
||||
set(PLATFORM OSX)
|
||||
list(APPEND PROFILES metal)
|
||||
elseif (
|
||||
elseif(
|
||||
WIN32
|
||||
OR MINGW
|
||||
OR MSYS
|
||||
OR CYGWIN
|
||||
)
|
||||
set(PLATFORM WINDOWS)
|
||||
if (ARGS_TYPE STREQUAL "VERTEX" OR ARGS_TYPE STREQUAL "FRAGMENT")
|
||||
if(ARGS_TYPE STREQUAL "VERTEX" OR ARGS_TYPE STREQUAL "FRAGMENT")
|
||||
list(APPEND PROFILES s_3_0)
|
||||
list(APPEND PROFILES s_4_0)
|
||||
list(APPEND PROFILES s_5_0)
|
||||
elseif (ARGS_TYPE STREQUAL "COMPUTE")
|
||||
elseif(ARGS_TYPE STREQUAL "COMPUTE")
|
||||
list(APPEND PROFILES s_4_0)
|
||||
list(APPEND PROFILES s_5_0)
|
||||
else ()
|
||||
else()
|
||||
message(error "shaderc: Unsupported type")
|
||||
endif ()
|
||||
else ()
|
||||
endif()
|
||||
else()
|
||||
message(error "shaderc: Unsupported platform")
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
foreach (SHADER_FILE ${ARGS_SHADERS})
|
||||
foreach(SHADER_FILE ${ARGS_SHADERS})
|
||||
source_group("Shaders" FILES "${SHADER}")
|
||||
get_filename_component(SHADER_FILE_BASENAME ${SHADER_FILE} NAME)
|
||||
get_filename_component(SHADER_FILE_NAME_WE ${SHADER_FILE} NAME_WE)
|
||||
@@ -233,19 +234,16 @@ function (compile_shader_to_header)
|
||||
# Build output targets and their commands
|
||||
set(OUTPUTS "")
|
||||
set(COMMANDS "")
|
||||
foreach (PROFILE ${PROFILES})
|
||||
foreach(PROFILE ${PROFILES})
|
||||
_get_profile_ext(${PROFILE} PROFILE_EXT)
|
||||
set(OUTPUT
|
||||
${ARGS_OUTPUT_DIR}/${SHADER_FILE_BASENAME}.${PROFILE_EXT}.bin.h
|
||||
)
|
||||
set(OUTPUT ${ARGS_OUTPUT_DIR}/${SHADER_FILE_BASENAME}.${PROFILE_EXT}.bin.h)
|
||||
set(PLATFORM_I ${PLATFORM})
|
||||
if (PROFILE STREQUAL "spirv")
|
||||
if(PROFILE STREQUAL "spirv")
|
||||
set(PLATFORM_I LINUX)
|
||||
endif ()
|
||||
endif()
|
||||
shaderc_parse(
|
||||
CLI #
|
||||
${ARGS_TYPE} ${PLATFORM_I} WERROR
|
||||
"$<$<CONFIG:debug>:DEBUG>$<$<CONFIG:relwithdebinfo>:DEBUG>"
|
||||
${ARGS_TYPE} ${PLATFORM_I} WERROR "$<$<CONFIG:debug>:DEBUG>$<$<CONFIG:relwithdebinfo>:DEBUG>"
|
||||
FILE ${SHADER_FILE_ABSOLUTE}
|
||||
OUTPUT ${OUTPUT}
|
||||
PROFILE ${PROFILE}
|
||||
@@ -256,7 +254,7 @@ function (compile_shader_to_header)
|
||||
)
|
||||
list(APPEND OUTPUTS ${OUTPUT})
|
||||
list(APPEND COMMANDS COMMAND bgfx::shaderc ${CLI})
|
||||
endforeach ()
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUTS}
|
||||
@@ -264,5 +262,5 @@ function (compile_shader_to_header)
|
||||
MAIN_DEPENDENCY ${SHADER_FILE_ABSOLUTE}
|
||||
DEPENDS ${ARGS_VARYING_DEF}
|
||||
)
|
||||
endforeach ()
|
||||
endfunction ()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
Reference in New Issue
Block a user