Fix uses of sourceless exe/lib declarations

The feature to add targets without sources was added in cmake 3.11, in order to
be compatible with 3.6 and 3.11, target_sources call was removed
This commit is contained in:
Sandy Carter
2023-02-18 18:56:28 -05:00
committed by Sandy
parent d671412cca
commit a6e266e326
16 changed files with 151 additions and 189 deletions

View File

@@ -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

View File

@@ -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(

View File

@@ -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 #
)

View File

@@ -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 #
)

View File

@@ -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 #
)

View File

@@ -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)

View File

@@ -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")

View File

@@ -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" #

View File

@@ -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,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 #

View File

@@ -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" #

View File

@@ -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

View File

@@ -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 #

View File

@@ -8,15 +8,14 @@
# 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" #

View File

@@ -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()

View File

@@ -8,15 +8,14 @@
# 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" #

View File

@@ -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}>>")