diff --git a/cmake/bgfx/3rdparty/fcpp.cmake b/cmake/bgfx/3rdparty/fcpp.cmake
index 8e35c1a..e62712c 100644
--- a/cmake/bgfx/3rdparty/fcpp.cmake
+++ b/cmake/bgfx/3rdparty/fcpp.cmake
@@ -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
diff --git a/cmake/bgfx/3rdparty/glsl-optimizer.cmake b/cmake/bgfx/3rdparty/glsl-optimizer.cmake
index be34f80..a209a72 100644
--- a/cmake/bgfx/3rdparty/glsl-optimizer.cmake
+++ b/cmake/bgfx/3rdparty/glsl-optimizer.cmake
@@ -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(
diff --git a/cmake/bgfx/3rdparty/glslang.cmake b/cmake/bgfx/3rdparty/glslang.cmake
index 36eec04..e6169ed 100644
--- a/cmake/bgfx/3rdparty/glslang.cmake
+++ b/cmake/bgfx/3rdparty/glslang.cmake
@@ -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 #
+)
diff --git a/cmake/bgfx/3rdparty/spirv-cross.cmake b/cmake/bgfx/3rdparty/spirv-cross.cmake
index 560bbc0..7737e44 100644
--- a/cmake/bgfx/3rdparty/spirv-cross.cmake
+++ b/cmake/bgfx/3rdparty/spirv-cross.cmake
@@ -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 #
+)
diff --git a/cmake/bgfx/3rdparty/spirv-opt.cmake b/cmake/bgfx/3rdparty/spirv-opt.cmake
index 811c1b1..b81f3b8 100644
--- a/cmake/bgfx/3rdparty/spirv-opt.cmake
+++ b/cmake/bgfx/3rdparty/spirv-opt.cmake
@@ -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 #
+)
diff --git a/cmake/bgfx/examples.cmake b/cmake/bgfx/examples.cmake
index 7758c93..18014ae 100755
--- a/cmake/bgfx/examples.cmake
+++ b/cmake/bgfx/examples.cmake
@@ -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)
diff --git a/cmake/bgfx/geometryc.cmake b/cmake/bgfx/geometryc.cmake
index 34d7a41..0058f5c 100644
--- a/cmake/bgfx/geometryc.cmake
+++ b/cmake/bgfx/geometryc.cmake
@@ -8,8 +8,6 @@
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see .
-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")
diff --git a/cmake/bgfx/geometryv.cmake b/cmake/bgfx/geometryv.cmake
index cbea71e..b6b7757 100644
--- a/cmake/bgfx/geometryv.cmake
+++ b/cmake/bgfx/geometryv.cmake
@@ -8,18 +8,17 @@
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see .
-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" #
diff --git a/cmake/bgfx/shaderc.cmake b/cmake/bgfx/shaderc.cmake
index 4fe0a33..c04fd2e 100644
--- a/cmake/bgfx/shaderc.cmake
+++ b/cmake/bgfx/shaderc.cmake
@@ -8,17 +8,16 @@
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see .
-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,17 +45,6 @@ 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 #
diff --git a/cmake/bgfx/texturev.cmake b/cmake/bgfx/texturev.cmake
index 3e233e3..ab5b378 100644
--- a/cmake/bgfx/texturev.cmake
+++ b/cmake/bgfx/texturev.cmake
@@ -8,18 +8,17 @@
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see .
-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" #
diff --git a/cmake/bimg/bimg.cmake b/cmake/bimg/bimg.cmake
index de66315..f310072 100644
--- a/cmake/bimg/bimg.cmake
+++ b/cmake/bimg/bimg.cmake
@@ -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 $$
- 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 $$
+ PRIVATE ${ASTC_ENCODER_INCLUDE_DIR} #
+ ${MINIZ_INCLUDE_DIR} #
+)
target_link_libraries(
bimg
diff --git a/cmake/bimg/bimg_decode.cmake b/cmake/bimg/bimg_decode.cmake
index 060a049..a10bdaa 100644
--- a/cmake/bimg/bimg_decode.cmake
+++ b/cmake/bimg/bimg_decode.cmake
@@ -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 #
diff --git a/cmake/bimg/texturec.cmake b/cmake/bimg/texturec.cmake
index 1923693..8ae2da0 100644
--- a/cmake/bimg/texturec.cmake
+++ b/cmake/bimg/texturec.cmake
@@ -8,15 +8,14 @@
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see .
-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" #
diff --git a/cmake/bx/CMakeLists.txt b/cmake/bx/CMakeLists.txt
index 7fd5303..2ed7e28 100644
--- a/cmake/bx/CMakeLists.txt
+++ b/cmake/bx/CMakeLists.txt
@@ -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()
diff --git a/cmake/bx/bin2c.cmake b/cmake/bx/bin2c.cmake
index 0172aa5..ac86144 100644
--- a/cmake/bx/bin2c.cmake
+++ b/cmake/bx/bin2c.cmake
@@ -8,15 +8,14 @@
# You should have received a copy of the CC0 Public Domain Dedication along with
# this software. If not, see .
-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" #
diff --git a/cmake/bx/bx.cmake b/cmake/bx/bx.cmake
index f34e98c..e69cc13 100644
--- a/cmake/bx/bx.cmake
+++ b/cmake/bx/bx.cmake
@@ -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 $ #
- $ #
- $ #
- $ #
- $ #
-)
-
# 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 $ #
+ $ #
+ $ #
+ $ #
+ $ #
+)
# All configurations
target_compile_definitions(bx PUBLIC "BX_CONFIG_DEBUG=$,1,$>")