Minor improvements when including this repo into another cmake project.

This commit is contained in:
Joshua Brookover
2016-09-05 23:56:27 -05:00
parent 30607af0ea
commit 02d602720d
9 changed files with 37 additions and 13 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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