mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 21:12:35 +01:00
Compare commits
10 Commits
v1.118.841
...
v1.118.845
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
487fa0c63b | ||
|
|
9670cf4f43 | ||
|
|
0ab856a9dc | ||
|
|
73a2b12c5e | ||
|
|
4e42ca1ef5 | ||
|
|
aaf627f912 | ||
|
|
13fda4c089 | ||
|
|
a6e266e326 | ||
|
|
d671412cca | ||
|
|
907dc5fbd7 |
43
.github/workflows/ci.yml
vendored
43
.github/workflows/ci.yml
vendored
@@ -1,4 +1,3 @@
|
||||
# https://github.com/openblack/bgfx.cmake/blob/master/.github/workflows/ci.yml
|
||||
name: CI
|
||||
|
||||
on:
|
||||
@@ -7,10 +6,41 @@ on:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
env:
|
||||
# Indicates the CMake build directory where project files and binaries are being produced.
|
||||
CMAKE_BUILD_DIR: ${{ github.workspace }}/build/
|
||||
|
||||
jobs:
|
||||
minimum-cmake-version:
|
||||
name: Check compatibility with minimum cmake version
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CMAKE_VERSION: 3.10.2
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Install Linux dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt install -y libgl1-mesa-dev
|
||||
- uses: lukka/get-cmake@latest
|
||||
with:
|
||||
cmakeVersion: ${{ env.CMAKE_VERSION }}
|
||||
- name: Check cmake version
|
||||
run: |
|
||||
cmake --version | grep ${{ env.CMAKE_VERSION }}
|
||||
- name: Test config
|
||||
# old way of configuring a build directory
|
||||
run: |
|
||||
mkdir -p "${{ env.CMAKE_BUILD_DIR }}"
|
||||
cd "${{ env.CMAKE_BUILD_DIR }}"
|
||||
cmake ${{ github.workspace }} -GNinja -DCMAKE_BUILD_TYPE=Release
|
||||
|
||||
native:
|
||||
name: ${{ matrix.os }} ${{ matrix.cc }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
needs: minimum-cmake-version
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -23,14 +53,9 @@ jobs:
|
||||
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:
|
||||
@@ -65,13 +90,9 @@ jobs:
|
||||
cross-android:
|
||||
name: cross-android
|
||||
runs-on: ubuntu-latest
|
||||
needs: minimum-cmake-version
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
env:
|
||||
# Indicates the CMake build directory where project files and binaries are being produced.
|
||||
CMAKE_BUILD_DIR: ${{ github.workspace }}/build/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
||||
@@ -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/>.
|
||||
|
||||
cmake_minimum_required(VERSION 3.6)
|
||||
cmake_minimum_required(VERSION 3.10.2) # version supported by android studio
|
||||
project(bgfx)
|
||||
cmake_policy(SET CMP0054 NEW)
|
||||
|
||||
@@ -105,10 +105,6 @@ if(BGFX_BUILD_TOOLS AND BGFX_CUSTOM_TARGETS)
|
||||
set_target_properties(tools PROPERTIES FOLDER "bgfx/tools")
|
||||
endif()
|
||||
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bx)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bimg)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfx)
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
@@ -124,7 +120,13 @@ if(BGFX_INSTALL)
|
||||
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
|
||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
||||
set(namespace "${PROJECT_NAME}::")
|
||||
endif()
|
||||
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bx)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bimg)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfx)
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
# Include module with fuction 'write_basic_package_version_file'
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
@@ -158,38 +160,6 @@ if(BGFX_INSTALL)
|
||||
|
||||
install(FILES ${BGFX_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/licences/${PROJECT_NAME})
|
||||
|
||||
install(
|
||||
TARGETS bgfx
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
if(NOT BGFX_LIBRARY_TYPE MATCHES "SHARED")
|
||||
install(
|
||||
TARGETS bimg bx
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
if(BGFX_CONFIG_RENDERER_WEBGPU)
|
||||
install(
|
||||
TARGETS webgpu
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# install headers (this should be done as a target probably... ^)
|
||||
install(DIRECTORY ${BX_DIR}/include/bx ${BX_DIR}/include/compat ${BX_DIR}/include/tinystl
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
@@ -207,28 +177,6 @@ if(BGFX_INSTALL)
|
||||
install(FILES ${BGFX_CMAKE_USER_SCRIPT} DESTINATION "${config_install_dir}")
|
||||
endif()
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/bgfxToolUtils.cmake DESTINATION "${config_install_dir}")
|
||||
if(BGFX_BUILD_TOOLS_BIN2C)
|
||||
install(TARGETS bin2c EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
if(BGFX_BUILD_TOOLS_SHADER)
|
||||
install(TARGETS shaderc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
if(BGFX_BUILD_TOOLS_GEOMETRY)
|
||||
install(TARGETS geometryc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(TARGETS geometryv EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
if(BGFX_BUILD_TOOLS_TEXTURE)
|
||||
install(TARGETS texturec EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(TARGETS texturev EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
# install examples
|
||||
if(BGFX_BUILD_EXAMPLES AND BGFX_INSTALL_EXAMPLES)
|
||||
install(DIRECTORY ${BGFX_DIR}/examples/runtime/ DESTINATION examples)
|
||||
foreach(EXAMPLE ${BGFX_EXAMPLES})
|
||||
install(TARGETS example-${EXAMPLE} DESTINATION examples)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Config
|
||||
# * <prefix>/lib/cmake/bgfx/bgfxConfig.cmake
|
||||
|
||||
2
bgfx
2
bgfx
Submodule bgfx updated: 6f36b4fb3a...538c9a05eb
2
bx
2
bx
Submodule bx updated: fa1411e4aa...4e67e34c4b
30
cmake/bgfx/3rdparty/fcpp.cmake
vendored
30
cmake/bgfx/3rdparty/fcpp.cmake
vendored
@@ -16,7 +16,20 @@ endif()
|
||||
|
||||
set(FCPP_DIR ${BGFX_DIR}/3rdparty/fcpp)
|
||||
|
||||
add_library(fcpp STATIC)
|
||||
file(
|
||||
GLOB
|
||||
FCPP_SOURCES
|
||||
${FCPP_DIR}/*.h
|
||||
${FCPP_DIR}/cpp1.c
|
||||
${FCPP_DIR}/cpp2.c
|
||||
${FCPP_DIR}/cpp3.c
|
||||
${FCPP_DIR}/cpp4.c
|
||||
${FCPP_DIR}/cpp5.c
|
||||
${FCPP_DIR}/cpp6.c
|
||||
${FCPP_DIR}/cpp6.c
|
||||
)
|
||||
|
||||
add_library(fcpp STATIC ${FCPP_SOURCES})
|
||||
|
||||
target_compile_definitions(
|
||||
fcpp
|
||||
@@ -32,21 +45,6 @@ set_target_properties(fcpp PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(fcpp PUBLIC ${FCPP_DIR})
|
||||
|
||||
file(
|
||||
GLOB
|
||||
FCPP_SOURCES
|
||||
${FCPP_DIR}/*.h
|
||||
${FCPP_DIR}/cpp1.c
|
||||
${FCPP_DIR}/cpp2.c
|
||||
${FCPP_DIR}/cpp3.c
|
||||
${FCPP_DIR}/cpp4.c
|
||||
${FCPP_DIR}/cpp5.c
|
||||
${FCPP_DIR}/cpp6.c
|
||||
${FCPP_DIR}/cpp6.c
|
||||
)
|
||||
|
||||
target_sources(fcpp PRIVATE ${FCPP_SOURCES})
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(
|
||||
fcpp
|
||||
|
||||
28
cmake/bgfx/3rdparty/glsl-optimizer.cmake
vendored
28
cmake/bgfx/3rdparty/glsl-optimizer.cmake
vendored
@@ -16,20 +16,6 @@ endif()
|
||||
|
||||
set(GLSL_OPTIMIZER ${BGFX_DIR}/3rdparty/glsl-optimizer)
|
||||
|
||||
add_library(glsl-optimizer STATIC)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(glsl-optimizer PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
glsl-optimizer
|
||||
PUBLIC ${GLSL_OPTIMIZER}/include #
|
||||
${GLSL_OPTIMIZER}/src/glsl #
|
||||
PRIVATE ${GLSL_OPTIMIZER}/src #
|
||||
${GLSL_OPTIMIZER}/src/mesa #
|
||||
${GLSL_OPTIMIZER}/src/mapi #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB
|
||||
GLSL_OPTIMIZER_SOURCES
|
||||
@@ -193,7 +179,19 @@ file(
|
||||
${GLSL_OPTIMIZER}/src/util/ralloc.h
|
||||
)
|
||||
|
||||
target_sources(glsl-optimizer PRIVATE ${GLSL_OPTIMIZER_SOURCES})
|
||||
add_library(glsl-optimizer STATIC ${GLSL_OPTIMIZER_SOURCES})
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(glsl-optimizer PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
glsl-optimizer
|
||||
PUBLIC ${GLSL_OPTIMIZER}/include #
|
||||
${GLSL_OPTIMIZER}/src/glsl #
|
||||
PRIVATE ${GLSL_OPTIMIZER}/src #
|
||||
${GLSL_OPTIMIZER}/src/mesa #
|
||||
${GLSL_OPTIMIZER}/src/mapi #
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
target_compile_definitions(
|
||||
|
||||
42
cmake/bgfx/3rdparty/glslang.cmake
vendored
42
cmake/bgfx/3rdparty/glslang.cmake
vendored
@@ -17,27 +17,6 @@ endif()
|
||||
set(GLSLANG ${BGFX_DIR}/3rdparty/glslang)
|
||||
set(SPIRV_TOOLS ${BGFX_DIR}/3rdparty/spirv-tools)
|
||||
|
||||
add_library(glslang STATIC)
|
||||
|
||||
target_compile_definitions(
|
||||
glslang
|
||||
PRIVATE #
|
||||
ENABLE_OPT=1 # spriv-tools
|
||||
ENABLE_HLSL=1 #
|
||||
)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(glslang PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
glslang
|
||||
PUBLIC ${GLSLANG} #
|
||||
${GLSLANG}/glslang/Public #
|
||||
PRIVATE ${GLSLANG}/.. #
|
||||
${SPIRV_TOOLS}/include #
|
||||
${SPIRV_TOOLS}/source #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
GLSLANG_SOURCES
|
||||
@@ -62,4 +41,23 @@ else()
|
||||
list(FILTER GLSLANG_SOURCES EXCLUDE REGEX "glslang/OSDependent/Windows/.*.h")
|
||||
endif()
|
||||
|
||||
target_sources(glslang PRIVATE ${GLSLANG_SOURCES})
|
||||
add_library(glslang STATIC ${GLSLANG_SOURCES})
|
||||
|
||||
target_compile_definitions(
|
||||
glslang
|
||||
PRIVATE #
|
||||
ENABLE_OPT=1 # spriv-tools
|
||||
ENABLE_HLSL=1 #
|
||||
)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(glslang PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
glslang
|
||||
PUBLIC ${GLSLANG} #
|
||||
${GLSLANG}/glslang/Public #
|
||||
PRIVATE ${GLSLANG}/.. #
|
||||
${SPIRV_TOOLS}/include #
|
||||
${SPIRV_TOOLS}/source #
|
||||
)
|
||||
|
||||
30
cmake/bgfx/3rdparty/spirv-cross.cmake
vendored
30
cmake/bgfx/3rdparty/spirv-cross.cmake
vendored
@@ -16,21 +16,6 @@ endif()
|
||||
|
||||
set(SPIRV_CROSS ${BGFX_DIR}/3rdparty/spirv-cross)
|
||||
|
||||
add_library(spirv-cross STATIC)
|
||||
|
||||
target_compile_definitions(spirv-cross PRIVATE SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(spirv-cross PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
spirv-cross #
|
||||
PUBLIC #
|
||||
${SPIRV_CROSS} #
|
||||
PRIVATE #
|
||||
${SPIRV_CROSS}/include #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB
|
||||
SPIRV_CROSS_SOURCES
|
||||
@@ -59,4 +44,17 @@ file(
|
||||
${SPIRV_CROSS}/spirv_reflect.hpp
|
||||
)
|
||||
|
||||
target_sources(spirv-cross PRIVATE ${SPIRV_CROSS_SOURCES})
|
||||
add_library(spirv-cross STATIC ${SPIRV_CROSS_SOURCES})
|
||||
|
||||
target_compile_definitions(spirv-cross PRIVATE SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(spirv-cross PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
spirv-cross #
|
||||
PUBLIC #
|
||||
${SPIRV_CROSS} #
|
||||
PRIVATE #
|
||||
${SPIRV_CROSS}/include #
|
||||
)
|
||||
|
||||
28
cmake/bgfx/3rdparty/spirv-opt.cmake
vendored
28
cmake/bgfx/3rdparty/spirv-opt.cmake
vendored
@@ -17,20 +17,6 @@ endif()
|
||||
set(SPIRV_HEADERS ${BGFX_DIR}/3rdparty/spirv-headers)
|
||||
set(SPIRV_TOOLS ${BGFX_DIR}/3rdparty/spirv-tools)
|
||||
|
||||
add_library(spirv-opt STATIC)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(spirv-opt PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
spirv-opt
|
||||
PUBLIC ${SPIRV_TOOLS}/include #
|
||||
PRIVATE ${SPIRV_TOOLS} #
|
||||
${SPIRV_TOOLS}/include/generated #
|
||||
${SPIRV_TOOLS}/source #
|
||||
${SPIRV_HEADERS}/include #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB
|
||||
SPIRV_OPT_SOURCES
|
||||
@@ -145,4 +131,16 @@ file(
|
||||
${SPIRV_TOOLS}/source/val/validation_state.cpp
|
||||
)
|
||||
|
||||
target_sources(spirv-opt PRIVATE ${SPIRV_OPT_SOURCES})
|
||||
add_library(spirv-opt STATIC ${SPIRV_OPT_SOURCES})
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(spirv-opt PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
spirv-opt
|
||||
PUBLIC ${SPIRV_TOOLS}/include #
|
||||
PRIVATE ${SPIRV_TOOLS} #
|
||||
${SPIRV_TOOLS}/include/generated #
|
||||
${SPIRV_TOOLS}/source #
|
||||
${SPIRV_HEADERS}/include #
|
||||
)
|
||||
|
||||
15
cmake/bgfx/3rdparty/webgpu.cmake
vendored
15
cmake/bgfx/3rdparty/webgpu.cmake
vendored
@@ -24,4 +24,17 @@ target_include_directories(
|
||||
INTERFACE $<BUILD_INTERFACE:${BGFX_DIR}/3rdparty/webgpu/include>
|
||||
)
|
||||
|
||||
set_target_properties(webgpu PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
# These properties are not allowed on interface
|
||||
# set_target_properties(webgpu PROPERTIES FOLDER "bgfx/3rdparty" PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}bgfx-")
|
||||
|
||||
if(BGFX_INSTALL AND BGFX_CONFIG_RENDERER_WEBGPU)
|
||||
install(
|
||||
TARGETS webgpu
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -206,3 +206,15 @@ if(XCODE)
|
||||
${BGFX_DIR}/src/renderer_vk.cpp PROPERTIES LANGUAGE OBJCXX XCODE_EXPLICIT_FILE_TYPE sourcecode.cpp.objcpp
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(
|
||||
TARGETS bgfx
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -105,7 +105,7 @@ function(add_bgfx_shader FILE FOLDER)
|
||||
|
||||
foreach(OUT ${OUTPUTS})
|
||||
list(APPEND OUTPUT_FILES ${${OUT}_OUTPUT})
|
||||
list(APPEND COMMANDS COMMAND "$<TARGET_FILE:shaderc>" ${${OUT}})
|
||||
list(APPEND COMMANDS COMMAND "bgfx::shaderc" ${${OUT}})
|
||||
get_filename_component(OUT_DIR ${${OUT}_OUTPUT} DIRECTORY)
|
||||
file(MAKE_DIRECTORY ${OUT_DIR})
|
||||
endforeach()
|
||||
@@ -211,14 +211,13 @@ function(add_example ARG_NAME)
|
||||
|
||||
else()
|
||||
if(ANDROID)
|
||||
add_library(example-${ARG_NAME} SHARED)
|
||||
add_library(example-${ARG_NAME} SHARED ${SOURCES})
|
||||
else()
|
||||
add_executable(example-${ARG_NAME} WIN32)
|
||||
add_executable(example-${ARG_NAME} WIN32 ${SOURCES})
|
||||
endif()
|
||||
if(NOT BGFX_INSTALL_EXAMPLES)
|
||||
set_property(TARGET example-${ARG_NAME} PROPERTY EXCLUDE_FROM_ALL ON)
|
||||
endif()
|
||||
target_sources(example-${ARG_NAME} PUBLIC ${SOURCES})
|
||||
target_link_libraries(example-${ARG_NAME} PUBLIC example-common)
|
||||
configure_debugging(example-${ARG_NAME} WORKING_DIR ${BGFX_DIR}/examples/runtime)
|
||||
if(MSVC)
|
||||
@@ -346,4 +345,11 @@ if(BGFX_BUILD_EXAMPLES)
|
||||
foreach(EXAMPLE ${BGFX_EXAMPLES})
|
||||
add_example(${EXAMPLE})
|
||||
endforeach()
|
||||
|
||||
if(BGFX_INSTALL_EXAMPLES)
|
||||
install(DIRECTORY ${BGFX_DIR}/examples/runtime/ DESTINATION examples)
|
||||
foreach(EXAMPLE ${BGFX_EXAMPLES})
|
||||
install(TARGETS example-${EXAMPLE} DESTINATION examples)
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
# 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/>.
|
||||
|
||||
add_executable(geometryc)
|
||||
|
||||
# Grab the geometryc source files
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
@@ -19,8 +17,8 @@ file(
|
||||
#
|
||||
${MESHOPTIMIZER_SOURCES}
|
||||
)
|
||||
add_executable(geometryc ${GEOMETRYC_SOURCES})
|
||||
|
||||
target_sources(geometryc PRIVATE ${GEOMETRYC_SOURCES})
|
||||
target_include_directories(geometryc PRIVATE ${MESHOPTIMIZER_INCLUDE_DIR})
|
||||
target_link_libraries(geometryc PRIVATE bx bgfx-vertexlayout ${MESHOPTIMIZER_LIBRARIES})
|
||||
target_compile_definitions(geometryc PRIVATE "-D_CRT_SECURE_NO_WARNINGS")
|
||||
@@ -29,10 +27,17 @@ set_target_properties(
|
||||
OUTPUT_NAME ${BGFX_TOOLS_PREFIX}geometryc #
|
||||
)
|
||||
|
||||
if(BGFX_BUILD_TOOLS_GEOMETRY AND BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools geometryc)
|
||||
if(BGFX_BUILD_TOOLS_GEOMETRY)
|
||||
add_executable(bgfx::geometryc ALIAS geometryc)
|
||||
if(BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools geometryc)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(IOS)
|
||||
set_target_properties(geometryc PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER geometryc)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(TARGETS geometryc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
@@ -8,18 +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(ANDROID)
|
||||
add_library(geometryv SHARED)
|
||||
else()
|
||||
add_executable(geometryv)
|
||||
endif()
|
||||
|
||||
# Grab the geometryv source files
|
||||
file(GLOB_RECURSE GEOMETRYV_SOURCES #
|
||||
${BGFX_DIR}/tools/geometryv/*
|
||||
)
|
||||
|
||||
target_sources(geometryv PRIVATE ${GEOMETRYV_SOURCES})
|
||||
if(ANDROID)
|
||||
add_library(geometryv SHARED ${GEOMETRYV_SOURCES})
|
||||
else()
|
||||
add_executable(geometryv ${GEOMETRYV_SOURCES})
|
||||
endif()
|
||||
|
||||
target_link_libraries(geometryv PRIVATE example-common)
|
||||
set_target_properties(
|
||||
geometryv PROPERTIES FOLDER "bgfx/tools" #
|
||||
@@ -37,3 +36,7 @@ elseif(EMSCRIPTEN)
|
||||
elseif(IOS)
|
||||
set_target_properties(geometryv PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER geometryv)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(TARGETS geometryv EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
@@ -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/>.
|
||||
|
||||
add_executable(shaderc)
|
||||
# Grab the shaderc source files
|
||||
file(
|
||||
GLOB
|
||||
SHADERC_SOURCES #
|
||||
${BGFX_DIR}/tools/shaderc/*.cpp #
|
||||
${BGFX_DIR}/tools/shaderc/*.h #
|
||||
${BGFX_DIR}/src/shader* #
|
||||
)
|
||||
|
||||
#target_include_directories(
|
||||
# shaderc
|
||||
# PRIVATE
|
||||
# ${BIMG_DIR}/include #
|
||||
# ${GLSL_OPTIMIZER}/include #
|
||||
# ${GLSL_OPTIMIZER}/src/mesa #
|
||||
# ${GLSL_OPTIMIZER}/src/mapi #
|
||||
# ${GLSL_OPTIMIZER}/src/glsl #
|
||||
#)
|
||||
add_executable(shaderc ${SHADERC_SOURCES})
|
||||
|
||||
target_link_libraries(
|
||||
shaderc
|
||||
@@ -46,24 +45,16 @@ if(BGFX_AMALGAMATED)
|
||||
target_link_libraries(shaderc PRIVATE bgfx-shader)
|
||||
endif()
|
||||
|
||||
# Grab the shaderc source files
|
||||
file(
|
||||
GLOB
|
||||
SHADERC_SOURCES #
|
||||
${BGFX_DIR}/tools/shaderc/*.cpp #
|
||||
${BGFX_DIR}/tools/shaderc/*.h #
|
||||
${BGFX_DIR}/src/shader* #
|
||||
)
|
||||
|
||||
target_sources(shaderc PRIVATE ${SHADERC_SOURCES})
|
||||
|
||||
set_target_properties(
|
||||
shaderc PROPERTIES FOLDER "bgfx/tools" #
|
||||
OUTPUT_NAME ${BGFX_TOOLS_PREFIX}shaderc #
|
||||
)
|
||||
|
||||
if(BGFX_BUILD_TOOLS_SHADER AND BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools shaderc)
|
||||
if(BGFX_BUILD_TOOLS_SHADER)
|
||||
add_executable(bgfx::shaderc ALIAS shaderc)
|
||||
if(BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools shaderc)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
@@ -71,3 +62,7 @@ if(ANDROID)
|
||||
elseif(IOS)
|
||||
set_target_properties(shaderc PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER shaderc)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(TARGETS shaderc EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
@@ -8,18 +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(ANDROID)
|
||||
add_library(texturev SHARED)
|
||||
else()
|
||||
add_executable(texturev)
|
||||
endif()
|
||||
|
||||
# Grab the texturev source files
|
||||
file(GLOB_RECURSE TEXTUREV_SOURCES #
|
||||
${BGFX_DIR}/tools/texturev/*
|
||||
)
|
||||
|
||||
target_sources(texturev PRIVATE ${TEXTUREV_SOURCES})
|
||||
if(ANDROID)
|
||||
add_library(texturev SHARED ${TEXTUREV_SOURCES})
|
||||
else()
|
||||
add_executable(texturev ${TEXTUREV_SOURCES})
|
||||
endif()
|
||||
|
||||
target_link_libraries(texturev PRIVATE example-common)
|
||||
set_target_properties(
|
||||
texturev PROPERTIES FOLDER "bgfx/tools" #
|
||||
@@ -37,3 +36,7 @@ elseif(EMSCRIPTEN)
|
||||
elseif(IOS)
|
||||
set_target_properties(texturev PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER texturev)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(TARGETS texturev EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
@@ -535,12 +535,14 @@ endfunction()
|
||||
# SHADERS filenames
|
||||
# VARYING_DEF filename
|
||||
# OUTPUT_DIR directory
|
||||
# OUT_FILES_VAR variable name
|
||||
# INCLUDE_DIRS directories
|
||||
# )
|
||||
#
|
||||
function(bgfx_compile_shader_to_header)
|
||||
set(options "")
|
||||
set(oneValueArgs TYPE VARYING_DEF OUTPUT_DIR)
|
||||
set(multiValueArgs SHADERS)
|
||||
set(oneValueArgs TYPE VARYING_DEF OUTPUT_DIR OUT_FILES_VAR)
|
||||
set(multiValueArgs SHADERS INCLUDE_DIRS)
|
||||
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
|
||||
|
||||
set(PROFILES 120 300_es spirv) # pssl
|
||||
@@ -596,12 +598,15 @@ function(bgfx_compile_shader_to_header)
|
||||
PROFILE ${PROFILE}
|
||||
O "$<$<CONFIG:debug>:0>$<$<CONFIG:release>:3>$<$<CONFIG:relwithdebinfo>:3>$<$<CONFIG:minsizerel>:3>"
|
||||
VARYINGDEF ${ARGS_VARYING_DEF}
|
||||
INCLUDES ${BGFX_SHADER_INCLUDE_PATH}
|
||||
INCLUDES ${BGFX_SHADER_INCLUDE_PATH} ${ARGS_INCLUDE_DIRS}
|
||||
BIN2C BIN2C ${SHADER_FILE_NAME_WE}_${PROFILE_EXT}
|
||||
)
|
||||
list(APPEND OUTPUTS ${OUTPUT})
|
||||
list(APPEND COMMANDS COMMAND bgfx::shaderc ${CLI})
|
||||
endforeach()
|
||||
if(DEFINED ARGS_OUT_FILES_VAR)
|
||||
set(${ARGS_OUT_FILES_VAR} ${OUTPUTS} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUTS}
|
||||
|
||||
@@ -14,17 +14,6 @@ if(NOT IS_DIRECTORY ${BIMG_DIR})
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_library(bimg STATIC)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(bimg PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
bimg PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/include>$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
PRIVATE ${ASTC_ENCODER_INCLUDE_DIR} #
|
||||
${MINIZ_INCLUDE_DIR} #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
BIMG_SOURCES
|
||||
@@ -36,7 +25,16 @@ file(
|
||||
${MINIZ_SOURCES}
|
||||
)
|
||||
|
||||
target_sources(bimg PRIVATE ${BIMG_SOURCES})
|
||||
add_library(bimg STATIC ${BIMG_SOURCES})
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(bimg PROPERTIES FOLDER "bgfx")
|
||||
|
||||
target_include_directories(
|
||||
bimg PUBLIC $<BUILD_INTERFACE:${BIMG_DIR}/include>$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
PRIVATE ${ASTC_ENCODER_INCLUDE_DIR} #
|
||||
${MINIZ_INCLUDE_DIR} #
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
bimg
|
||||
@@ -44,3 +42,15 @@ target_link_libraries(
|
||||
${ASTC_ENCODER_LIBRARIES} #
|
||||
${MINIZ_LIBRARIES} #
|
||||
)
|
||||
|
||||
if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED")
|
||||
install(
|
||||
TARGETS bimg
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -14,7 +14,17 @@ if(NOT IS_DIRECTORY ${BIMG_DIR})
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_library(bimg_decode STATIC)
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
BIMG_DECODE_SOURCES #
|
||||
${BIMG_DIR}/include/* #
|
||||
${BIMG_DIR}/src/image_decode.* #
|
||||
#
|
||||
${LOADPNG_SOURCES} #
|
||||
${MINIZ_SOURCES} #
|
||||
)
|
||||
|
||||
add_library(bimg_decode STATIC ${BIMG_DECODE_SOURCES})
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(bimg_decode PROPERTIES FOLDER "bgfx")
|
||||
@@ -26,18 +36,6 @@ target_include_directories(
|
||||
${TINYEXR_INCLUDE_DIR} #
|
||||
)
|
||||
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
BIMG_DECODE_SOURCES #
|
||||
${BIMG_DIR}/include/* #
|
||||
${BIMG_DIR}/src/image_decode.* #
|
||||
#
|
||||
${LOADPNG_SOURCES} #
|
||||
${MINIZ_SOURCES} #
|
||||
)
|
||||
|
||||
target_sources(bimg_decode PRIVATE ${BIMG_DECODE_SOURCES})
|
||||
|
||||
target_link_libraries(
|
||||
bimg_decode
|
||||
PUBLIC bx #
|
||||
@@ -45,3 +43,15 @@ target_link_libraries(
|
||||
${MINIZ_LIBRARIES} #
|
||||
${TINYEXR_LIBRARIES} #
|
||||
)
|
||||
|
||||
if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED")
|
||||
install(
|
||||
TARGETS bimg_decode
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -85,3 +85,15 @@ foreach(flag "-Wno-class-memaccess" "-Wno-deprecated-copy")
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(BGFX_INSTALL AND NOT BGFX_LIBRARY_TYPE MATCHES "SHARED")
|
||||
install(
|
||||
TARGETS bimg_encode
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -8,23 +8,25 @@
|
||||
# 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/>.
|
||||
|
||||
add_executable(texturec)
|
||||
|
||||
# Grab the texturec source files
|
||||
file(GLOB_RECURSE TEXTUREC_SOURCES #
|
||||
${BIMG_DIR}/tools/texturec/*.cpp #
|
||||
${BIMG_DIR}/tools/texturec/*.h #
|
||||
)
|
||||
|
||||
target_sources(texturec PRIVATE ${TEXTUREC_SOURCES})
|
||||
add_executable(texturec ${TEXTUREC_SOURCES})
|
||||
|
||||
target_link_libraries(texturec PRIVATE bimg_decode bimg_encode bimg)
|
||||
set_target_properties(
|
||||
texturec PROPERTIES FOLDER "bgfx/tools" #
|
||||
OUTPUT_NAME ${BGFX_TOOLS_PREFIX}texturec #
|
||||
)
|
||||
|
||||
if(BGFX_BUILD_TOOLS_TEXTURE AND BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools texturec)
|
||||
if(BGFX_BUILD_TOOLS_TEXTURE)
|
||||
add_executable(bgfx::texturec ALIAS texturec)
|
||||
if(BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools texturec)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
@@ -32,3 +34,7 @@ if(ANDROID)
|
||||
elseif(IOS)
|
||||
set_target_properties(texturec PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER texturec)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(TARGETS texturec EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
@@ -15,8 +15,6 @@ if(BGFX_BUILD_TOOLS_BIN2C)
|
||||
endif()
|
||||
|
||||
if(BGFX_BUILD_TESTS)
|
||||
add_executable(bx_test)
|
||||
target_compile_definitions(bx_test PRIVATE CATCH_AMALGAMATED_CUSTOM_MAIN)
|
||||
file(
|
||||
GLOB
|
||||
BX_TEST_SOURCES #
|
||||
@@ -25,11 +23,11 @@ if(BGFX_BUILD_TESTS)
|
||||
${BX_DIR}/tests/*.h #
|
||||
${BX_DIR}/tests/dbg.* #
|
||||
)
|
||||
target_sources(bx_test PRIVATE ${BX_TEST_SOURCES})
|
||||
add_executable(bx_test ${BX_TEST_SOURCES})
|
||||
target_compile_definitions(bx_test PRIVATE CATCH_AMALGAMATED_CUSTOM_MAIN)
|
||||
target_link_libraries(bx_test PRIVATE bx)
|
||||
add_test(NAME bx.test COMMAND bx_test)
|
||||
|
||||
add_executable(bx_bench)
|
||||
file(
|
||||
GLOB
|
||||
BX_BENCH_SOURCES #
|
||||
@@ -37,7 +35,7 @@ if(BGFX_BUILD_TESTS)
|
||||
${BX_DIR}/tests/*_bench.h #
|
||||
${BX_DIR}/tests/dbg.* #
|
||||
)
|
||||
target_sources(bx_bench PRIVATE ${BX_BENCH_SOURCES})
|
||||
add_executable(bx_bench ${BX_BENCH_SOURCES})
|
||||
target_link_libraries(bx_bench PRIVATE bx)
|
||||
add_test(NAME bx.bench COMMAND bx_bench)
|
||||
endif()
|
||||
|
||||
@@ -8,23 +8,25 @@
|
||||
# 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/>.
|
||||
|
||||
add_executable(bin2c)
|
||||
|
||||
# Grab the bin2c source files
|
||||
file(GLOB_RECURSE BIN2C_SOURCES #
|
||||
${BX_DIR}/tools/bin2c/*.cpp #
|
||||
${BX_DIR}/tools/bin2c/*.h #
|
||||
)
|
||||
|
||||
target_sources(bin2c PRIVATE ${BIN2C_SOURCES})
|
||||
add_executable(bin2c ${BIN2C_SOURCES})
|
||||
|
||||
target_link_libraries(bin2c PRIVATE bx)
|
||||
set_target_properties(
|
||||
bin2c PROPERTIES FOLDER "bgfx/tools" #
|
||||
OUTPUT_NAME ${BGFX_TOOLS_PREFIX}bin2c #
|
||||
)
|
||||
|
||||
if(BGFX_BUILD_TOOLS_BIN2C AND BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools bin2c)
|
||||
if(BGFX_BUILD_TOOLS_BIN2C)
|
||||
add_executable(bgfx::bin2c ALIAS bin2c)
|
||||
if(BGFX_CUSTOM_TARGETS)
|
||||
add_dependencies(tools bin2c)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
@@ -32,3 +34,7 @@ if(ANDROID)
|
||||
elseif(IOS)
|
||||
set_target_properties(bin2c PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_GUI_IDENTIFIER bin2c)
|
||||
endif()
|
||||
|
||||
if(BGFX_INSTALL)
|
||||
install(TARGETS bin2c EXPORT "${TARGETS_EXPORT_NAME}" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
@@ -16,32 +16,6 @@ endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
add_library(bx STATIC)
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(bx PROPERTIES FOLDER "bgfx")
|
||||
|
||||
# Build system specific configurations
|
||||
if(MINGW)
|
||||
set(BX_COMPAT_PLATFORM mingw)
|
||||
elseif(WIN32)
|
||||
set(BX_COMPAT_PLATFORM msvc)
|
||||
elseif(APPLE) # APPLE is technically UNIX... ORDERING MATTERS!
|
||||
set(BX_COMPAT_PLATFORM osx)
|
||||
elseif(UNIX)
|
||||
set(BX_COMPAT_PLATFORM linux)
|
||||
endif()
|
||||
|
||||
# Add include directory of bx
|
||||
target_include_directories(
|
||||
bx
|
||||
PUBLIC $<BUILD_INTERFACE:${BX_DIR}/include> #
|
||||
$<BUILD_INTERFACE:${BX_DIR}/3rdparty> #
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> #
|
||||
$<BUILD_INTERFACE:${BX_DIR}/include/compat/${BX_COMPAT_PLATFORM}> #
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/compat/${BX_COMPAT_PLATFORM}> #
|
||||
)
|
||||
|
||||
# Grab the bx source files
|
||||
file(
|
||||
GLOB_RECURSE
|
||||
@@ -84,8 +58,31 @@ foreach(BX_SRC ${BX_NOBUILD})
|
||||
set_source_files_properties(${BX_SRC} PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endforeach()
|
||||
|
||||
# Add sources to the project
|
||||
target_sources(bx PRIVATE ${BX_SOURCES})
|
||||
add_library(bx STATIC ${BX_SOURCES})
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(bx PROPERTIES FOLDER "bgfx")
|
||||
|
||||
# Build system specific configurations
|
||||
if(MINGW)
|
||||
set(BX_COMPAT_PLATFORM mingw)
|
||||
elseif(WIN32)
|
||||
set(BX_COMPAT_PLATFORM msvc)
|
||||
elseif(APPLE) # APPLE is technically UNIX... ORDERING MATTERS!
|
||||
set(BX_COMPAT_PLATFORM osx)
|
||||
elseif(UNIX)
|
||||
set(BX_COMPAT_PLATFORM linux)
|
||||
endif()
|
||||
|
||||
# Add include directory of bx
|
||||
target_include_directories(
|
||||
bx
|
||||
PUBLIC $<BUILD_INTERFACE:${BX_DIR}/include> #
|
||||
$<BUILD_INTERFACE:${BX_DIR}/3rdparty> #
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> #
|
||||
$<BUILD_INTERFACE:${BX_DIR}/include/compat/${BX_COMPAT_PLATFORM}> #
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/compat/${BX_COMPAT_PLATFORM}> #
|
||||
)
|
||||
|
||||
# All configurations
|
||||
target_compile_definitions(bx PUBLIC "BX_CONFIG_DEBUG=$<IF:$<CONFIG:Debug>,1,$<BOOL:${BX_CONFIG_DEBUG}>>")
|
||||
@@ -123,3 +120,15 @@ endif()
|
||||
|
||||
# Put in a "bgfx" folder in Visual Studio
|
||||
set_target_properties(bx PROPERTIES FOLDER "bgfx")
|
||||
|
||||
if(NOT BGFX_LIBRARY_TYPE MATCHES "SHARED")
|
||||
install(
|
||||
TARGETS bx
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
INCLUDES
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user