mirror of
https://github.com/bkaradzic/bgfx.cmake.git
synced 2026-02-17 21:12:35 +01:00
Minor improvements when including this repo into another cmake project.
This commit is contained in:
@@ -8,7 +8,16 @@ if( APPLE )
|
||||
set( CMAKE_CXX_FLAGS "-ObjC++" )
|
||||
endif()
|
||||
|
||||
option( BGFX_BUILD_TOOLS "Build bgfx tools." ON )
|
||||
option( BGFX_BUILD_EXAMPLES "Build bgfx examples." ON )
|
||||
|
||||
include( cmake/bx.cmake )
|
||||
include( cmake/bgfx.cmake )
|
||||
|
||||
if( BGFX_BUILD_TOOLS )
|
||||
include( cmake/tools.cmake )
|
||||
endif()
|
||||
|
||||
if( BGFX_BUILD_EXAMPLES )
|
||||
include( cmake/examples.cmake )
|
||||
endif()
|
||||
|
||||
2
cmake/3rdparty/fcpp.cmake
vendored
2
cmake/3rdparty/fcpp.cmake
vendored
@@ -7,5 +7,5 @@ target_include_directories( fcpp PUBLIC ${BGFX_DIR}/3rdparty/fcpp )
|
||||
if( MSVC )
|
||||
set_target_properties( fcpp PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
endif()
|
||||
set_target_properties( fcpp PROPERTIES FOLDER "3rdparty" )
|
||||
set_target_properties( fcpp PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
set_source_files_properties( ${BGFX_DIR}/3rdparty/fcpp/usecpp.c PROPERTIES HEADER_FILE_ONLY ON )
|
||||
|
||||
6
cmake/3rdparty/glsl-optimizer.cmake
vendored
6
cmake/3rdparty/glsl-optimizer.cmake
vendored
@@ -15,7 +15,7 @@ target_include_directories( glcpp PUBLIC ${GLSL-OPTIMIZER_INCLUDES} )
|
||||
if( MSVC )
|
||||
set_target_properties( glcpp PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
endif()
|
||||
set_target_properties( glcpp PROPERTIES FOLDER "3rdparty" )
|
||||
set_target_properties( glcpp PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
|
||||
# mesa
|
||||
file( GLOB MESA_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa/program/*.c ${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa/main/*.c )
|
||||
@@ -24,7 +24,7 @@ target_include_directories( mesa PUBLIC ${GLSL-OPTIMIZER_INCLUDES} )
|
||||
if( MSVC )
|
||||
set_target_properties( mesa PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
endif()
|
||||
set_target_properties( mesa PROPERTIES FOLDER "3rdparty" )
|
||||
set_target_properties( mesa PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
|
||||
# glsl_optimizer
|
||||
file( GLOB GLSL-OPTIMIZER_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/*.cpp ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/*.c )
|
||||
@@ -35,4 +35,4 @@ target_link_libraries( glsl-optimizer glcpp mesa )
|
||||
if( MSVC )
|
||||
set_target_properties( glsl-optimizer PROPERTIES COMPILE_FLAGS "/W0" )
|
||||
endif()
|
||||
set_target_properties( glsl-optimizer PROPERTIES FOLDER "3rdparty" )
|
||||
set_target_properties( glsl-optimizer PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
|
||||
2
cmake/3rdparty/ib-compress.cmake
vendored
2
cmake/3rdparty/ib-compress.cmake
vendored
@@ -4,4 +4,4 @@ file( GLOB IB_COMPRESS_SOURCES ${BGFX_DIR}/3rdparty/ib-compress/*.cpp ${BGFX_DIR
|
||||
|
||||
add_library( ib-compress STATIC ${IB_COMPRESS_SOURCES} )
|
||||
target_include_directories( ib-compress PUBLIC ${BGFX_DIR}/3rdparty )
|
||||
set_target_properties( ib-compress PROPERTIES FOLDER "3rdparty" )
|
||||
set_target_properties( ib-compress PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
|
||||
2
cmake/3rdparty/ocornut-imgui.cmake
vendored
2
cmake/3rdparty/ocornut-imgui.cmake
vendored
@@ -6,4 +6,4 @@ add_library( ocornut-imgui STATIC ${OCORNUT_IMGUI_SOURCES} )
|
||||
target_compile_definitions( ocornut-imgui PRIVATE "-D_CRT_SECURE_NO_WARNINGS" "-D__STDC_FORMAT_MACROS" )
|
||||
target_include_directories( ocornut-imgui PUBLIC ${BGFX_DIR}/3rdparty )
|
||||
target_link_libraries( ocornut-imgui PUBLIC bx )
|
||||
set_target_properties( ocornut-imgui PROPERTIES FOLDER "3rdparty" )
|
||||
set_target_properties( ocornut-imgui PROPERTIES FOLDER "bgfx/3rdparty" )
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# Copyright (c) 2016 Joshua Brookover
|
||||
|
||||
set( BGFX_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bgfx" )
|
||||
if( NOT BGFX_DIR )
|
||||
set( BGFX_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bgfx" CACHE STRING "Location of bgfx." )
|
||||
endif()
|
||||
|
||||
if( NOT IS_DIRECTORY ${BGFX_DIR} )
|
||||
message( SEND_ERROR "Could not load bgfx, directory does not exist. ${BGFX_DIR}" )
|
||||
return()
|
||||
endif()
|
||||
|
||||
file( GLOB BGFX_SOURCES ${BGFX_DIR}/src/*.cpp ${BGFX_DIR}/src/*.mm ${BGFX_DIR}/src/*.h )
|
||||
|
||||
@@ -36,3 +43,4 @@ if( NOT APPLE )
|
||||
set_source_files_properties( ${BGFX_DIR}/src/glcontext_nsgl.mm PROPERTIES HEADER_FILE_ONLY ON )
|
||||
set_source_files_properties( ${BGFX_DIR}/src/renderer_mtl.mm PROPERTIES HEADER_FILE_ONLY ON )
|
||||
endif()
|
||||
set_target_properties( bgfx PROPERTIES FOLDER "bgfx" )
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# Copyright (c) 2016 Joshua Brookover
|
||||
|
||||
set( BX_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bx" )
|
||||
if( NOT BX_DIR )
|
||||
set( BX_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bx" CACHE STRING "Location of bgfx." )
|
||||
endif()
|
||||
|
||||
if( NOT IS_DIRECTORY ${BX_DIR} )
|
||||
message( SEND_ERROR "Could not load bx, directory does not exist. ${BX_DIR}" )
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_library( bx INTERFACE )
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ include( cmake/3rdparty/glsl-optimizer.cmake )
|
||||
|
||||
add_executable( shaderc bgfx/tools/shaderc/shaderc.cpp bgfx/tools/shaderc/shaderc.h bgfx/tools/shaderc/shaderc_glsl.cpp bgfx/tools/shaderc/shaderc_hlsl.cpp )
|
||||
target_compile_definitions( shaderc PRIVATE "-D_CRT_SECURE_NO_WARNINGS" )
|
||||
set_target_properties( shaderc PROPERTIES FOLDER "tools" )
|
||||
set_target_properties( shaderc PROPERTIES FOLDER "bgfx/tools" )
|
||||
target_link_libraries( shaderc bx bgfx fcpp glsl-optimizer )
|
||||
|
||||
# shaderc( FILE file OUTPUT file ... )
|
||||
@@ -15,7 +15,7 @@ target_link_libraries( shaderc bx bgfx fcpp glsl-optimizer )
|
||||
function( shaderc )
|
||||
cmake_parse_arguments( ARG "" "FILE;OUTPUT" "" ${ARGN} )
|
||||
shaderc_parse( CLI ${ARGN} )
|
||||
add_custom_command( OUTPUT ${ARG_OUTPUT} COMMAND "$<TARGET_FILE:shaderc>" ${CLI} MAIN_DEPENDENCY ${ARG_FILE} COMMENT "Compiling shader ${ARG_FILE}" )
|
||||
add_custom_command( OUTPUT ${ARG_OUTPUT} COMMAND "$<TARGET_FILE:shaderc>" ${CLI} MAIN_DEPENDENCY ${ARG_FILE} COMMENT "Compiling shader ${ARG_FILE}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" )
|
||||
endfunction()
|
||||
|
||||
# shaderc_parse(
|
||||
|
||||
@@ -145,6 +145,6 @@ function( configure_debugging ARG_TARGET )
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
configure_file( ${CMAKE_SOURCE_DIR}/cmake/util/vcxproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/${ARG_TARGET}.vcxproj.user @ONLY )
|
||||
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/util/vcxproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/${ARG_TARGET}.vcxproj.user @ONLY )
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
Reference in New Issue
Block a user