mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 21:12:35 +01:00
Compare commits
34 Commits
v1.115.805
...
v1.115.816
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
896ab5478c | ||
|
|
23a1dc204a | ||
|
|
5fa58aad11 | ||
|
|
8dafd0d9e4 | ||
|
|
3bac602264 | ||
|
|
1b2b921bde | ||
|
|
374dcbba70 | ||
|
|
95af1cc54d | ||
|
|
e85f8c0f3c | ||
|
|
9ecbe9ee51 | ||
|
|
d725e78f86 | ||
|
|
93de01a1af | ||
|
|
dd2017c332 | ||
|
|
ead887f59b | ||
|
|
f184835827 | ||
|
|
a7ac0aa3ae | ||
|
|
163661a07e | ||
|
|
99b9c1e852 | ||
|
|
28ea11be6d | ||
|
|
0006784f70 | ||
|
|
819719a4f9 | ||
|
|
5b34c97f4c | ||
|
|
4846036666 | ||
|
|
3168a4660e | ||
|
|
b5879646bb | ||
|
|
9426a2f44f | ||
|
|
3cf48b42d1 | ||
|
|
b5192910f9 | ||
|
|
b44793b740 | ||
|
|
1b74840891 | ||
|
|
b193a31651 | ||
|
|
72bc1cf167 | ||
|
|
93c9e73a42 | ||
|
|
0f1a5a91e6 |
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@@ -3,4 +3,4 @@ updates:
|
||||
- package-ecosystem: "gitsubmodule"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "monthly"
|
||||
|
||||
@@ -21,14 +21,19 @@ if( APPLE AND NOT XCODE )
|
||||
set( CMAKE_CXX_FLAGS "-ObjC++" )
|
||||
endif()
|
||||
|
||||
option( BGFX_BUILD_TOOLS "Build bgfx tools." ON )
|
||||
option( BGFX_BUILD_EXAMPLES "Build bgfx examples." ON )
|
||||
option( BGFX_INSTALL "Create installation target." ON )
|
||||
option( BGFX_INSTALL_EXAMPLES "Install examples and their runtimes." OFF )
|
||||
option( BGFX_CUSTOM_TARGETS "Include convenience custom targets." ON )
|
||||
option( BGFX_AMALGAMATED "Amalgamated bgfx build for faster compilation" OFF )
|
||||
option( BX_AMALGAMATED "Amalgamated bx build for faster compilation" OFF )
|
||||
option( BGFX_CONFIG_RENDERER_WEBGPU "Enables the webgpu renderer" OFF )
|
||||
if (MSVC AND (MSVC_VERSION GREATER_EQUAL 1914))
|
||||
add_compile_options("/Zc:__cplusplus")
|
||||
endif()
|
||||
|
||||
option( BGFX_BUILD_TOOLS "Build bgfx tools." ON )
|
||||
option( BGFX_BUILD_EXAMPLES "Build bgfx examples." ON )
|
||||
option( BGFX_INSTALL "Create installation target." ON )
|
||||
option( BGFX_INSTALL_EXAMPLES "Install examples and their runtimes." OFF )
|
||||
option( BGFX_CUSTOM_TARGETS "Include convenience custom targets." ON )
|
||||
option( BGFX_AMALGAMATED "Amalgamated bgfx build for faster compilation" OFF )
|
||||
option( BX_AMALGAMATED "Amalgamated bx build for faster compilation" OFF )
|
||||
option( BGFX_CONFIG_MULTITHREADED "Build bgfx with multithreaded configuration" ON )
|
||||
option( BGFX_CONFIG_RENDERER_WEBGPU "Enables the webgpu renderer" OFF )
|
||||
|
||||
set( BGFX_OPENGL_VERSION "" CACHE STRING "Specify minimum opengl version" )
|
||||
set( BGFX_OPENGLES_VERSION "" CACHE STRING "Specify minimum OpenGL ES version" )
|
||||
@@ -57,19 +62,19 @@ elseif( NOT IS_ABSOLUTE "${BGFX_DIR}")
|
||||
endif()
|
||||
|
||||
# sets project version from api ver / git rev
|
||||
include( cmake/version.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.cmake )
|
||||
|
||||
include( cmake/shared.cmake )
|
||||
include( cmake/bx.cmake )
|
||||
include( cmake/bimg.cmake )
|
||||
include( cmake/bgfx.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/shared.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bx.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bimg.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfx.cmake )
|
||||
|
||||
if( BGFX_BUILD_TOOLS )
|
||||
include( cmake/tools.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/tools.cmake )
|
||||
endif()
|
||||
|
||||
if( BGFX_BUILD_TOOLS OR BGFX_BUILD_EXAMPLES )
|
||||
include( cmake/examples.cmake )
|
||||
include( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/examples.cmake )
|
||||
endif()
|
||||
|
||||
if( BGFX_INSTALL )
|
||||
@@ -110,7 +115,7 @@ if( BGFX_INSTALL )
|
||||
# * TARGETS_EXPORT_NAME
|
||||
# * PROJECT_NAME
|
||||
configure_package_config_file(
|
||||
"cmake/Config.cmake.in"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in"
|
||||
"${project_config}"
|
||||
INSTALL_DESTINATION "${config_install_dir}"
|
||||
)
|
||||
|
||||
2
bgfx
2
bgfx
Submodule bgfx updated: cd2030cc11...9204a536dd
2
bimg
2
bimg
Submodule bimg updated: 9d6af16116...663f724186
2
bx
2
bx
Submodule bx updated: c969169fc1...6332fb0305
8
cmake/3rdparty/glsl-optimizer.cmake
vendored
8
cmake/3rdparty/glsl-optimizer.cmake
vendored
@@ -27,7 +27,8 @@ 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 )
|
||||
add_library( glcpp ${GLCPP_SOURCES} )
|
||||
# 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")
|
||||
@@ -39,7 +40,8 @@ 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 )
|
||||
add_library( mesa ${MESA_SOURCES} )
|
||||
# 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")
|
||||
@@ -53,7 +55,7 @@ set_target_properties( mesa PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
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 ${GLSL-OPTIMIZER_SOURCES} )
|
||||
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
|
||||
|
||||
@@ -47,7 +47,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(BGFX_CONFIG_RENDERER_WEBGPU)
|
||||
include(cmake/3rdparty/webgpu.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/3rdparty/webgpu.cmake)
|
||||
target_compile_definitions( bgfx PRIVATE BGFX_CONFIG_RENDERER_WEBGPU=1)
|
||||
if (EMSCRIPTEN)
|
||||
target_link_options(bgfx PRIVATE "-s USE_WEBGPU=1")
|
||||
@@ -70,12 +70,11 @@ if( MSVC )
|
||||
endif()
|
||||
|
||||
# Add debug config required in bx headers since bx is private
|
||||
if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
||||
target_compile_definitions( bgfx PUBLIC "BX_CONFIG_DEBUG=1" )
|
||||
else()
|
||||
target_compile_definitions( bgfx PUBLIC "BX_CONFIG_DEBUG=0" )
|
||||
endif()
|
||||
|
||||
target_compile_definitions(bgfx
|
||||
PUBLIC
|
||||
"BX_CONFIG_DEBUG=$<CONFIG:Debug>"
|
||||
"BGFX_CONFIG_MULTITHREADED=$<BOOL:${BGFX_CONFIG_MULTITHREADED}>"
|
||||
)
|
||||
|
||||
# Includes
|
||||
target_include_directories( bgfx
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
# this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
# Third party libs
|
||||
include( cmake/3rdparty/astc-codec.cmake )
|
||||
include( cmake/3rdparty/astc.cmake )
|
||||
include( cmake/3rdparty/edtaa3.cmake )
|
||||
include( cmake/3rdparty/etc1.cmake )
|
||||
include( cmake/3rdparty/etc2.cmake )
|
||||
include( cmake/3rdparty/iqa.cmake )
|
||||
include( cmake/3rdparty/libsquish.cmake )
|
||||
include( cmake/3rdparty/nvtt.cmake )
|
||||
include( cmake/3rdparty/pvrtc.cmake )
|
||||
include( cmake/3rdparty/tinyexr.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/astc-codec.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/astc.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/edtaa3.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/etc1.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/etc2.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/iqa.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/libsquish.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/nvtt.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/pvrtc.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/tinyexr.cmake )
|
||||
|
||||
# Ensure the directory exists
|
||||
if( NOT IS_DIRECTORY ${BIMG_DIR} )
|
||||
|
||||
@@ -67,24 +67,25 @@ target_compile_definitions( bx PUBLIC "__STDC_LIMIT_MACROS" )
|
||||
target_compile_definitions( bx PUBLIC "__STDC_FORMAT_MACROS" )
|
||||
target_compile_definitions( bx PUBLIC "__STDC_CONSTANT_MACROS" )
|
||||
|
||||
if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
||||
target_compile_definitions( bx PUBLIC "BX_CONFIG_DEBUG=1" )
|
||||
else()
|
||||
target_compile_definitions( bx PUBLIC "BX_CONFIG_DEBUG=0" )
|
||||
endif()
|
||||
target_compile_definitions(bx PUBLIC "BX_CONFIG_DEBUG=$<CONFIG:Debug>")
|
||||
|
||||
# Additional dependencies on Unix
|
||||
if( UNIX AND NOT APPLE AND NOT ANDROID )
|
||||
if (ANDROID)
|
||||
# For __android_log_write
|
||||
find_library( LOG_LIBRARY log )
|
||||
mark_as_advanced( LOG_LIBRARY )
|
||||
target_link_libraries( bx PUBLIC ${LOG_LIBRARY} )
|
||||
elseif( APPLE )
|
||||
find_library( FOUNDATION_LIBRARY Foundation)
|
||||
mark_as_advanced( FOUNDATION_LIBRARY )
|
||||
target_link_libraries( bx PUBLIC ${FOUNDATION_LIBRARY} )
|
||||
elseif( UNIX )
|
||||
# Threads
|
||||
find_package( Threads )
|
||||
target_link_libraries( bx ${CMAKE_THREAD_LIBS_INIT} dl )
|
||||
|
||||
# Real time (for clock_gettime)
|
||||
target_link_libraries( bx rt )
|
||||
elseif(APPLE)
|
||||
find_library( FOUNDATION_LIBRARY Foundation)
|
||||
mark_as_advanced( FOUNDATION_LIBRARY )
|
||||
target_link_libraries( bx PUBLIC ${FOUNDATION_LIBRARY} )
|
||||
endif()
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
|
||||
include( CMakeParseArguments )
|
||||
|
||||
include( cmake/util/ConfigureDebugging.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/util/ConfigureDebugging.cmake )
|
||||
|
||||
include( cmake/3rdparty/dear-imgui.cmake )
|
||||
include( cmake/3rdparty/meshoptimizer.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/dear-imgui.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/3rdparty/meshoptimizer.cmake )
|
||||
|
||||
function( add_bgfx_shader FILE FOLDER )
|
||||
get_filename_component( FILENAME "${FILE}" NAME_WE )
|
||||
@@ -171,7 +171,7 @@ function( add_example ARG_NAME )
|
||||
target_compile_definitions( example-${ARG_NAME} PRIVATE "-D_CRT_SECURE_NO_WARNINGS" "-D__STDC_FORMAT_MACROS" "-DENTRY_CONFIG_IMPLEMENT_MAIN=1" )
|
||||
|
||||
# Configure shaders
|
||||
if( NOT ARG_COMMON AND NOT IOS AND NOT EMSCRIPTEN)
|
||||
if( NOT ARG_COMMON AND NOT IOS AND NOT EMSCRIPTEN AND NOT ANDROID)
|
||||
foreach( SHADER ${SHADERS} )
|
||||
add_bgfx_shader( ${SHADER} ${ARG_NAME} )
|
||||
endforeach()
|
||||
|
||||
@@ -13,8 +13,8 @@ if( BGFX_CUSTOM_TARGETS )
|
||||
set_target_properties( tools PROPERTIES FOLDER "bgfx/tools" )
|
||||
endif()
|
||||
|
||||
include( cmake/tools/geometryc.cmake )
|
||||
include( cmake/tools/geometryv.cmake )
|
||||
include( cmake/tools/shaderc.cmake )
|
||||
include( cmake/tools/texturec.cmake )
|
||||
include( cmake/tools/texturev.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/tools/geometryc.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/tools/geometryv.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/tools/shaderc.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/tools/texturec.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/tools/texturev.cmake )
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
include( CMakeParseArguments )
|
||||
|
||||
include( cmake/3rdparty/meshoptimizer.cmake )
|
||||
include( ${CMAKE_CURRENT_LIST_DIR}/../3rdparty/meshoptimizer.cmake )
|
||||
|
||||
add_executable( geometryc ${BGFX_DIR}/tools/geometryc/geometryc.cpp )
|
||||
target_compile_definitions( geometryc PRIVATE "-D_CRT_SECURE_NO_WARNINGS" )
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
add_executable( geometryv ${BGFX_DIR}/tools/geometryv/geometryv.cpp )
|
||||
set_target_properties( geometryv PROPERTIES FOLDER "bgfx/tools" )
|
||||
target_link_libraries( geometryv example-common )
|
||||
if(EMSCRIPTEN)
|
||||
target_link_options( geometryv PRIVATE -sMAX_WEBGL_VERSION=2 )
|
||||
endif()
|
||||
if( BGFX_CUSTOM_TARGETS )
|
||||
add_dependencies( tools geometryv )
|
||||
endif()
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
|
||||
include( CMakeParseArguments )
|
||||
|
||||
include( cmake/3rdparty/fcpp.cmake )
|
||||
include( cmake/3rdparty/glsl-optimizer.cmake )
|
||||
include( cmake/3rdparty/glslang.cmake )
|
||||
include( cmake/3rdparty/spirv-cross.cmake )
|
||||
include( cmake/3rdparty/spirv-tools.cmake )
|
||||
include( cmake/3rdparty/webgpu.cmake )
|
||||
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" )
|
||||
|
||||
@@ -13,6 +13,9 @@ include( CMakeParseArguments )
|
||||
add_executable( texturev ${BGFX_DIR}/tools/texturev/texturev.cpp )
|
||||
set_target_properties( texturev PROPERTIES FOLDER "bgfx/tools" )
|
||||
target_link_libraries( texturev example-common )
|
||||
if (EMSCRIPTEN)
|
||||
target_link_options( texturev PRIVATE -sMAX_WEBGL_VERSION=2 )
|
||||
endif()
|
||||
if( BGFX_CUSTOM_TARGETS )
|
||||
add_dependencies( tools texturev )
|
||||
endif()
|
||||
@@ -20,4 +23,4 @@ endif()
|
||||
if (IOS)
|
||||
set_target_properties(texturev PROPERTIES MACOSX_BUNDLE ON
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER texturev)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user