mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 21:12:35 +01:00
Compare commits
5 Commits
v1.118.838
...
v1.118.838
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ea7d23eb2 | ||
|
|
03ae29e5bd | ||
|
|
cfc015871f | ||
|
|
54aaa9103d | ||
|
|
2d7b0296f6 |
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
@@ -25,11 +25,11 @@ jobs:
|
||||
- id: version
|
||||
run: |
|
||||
API_VERSION=$(grep -Eo "BGFX_API_VERSION UINT32_C\([0-9]+\)" bgfx/include/bgfx/defines.h | grep -Eo "[0-9]+" | tail -1)
|
||||
REVISION=$(cd bgfx && git rev-list HEAD --count)
|
||||
BGFX_REVISION=$(cd bgfx && git rev-list HEAD --count)
|
||||
BGFX_CMAKE_REVISION=$(git rev-list HEAD --count)
|
||||
SHA=$(cd bgfx && git rev-parse HEAD)
|
||||
SHA7="${GITHUB_SHA::7}"
|
||||
TAG="v1.${API_VERSION}.${REVISION}-${SHA7}"
|
||||
echo "::set-output name=revision::${REVISION}"
|
||||
TAG="v1.${API_VERSION}.${BGFX_REVISION}-${BGFX_CMAKE_REVISION}"
|
||||
echo "::set-output name=revision::${BGFX_REVISION}"
|
||||
echo "::set-output name=sha::${SHA}"
|
||||
echo "::set-output name=tag::${TAG}"
|
||||
|
||||
|
||||
@@ -25,19 +25,20 @@ 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_TOOLS_SHADER "Build bgfx shader tools." ON )
|
||||
option( BGFX_BUILD_TOOLS_GEOMETRY "Build bgfx geometry tools." ON )
|
||||
option( BGFX_BUILD_TOOLS_TEXTURE "Build bgfx texture 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 )
|
||||
option( BX_CONFIG_DEBUG "Log debug messages (default: on in debug)" OFF )
|
||||
option( BX_AMALGAMATED "Amalgamated bx build for faster compilation" OFF )
|
||||
option( BX_CONFIG_DEBUG "Log debug messages (default: on in debug)" OFF )
|
||||
option( BGFX_AMALGAMATED "Amalgamated bgfx build for faster compilation" OFF )
|
||||
option( BGFX_BUILD_TOOLS "Build bgfx tools." ON )
|
||||
option( BGFX_BUILD_TOOLS_SHADER "Build bgfx shader tools." ON )
|
||||
option( BGFX_BUILD_TOOLS_GEOMETRY "Build bgfx geometry tools." ON )
|
||||
option( BGFX_BUILD_TOOLS_TEXTURE "Build bgfx texture 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_CONFIG_MULTITHREADED "Build bgfx with multithreaded configuration" ON )
|
||||
option( BGFX_CONFIG_RENDERER_WEBGPU "Enable the webgpu renderer" OFF )
|
||||
option( BGFX_CONFIG_DEBUG_ANNOTATION "Enable gfx debug annotations (default: on in debug)" OFF )
|
||||
|
||||
set( BGFX_OPENGL_VERSION "" CACHE STRING "Specify minimum opengl version" )
|
||||
set( BGFX_OPENGLES_VERSION "" CACHE STRING "Specify minimum OpenGL ES version" )
|
||||
|
||||
25
README.md
25
README.md
@@ -1,37 +1,38 @@
|
||||
bgfx.cmake
|
||||
===================
|
||||
==========
|
||||
[](https://github.com/bkaradzic/bgfx.cmake/workflows/Release/badge.svg)
|
||||
|
||||
**NOTE: This port only made to be used as C++ library, some features (such as bindings, examples) might not work! Please use original repo with GENie instead.**
|
||||
**NOTE: This port only made to be used as C++ library, some features (such as bindings) might not work! For those features, please use original repo with GENie instead.**
|
||||
|
||||
This repo contains a bunch of cmake files that can be used to build bgfx with CMake.
|
||||
This repo contains cmake configuration files that can be used to build bgfx with CMake.
|
||||
|
||||
Building
|
||||
-------------
|
||||
---
|
||||
|
||||
```bash
|
||||
git clone https://github.com/bkaradzic/bgfx.cmake.git
|
||||
cd bgfx.cmake
|
||||
git submodule init
|
||||
git submodule update
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
cmake -S. -Bcmake-build # $CMakeOptions
|
||||
cmake --build cmake-build
|
||||
```
|
||||
|
||||
If downloading via zip (instead of using git submodules) manually download bx, bimg and bgfx and copy them into the root directory, or locate them via `BX_DIR`, `BIMG_DIR` and `BGFX_DIR` CMake variables.
|
||||
|
||||
How To Use
|
||||
-------------
|
||||
This project is setup to be included a few different ways. To include bgfx source code in your project simply use add_subdirectory to include this project. To build bgfx binaries build the `INSTALL` target (or `make install`). The installed files will be in the directory specified by `CMAKE_INSTALL_PREFIX` which I recommend you set to `./install` so it will export to your build directory. Note you may want to build install on both `Release` and `Debug` configurations.
|
||||
----------
|
||||
This project is setup to be included a few different ways. To include bgfx source code in your project simply use add_subdirectory to include this project. To build bgfx binaries build the `INSTALL` target (or `make install`). The installed files will be in the directory specified by `CMAKE_INSTALL_PREFIX` which we recommend you set to `./install` so it will export to your build directory. Note you may want to build install on both `Release` and `Debug` configurations.
|
||||
|
||||
Features
|
||||
-------------
|
||||
--------
|
||||
* No outside dependencies besides bx, bimg, bgfx, and CMake.
|
||||
* Tested on Visual Studio 2015, Xcode, gcc 5.4, clang 3.8.
|
||||
* Tested on
|
||||
* Windows, OSX, Linux, Android, UWP, Emscripten (experimental)
|
||||
* VSCode, Visual Studio, Xcode, gcc, clang.
|
||||
* Compiles bgfx, tools & examples.
|
||||
* Detects shader modifications and automatically rebuilds them for all examples.
|
||||
|
||||
Does this work with latest bx/bgfx/bimg?
|
||||
-------------
|
||||
----------------------------------------
|
||||
Probably! This project needs to be updated if a dependency is added or the bgfx build system changes. The bgfx repository is very active but these types of changes are rare. New examples have to be added manually as well, but not doing so will merely result in that example not showing up and won't break anything else. If pulling latest causes issues, be sure to manually reconfigure CMake as the glob patterns may need to be refreshed (the use of glob patterns in CMake is generally discouraged but in this project it helps to ensure upwards compatibilty with newer bgfx updates).
|
||||
|
||||
4
cmake/3rdparty/astc-encoder.cmake
vendored
4
cmake/3rdparty/astc-encoder.cmake
vendored
@@ -25,4 +25,6 @@ target_include_directories( astc-encoder
|
||||
$<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" )
|
||||
set_target_properties( astc-encoder
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty" )
|
||||
|
||||
5
cmake/3rdparty/dear-imgui.cmake
vendored
5
cmake/3rdparty/dear-imgui.cmake
vendored
@@ -18,4 +18,7 @@ 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" )
|
||||
set_target_properties( dear-imgui
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/edtaa3.cmake
vendored
5
cmake/3rdparty/edtaa3.cmake
vendored
@@ -16,4 +16,7 @@ file( GLOB EDTAA3_SOURCES ${BIMG_DIR}/3rdparty/edtaa3/*.cpp ${BIMG_DIR}/3rdparty
|
||||
|
||||
add_library( edtaa3 STATIC ${EDTAA3_SOURCES} )
|
||||
target_include_directories( edtaa3 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( edtaa3 PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( edtaa3
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/etc1.cmake
vendored
5
cmake/3rdparty/etc1.cmake
vendored
@@ -16,4 +16,7 @@ file( GLOB ETC1_SOURCES ${BIMG_DIR}/3rdparty/etc1/*.cpp ${BIMG_DIR}/3rdparty/etc
|
||||
|
||||
add_library( etc1 STATIC ${ETC1_SOURCES} )
|
||||
target_include_directories( etc1 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( etc1 PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( etc1
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
7
cmake/3rdparty/etc2.cmake
vendored
7
cmake/3rdparty/etc2.cmake
vendored
@@ -16,5 +16,8 @@ file( GLOB ETC2_SOURCES ${BIMG_DIR}/3rdparty/etc2/*.cpp ${BIMG_DIR}/3rdparty/etc
|
||||
|
||||
add_library( etc2 STATIC ${ETC2_SOURCES} )
|
||||
target_include_directories( etc2 PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( etc2 PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
target_link_libraries( etc2 PUBLIC bx )
|
||||
target_link_libraries( etc2 PUBLIC bx )
|
||||
set_target_properties( etc2
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/fcpp.cmake
vendored
5
cmake/3rdparty/fcpp.cmake
vendored
@@ -28,5 +28,8 @@ if( MSVC )
|
||||
set_target_properties( fcpp PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
endif()
|
||||
|
||||
set_target_properties( fcpp PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
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 )
|
||||
|
||||
5
cmake/3rdparty/glsl-optimizer.cmake
vendored
5
cmake/3rdparty/glsl-optimizer.cmake
vendored
@@ -84,4 +84,7 @@ elseif(APPLE)
|
||||
-Wno-deprecated-register
|
||||
)
|
||||
endif()
|
||||
set_target_properties( glsl-optimizer PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( glsl-optimizer
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
7
cmake/3rdparty/glslang.cmake
vendored
7
cmake/3rdparty/glslang.cmake
vendored
@@ -40,7 +40,10 @@ target_include_directories( glslang PUBLIC
|
||||
${BGFX_DIR}/3rdparty
|
||||
)
|
||||
|
||||
set_target_properties( glslang PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( glslang
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
if( MSVC )
|
||||
target_compile_options( glslang PRIVATE
|
||||
@@ -95,4 +98,4 @@ endif()
|
||||
target_compile_definitions( glslang PRIVATE
|
||||
ENABLE_OPT=1
|
||||
ENABLE_HLSL=1
|
||||
)
|
||||
)
|
||||
|
||||
5
cmake/3rdparty/iqa.cmake
vendored
5
cmake/3rdparty/iqa.cmake
vendored
@@ -16,4 +16,7 @@ file( GLOB IQA_SOURCES ${BIMG_DIR}/3rdparty/iqa/source/*.c ${BIMG_DIR}/3rdparty/
|
||||
|
||||
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" )
|
||||
set_target_properties( iqa
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/libsquish.cmake
vendored
5
cmake/3rdparty/libsquish.cmake
vendored
@@ -16,4 +16,7 @@ file( GLOB SQUISH_SOURCES ${BIMG_DIR}/3rdparty/libsquish/*.cpp ${BIMG_DIR}/3rdpa
|
||||
|
||||
add_library( squish STATIC ${SQUISH_SOURCES} )
|
||||
target_include_directories( squish PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( squish PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( squish
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/meshoptimizer.cmake
vendored
5
cmake/3rdparty/meshoptimizer.cmake
vendored
@@ -16,4 +16,7 @@ file( GLOB MESHOPTIMIZER_SOURCES ${BGFX_DIR}/3rdparty/meshoptimizer/src/*.cpp ${
|
||||
|
||||
add_library( meshoptimizer STATIC ${MESHOPTIMIZER_SOURCES} )
|
||||
target_include_directories( meshoptimizer PUBLIC ${BGFX_DIR}/3rdparty )
|
||||
set_target_properties( meshoptimizer PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( meshoptimizer
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
7
cmake/3rdparty/nvtt.cmake
vendored
7
cmake/3rdparty/nvtt.cmake
vendored
@@ -32,5 +32,8 @@ target_include_directories( nvtt
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty>
|
||||
$<BUILD_INTERFACE:${BIMG_DIR}/3rdparty/nvtt> )
|
||||
set_target_properties( nvtt PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
target_link_libraries( nvtt PUBLIC bx )
|
||||
target_link_libraries( nvtt PUBLIC bx )
|
||||
set_target_properties( nvtt
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/pvrtc.cmake
vendored
5
cmake/3rdparty/pvrtc.cmake
vendored
@@ -16,4 +16,7 @@ file( GLOB PVRTC_SOURCES ${BIMG_DIR}/3rdparty/pvrtc/*.cpp ${BIMG_DIR}/3rdparty/p
|
||||
|
||||
add_library( pvrtc STATIC ${PVRTC_SOURCES} )
|
||||
target_include_directories( pvrtc PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/3rdparty> )
|
||||
set_target_properties( pvrtc PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( pvrtc
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/spirv-cross.cmake
vendored
5
cmake/3rdparty/spirv-cross.cmake
vendored
@@ -35,4 +35,7 @@ if( MSVC )
|
||||
)
|
||||
endif()
|
||||
|
||||
set_target_properties( spirv-cross PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( spirv-cross
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/spirv-tools.cmake
vendored
5
cmake/3rdparty/spirv-tools.cmake
vendored
@@ -55,4 +55,7 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_target_properties( spirv-tools PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( spirv-tools
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/tinyexr.cmake
vendored
5
cmake/3rdparty/tinyexr.cmake
vendored
@@ -6,4 +6,7 @@ file( GLOB_RECURSE TINYEXR_SOURCES ${BIMG_DIR}/3rdparty/tinyexr/*.c ${BIMG_DIR}/
|
||||
|
||||
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" )
|
||||
set_target_properties( tinyexr
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
5
cmake/3rdparty/webgpu.cmake
vendored
5
cmake/3rdparty/webgpu.cmake
vendored
@@ -28,4 +28,7 @@ target_include_directories( webgpu
|
||||
$<BUILD_INTERFACE:${BGFX_DIR}/3rdparty/webgpu/include>
|
||||
)
|
||||
|
||||
# set_target_properties( webgpu PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_target_properties( webgpu
|
||||
PROPERTIES
|
||||
FOLDER "bgfx/3rdparty"
|
||||
PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-" )
|
||||
|
||||
@@ -44,6 +44,7 @@ if(BGFX_LIBRARY_TYPE STREQUAL STATIC)
|
||||
add_library( bgfx STATIC ${BGFX_SOURCES} )
|
||||
else()
|
||||
add_library( bgfx SHARED ${BGFX_SOURCES} )
|
||||
target_compile_definitions( bgfx PUBLIC BGFX_SHARED_LIB_BUILD=1 )
|
||||
endif()
|
||||
|
||||
if(BGFX_CONFIG_RENDERER_WEBGPU)
|
||||
@@ -103,7 +104,8 @@ endif()
|
||||
# Add debug config required in bx headers since bx is private
|
||||
target_compile_definitions(bgfx
|
||||
PUBLIC
|
||||
"BX_CONFIG_DEBUG=$<IF:$<CONFIG:Debug>,1,$<BOOL:${BX_CONFIG_DEBUG}>>"
|
||||
"BX_CONFIG_DEBUG=$<OR:$<CONFIG:Debug>,$<BOOL:${BX_CONFIG_DEBUG}>>"
|
||||
"BGFX_CONFIG_DEBUG_ANNOTATION=$<AND:$<NOT:$<STREQUAL:${CMAKE_SYSTEM_NAME},WindowsStore>>,$<OR:$<CONFIG:Debug>,$<BOOL:${BGFX_CONFIG_DEBUG_ANNOTATION}>>>"
|
||||
"BGFX_CONFIG_MULTITHREADED=$<BOOL:${BGFX_CONFIG_MULTITHREADED}>"
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user