mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 13:02:33 +01:00
Merge pull request #4 from e-erdal/master
Make fork even with submodules
This commit is contained in:
55
.github/workflows/ci.yml
vendored
Normal file
55
.github/workflows/ci.yml
vendored
Normal file
@@ -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 }}"
|
||||
54
.github/workflows/release.yml
vendored
Normal file
54
.github/workflows/release.yml
vendored
Normal file
@@ -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/
|
||||
164
.travis.yml
164
.travis.yml
@@ -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 .
|
||||
@@ -1,6 +1,6 @@
|
||||
bgfx.cmake
|
||||
===================
|
||||
[](https://travis-ci.org/bkaradzic/bgfx.cmake)
|
||||
[](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.
|
||||
|
||||
|
||||
2
bgfx
2
bgfx
Submodule bgfx updated: 5b05c6c09e...9310d19141
2
bimg
2
bimg
Submodule bimg updated: bfe3c683f9...a39082ddbc
2
bx
2
bx
Submodule bx updated: 892062b10b...51f25ba638
7
cmake/3rdparty/glslang.cmake
vendored
7
cmake/3rdparty/glslang.cmake
vendored
@@ -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
|
||||
)
|
||||
)
|
||||
@@ -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} )
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 )
|
||||
|
||||
4
generated/shader.cpp.in
Normal file
4
generated/shader.cpp.in
Normal file
@@ -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"
|
||||
@@ -1 +0,0 @@
|
||||
#include "@BGFX_DIR@/src/shader_spirv.cpp"
|
||||
Reference in New Issue
Block a user