From 871d05208794dd58dfea8c722314a0ea85f50ac5 Mon Sep 17 00:00:00 2001 From: loanselot1 Date: Thu, 29 Apr 2021 23:41:06 +0300 Subject: [PATCH 1/5] Update submodules --- bgfx | 2 +- bimg | 2 +- bx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bgfx b/bgfx index 5b05c6c..9310d19 160000 --- a/bgfx +++ b/bgfx @@ -1 +1 @@ -Subproject commit 5b05c6c09e3884143491f289f456d6e98579c7ae +Subproject commit 9310d19141b685d9a225ecb3a66ab1e736a439b2 diff --git a/bimg b/bimg index bfe3c68..a39082d 160000 --- a/bimg +++ b/bimg @@ -1 +1 @@ -Subproject commit bfe3c683f9c628fb3fd5d71b1a80d8fbdb6044a4 +Subproject commit a39082ddbcb087fbe0578eecd3f59dd42e8fc23a diff --git a/bx b/bx index 892062b..51f25ba 160000 --- a/bx +++ b/bx @@ -1 +1 @@ -Subproject commit 892062b10b16f905915258c0ad0d3c5d89dc6444 +Subproject commit 51f25ba638b9cb35eb2ac078f842a4bed0746d56 From b856a1bd4123fe7d5b2b60964997862be9dd448e Mon Sep 17 00:00:00 2001 From: loanselot1 Date: Thu, 29 Apr 2021 23:42:29 +0300 Subject: [PATCH 2/5] Update build files --- cmake/3rdparty/glslang.cmake | 7 +++++-- cmake/examples.cmake | 7 ++++++- cmake/shared.cmake | 11 ++++++----- cmake/tools/shaderc.cmake | 2 +- generated/shader.cpp.in | 4 ++++ generated/shader_spirv.cpp.in | 1 - 6 files changed, 22 insertions(+), 10 deletions(-) create mode 100644 generated/shader.cpp.in delete mode 100644 generated/shader_spirv.cpp.in diff --git a/cmake/3rdparty/glslang.cmake b/cmake/3rdparty/glslang.cmake index f58c52b..df249c0 100644 --- a/cmake/3rdparty/glslang.cmake +++ b/cmake/3rdparty/glslang.cmake @@ -15,7 +15,7 @@ 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/MachineIndependent/preprocessor/*.cpp ${BGFX_DIR}/3rdparty/glslang/glslang/HLSL/*.cpp ${BGFX_DIR}/3rdparty/glslang/hlsl/*.cpp ${BGFX_DIR}/3rdparty/glslang/SPIRV/*.cpp @@ -35,6 +35,9 @@ target_include_directories( glslang PUBLIC ${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" ) @@ -92,4 +95,4 @@ endif() target_compile_definitions( glslang PRIVATE ENABLE_OPT=1 ENABLE_HLSL=1 -) +) \ No newline at end of file diff --git a/cmake/examples.cmake b/cmake/examples.cmake index 9076932..dbe7d6f 100755 --- a/cmake/examples.cmake +++ b/cmake/examples.cmake @@ -268,7 +268,12 @@ if( BGFX_BUILD_EXAMPLES ) # 37-gpudrivenrendering 38-bloom 39-assao -# 40-svt + 40-svt +# 41-tess + 42-bunnylod + 43-denoise + 44-sss + 45-bokeh ) foreach( EXAMPLE ${BGFX_EXAMPLES} ) diff --git a/cmake/shared.cmake b/cmake/shared.cmake index ded8a53..9597597 100644 --- a/cmake/shared.cmake +++ b/cmake/shared.cmake @@ -14,11 +14,12 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/generated/vertexlayout.cpp.in target_sources( bgfx-vertexlayout INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/generated/vertexlayout.cpp ) target_include_directories( bgfx-vertexlayout INTERFACE ${BGFX_DIR}/include ) -add_library( bgfx-shader-spirv INTERFACE ) -configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/generated/shader_spirv.cpp.in - ${CMAKE_CURRENT_BINARY_DIR}/generated/shader_spirv.cpp ) -target_sources( bgfx-shader-spirv INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/generated/shader_spirv.cpp ) -target_include_directories( bgfx-shader-spirv INTERFACE ${BGFX_DIR}/include ) +add_library( bgfx-shader INTERFACE ) + +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/generated/shader.cpp.in + ${CMAKE_CURRENT_BINARY_DIR}/generated/shader.cpp ) +target_sources( bgfx-shader INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/generated/shader.cpp ) +target_include_directories( bgfx-shader INTERFACE ${BGFX_DIR}/include ) add_library( bgfx-bounds INTERFACE ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/generated/bounds.cpp.in diff --git a/cmake/tools/shaderc.cmake b/cmake/tools/shaderc.cmake index 92f23d0..f3014e1 100644 --- a/cmake/tools/shaderc.cmake +++ b/cmake/tools/shaderc.cmake @@ -20,7 +20,7 @@ include( cmake/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-spirv fcpp glsl-optimizer glslang spirv-cross spirv-tools webgpu) +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 ) diff --git a/generated/shader.cpp.in b/generated/shader.cpp.in new file mode 100644 index 0000000..9260c65 --- /dev/null +++ b/generated/shader.cpp.in @@ -0,0 +1,4 @@ +#include "@BGFX_DIR@/src/shader.cpp" +#include "@BGFX_DIR@/src/shader_dx9bc.cpp" +#include "@BGFX_DIR@/src/shader_dxbc.cpp" +#include "@BGFX_DIR@/src/shader_spirv.cpp" \ No newline at end of file diff --git a/generated/shader_spirv.cpp.in b/generated/shader_spirv.cpp.in deleted file mode 100644 index 89feeb0..0000000 --- a/generated/shader_spirv.cpp.in +++ /dev/null @@ -1 +0,0 @@ -#include "@BGFX_DIR@/src/shader_spirv.cpp" From 77caaa27385c741a3093ec91e23c337c55524cd4 Mon Sep 17 00:00:00 2001 From: loanselot1 Date: Thu, 29 Apr 2021 23:43:55 +0300 Subject: [PATCH 3/5] Change travis-ci domain --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df7ce7f..132670b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ bgfx.cmake =================== -[![Build Status](https://travis-ci.org/bkaradzic/bgfx.cmake.svg?branch=master)](https://travis-ci.org/bkaradzic/bgfx.cmake) +[![Build Status](https://travis-ci.com/bkaradzic/bgfx.cmake.svg?branch=master)](https://travis-ci.com/bkaradzic/bgfx.cmake) This repo contains a bunch of cmake files that can be used to build bgfx with CMake. From 22e608c5e0879e07483b5e54ea17622e06135b1a Mon Sep 17 00:00:00 2001 From: loanselot1 Date: Sat, 1 May 2021 15:42:31 +0300 Subject: [PATCH 4/5] Change CI --- .github/workflows/ci.yml | 55 ++++++++++++ .github/workflows/release.yml | 54 +++++++++++ .travis.yml | 164 ---------------------------------- 3 files changed, 109 insertions(+), 164 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5ab75fe --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +# https://github.com/openblack/bgfx.cmake/blob/master/.github/workflows/ci.yml +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + job: + name: ${{ matrix.os }} ${{ matrix.cc }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + - os: ubuntu-latest + cc: gcc + cxx: g++ + - os: ubuntu-latest + cc: clang + cxx: clang++ + - os: macos-latest + env: + # Indicates the CMake build directory where project files and binaries are being produced. + CMAKE_BUILD_DIR: ${{ github.workspace }}/build/ + + CC: ${{ matrix.cc }} + CXX: ${{ matrix.cxx }} + + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Install Linux dependencies + run: | + sudo apt install -y libgl1-mesa-dev + if: matrix.os == 'ubuntu-latest' + + # Setup the build machine with the most recent versions of CMake and Ninja. Both are cached if not already: on subsequent runs both will be quickly restored from GitHub cache service. + - uses: lukka/get-cmake@latest + + # On Windows runners, let's ensure to have the Developer Command Prompt environment setup correctly. As used here the Developer Command Prompt created is targeting x64 and using the default the Windows SDK. + - uses: ilammy/msvc-dev-cmd@v1 + + # Run CMake to generate Ninja project files + - name: Generate project files + run: | + cmake -B "${{ env.CMAKE_BUILD_DIR }}" -GNinja -DCMAKE_BUILD_TYPE=Release + # Build the whole project with Ninja (which is spawn by CMake). + - name: Build + run: | + cmake --build "${{ env.CMAKE_BUILD_DIR }}" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..599c8b0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,54 @@ +# https://github.com/openblack/bgfx.cmake/blob/master/.github/workflows/release.yml + +name: Release + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + job: + name: ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + - os: ubuntu-latest + + env: + # Indicates the CMake build directory where project files and binaries are being produced. + CMAKE_BUILD_DIR: ${{ github.workspace }}/build/ + CMAKE_INSTALL_DIR: ${{ github.workspace }}/install/ + + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + - name: Install Linux dependencies + run: | + sudo apt install -y libgl1-mesa-dev + if: matrix.os == 'ubuntu-latest' + + # Setup the build machine with the most recent versions of CMake and Ninja. Both are cached if not already: on subsequent runs both will be quickly restored from GitHub cache service. + - uses: lukka/get-cmake@latest + + # On Windows runners, let's ensure to have the Developer Command Prompt environment setup correctly. As used here the Developer Command Prompt created is targeting x64 and using the default the Windows SDK. + - uses: ilammy/msvc-dev-cmd@v1 + + # Run CMake to generate project files + - name: Generate project files + run: | + cmake -B "${{ env.CMAKE_BUILD_DIR }}" -DCMAKE_INSTALL_PREFIX="${{ env.CMAKE_INSTALL_DIR }}" -DCMAKE_DEBUG_POSTFIX=d -DBGFX_BUILD_EXAMPLES=OFF -DBGFX_BUILD_TOOLS=ON -DBGFX_INSTALL=ON + # Build the install targets + - name: Build + run: | + cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target install --config Debug + cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target install --config Release + - uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }} + path: ${{ github.workspace }}/install/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 22306ad..0000000 --- a/.travis.yml +++ /dev/null @@ -1,164 +0,0 @@ -language: cpp - -addons: - apt_packages: - - libgl1-mesa-dev - homebrew: - packages: - - cmake - update: true - -matrix: - include: - - - name: "Linux gcc" - os: linux - dist: xenial - compiler: gcc - env: - - AMALGAMATED=OFF - - - name: "Linux gcc Amalgamated" - os: linux - dist: xenial - compiler: gcc - env: - - AMALGAMATED=ON - - - name: "Linux clang" - os: linux - dist: xenial - compiler: clang - env: - - AMALGAMATED=OFF - - - name: "Linux clang Amalgamated" - os: linux - dist: xenial - compiler: clang - env: - - AMALGAMATED=ON - - - name: "macOS Xcode 10" - os: osx - osx_image: xcode10 - env: - - CMAKE_FLAGS="-GXcode" - - AMALGAMATED=OFF - - - name: "macOS Xcode 10 Amalgamated" - os: osx - osx_image: xcode10 - env: - - CMAKE_FLAGS="-GXcode" - - AMALGAMATED=ON - - - name: "macOS Xcode 10 (Makefiles)" - os: osx - osx_image: xcode10 - env: - - AMALGAMATED=OFF - - - name: "macOS Xcode 10 Amalgamated (Makefiles)" - os: osx - osx_image: xcode10 - env: - - AMALGAMATED=ON - - #- name: "iOS Xcode 10" - # os: osx - # osx_image: xcode10 - # env: - # - CMAKE_FLAGS="-GXcode -DCMAKE_SYSTEM_NAME=iOS -DBGFX_BUILD_TOOLS=OFF -DCMAKE_OSX_SYSROOT=iphonesimulator" - # - AMALGAMATED=OFF - - #- name: "iOS Xcode 10 Amalgamated" - # os: osx - # osx_image: xcode10 - # env: - # - CMAKE_FLAGS="-GXcode -DCMAKE_SYSTEM_NAME=iOS -DBGFX_BUILD_TOOLS=OFF -DCMAKE_OSX_SYSROOT=iphonesimulator" - # - AMALGAMATED=ON - - - name: "Visual studio 15 2017" - os: windows - env: - - AMALGAMATED=OFF - - - - name: "Visual studio 15 2017 Amalgamated" - os: windows - env: - - AMALGAMATED=ON - - - name: "Emscripten" - os: linux - dist: xenial - language: node_js - services: - - docker - before_script: - - docker run -dit --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash - script: - - docker exec -it emscripten emconfigure cmake . -DBGFX_BUILD_TOOLS=OFF -DBGFX_AMALGAMATED=$AMALGAMATED -DBX_AMALGAMATED=$AMALGAMATED - - docker exec -it emscripten emmake make - env: - - AMALGAMATED=OFF - - - name: "Emscripten Amalgamated" - os: linux - dist: xenial - language: node_js - services: - - docker - before_script: - - docker run -dit --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash - script: - - docker exec -it emscripten emconfigure cmake . -DBGFX_BUILD_TOOLS=OFF -DBGFX_AMALGAMATED=$AMALGAMATED -DBX_AMALGAMATED=$AMALGAMATED - - docker exec -it emscripten emmake make - env: - - AMALGAMATED=OFF - - - name: "Android armeabi-v7a" - language: android - android: &androidComponents - components: - - tools - - platform-tools - - build-tools-26.0.1 - env: - - CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26" - - AMALGAMATED=OFF - install: &androidInstall - - echo y | sdkmanager "cmake;3.10.2.4988404" - - sudo ln -sf /usr/local/android-sdk/cmake/3.10.2.4988404/bin/cmake /usr/bin/cmake - - wget https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip - - unzip -qq android-ndk-r18b-linux-x86_64.zip - - - name: "Android armeabi-v7a Amalgamated" - language: android - android: *androidComponents - env: - - CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26" - - AMALGAMATED=ON - install: *androidInstall - - - name: "Android x86" - language: android - android: *androidComponents - env: - - CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=x86 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26" - - AMALGAMATED=OFF - install: *androidInstall - - - name: "Android x86 Amalgamated" - language: android - android: *androidComponents - env: - - CMAKE_FLAGS="-DCMAKE_SYSTEM_NAME=Android -DBGFX_BUILD_TOOLS=OFF -DBGFX_BUILD_EXAMPLES=OFF -DCMAKE_ANDROID_NDK=$TRAVIS_BUILD_DIR/android-ndk-r18b -DCMAKE_ANDROID_ARCH_ABI=x86 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang -DCMAKE_ANDROID_STL_TYPE=c++_shared -DCMAKE_ANDROID_API=26" - - AMALGAMATED=ON - install: *androidInstall - -script: - - mkdir build && cd build - - cmake $CMAKE_FLAGS -DBGFX_INSTALL_EXAMPLES=ON -DBGFX_AMALGAMATED=$AMALGAMATED -DBX_AMALGAMATED=$AMALGAMATED .. - - cmake --build . From 99ce23f64777793e79a3cb17186c776d1415d17c Mon Sep 17 00:00:00 2001 From: loanselot1 Date: Sat, 1 May 2021 15:49:31 +0300 Subject: [PATCH 5/5] Change badge URL in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 132670b..d306bb7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ bgfx.cmake =================== -[![Build Status](https://travis-ci.com/bkaradzic/bgfx.cmake.svg?branch=master)](https://travis-ci.com/bkaradzic/bgfx.cmake) +[![Build Status](https://github.com/bkaradzic/bgfx.cmake/workflows/Release/badge.svg)](https://github.com/bkaradzic/bgfx.cmake/workflows/Release/badge.svg) This repo contains a bunch of cmake files that can be used to build bgfx with CMake.