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,$>")