diff --git a/.gitmodules b/.gitmodules index 80e4d9ad..b0e036b8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,3 +20,6 @@ [submodule "external/SFML"] path = external/SFML url = https://github.com/SFML/SFML +[submodule "external/bgfx.cmake"] + path = external/bgfx.cmake + url = https://github.com/bkaradzic/bgfx.cmake diff --git a/cmake/vs_folders.cmake b/cmake/vs_folders.cmake index c541daf8..65186134 100644 --- a/cmake/vs_folders.cmake +++ b/cmake/vs_folders.cmake @@ -1,17 +1,19 @@ -# Setup folders -set_target_properties(aob PROPERTIES FOLDER "external/misc") -set_target_properties(buildvm PROPERTIES FOLDER "external/misc") -set_target_properties(buildvm_arch_h PROPERTIES FOLDER "external/misc") -set_target_properties(lj_gen_folddef PROPERTIES FOLDER "external/misc") -set_target_properties(lj_gen_headers PROPERTIES FOLDER "external/misc") -set_target_properties(lj_gen_vm_s PROPERTIES FOLDER "external/misc") -set_target_properties(minilua PROPERTIES FOLDER "external/misc") -set_target_properties(sdl_headers_copy PROPERTIES FOLDER "external/misc") -set_target_properties(showanim PROPERTIES FOLDER "external/misc") -set_target_properties(showimage PROPERTIES FOLDER "external/misc") -set_target_properties(uninstall PROPERTIES FOLDER "external/misc") -set_target_properties(xmltest PROPERTIES FOLDER "external/misc") +#----------------------------------------------------------------------------------------- +# Startup project +#----------------------------------------------------------------------------------------- +set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${CMAKE_PROJECT_NAME}) +#----------------------------------------------------------------------------------------- +# Client/server +#----------------------------------------------------------------------------------------- +set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES FOLDER "source") +set_target_properties(${CMAKE_PROJECT_NAME}_common PROPERTIES FOLDER "source") +set_target_properties(${CMAKE_PROJECT_NAME}_server PROPERTIES FOLDER "source") +set_target_properties(${CMAKE_PROJECT_NAME}_server_lib PROPERTIES FOLDER "source") + +#----------------------------------------------------------------------------------------- +# External libraries +#----------------------------------------------------------------------------------------- set_target_properties(glm_static PROPERTIES FOLDER "external") set_target_properties(gamekit PROPERTIES FOLDER "external") set_target_properties(libglew_static PROPERTIES FOLDER "external") @@ -24,10 +26,42 @@ set_target_properties(SDL2-static PROPERTIES FOLDER "extern set_target_properties(tinyxml2 PROPERTIES FOLDER "external") set_target_properties(zlib PROPERTIES FOLDER "external") -set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES FOLDER "source") -set_target_properties(${CMAKE_PROJECT_NAME}_common PROPERTIES FOLDER "source") -set_target_properties(${CMAKE_PROJECT_NAME}_server PROPERTIES FOLDER "source") -set_target_properties(${CMAKE_PROJECT_NAME}_server_lib PROPERTIES FOLDER "source") +#----------------------------------------------------------------------------------------- +# BGFX +#----------------------------------------------------------------------------------------- +set_target_properties(bgfx PROPERTIES FOLDER "external/bgfx") +set_target_properties(bimg PROPERTIES FOLDER "external/bgfx") +set_target_properties(bimg_decode PROPERTIES FOLDER "external/bgfx") +set_target_properties(bimg_encode PROPERTIES FOLDER "external/bgfx") +set_target_properties(bx PROPERTIES FOLDER "external/bgfx") + +set_target_properties(example-common PROPERTIES FOLDER "external/bgfx/misc") +set_target_properties(fcpp PROPERTIES FOLDER "external/bgfx/misc") +set_target_properties(glslang PROPERTIES FOLDER "external/bgfx/misc") +set_target_properties(glsl-optimizer PROPERTIES FOLDER "external/bgfx/misc") +set_target_properties(spirv-cross PROPERTIES FOLDER "external/bgfx/misc") +set_target_properties(spirv-opt PROPERTIES FOLDER "external/bgfx/misc") + +set_target_properties(bin2c PROPERTIES FOLDER "external/bgfx/tools") +set_target_properties(geometryc PROPERTIES FOLDER "external/bgfx/tools") +set_target_properties(geometryv PROPERTIES FOLDER "external/bgfx/tools") +set_target_properties(shaderc PROPERTIES FOLDER "external/bgfx/tools") +set_target_properties(texturec PROPERTIES FOLDER "external/bgfx/tools") +set_target_properties(texturev PROPERTIES FOLDER "external/bgfx/tools") + +#----------------------------------------------------------------------------------------- +# Misc projects +#----------------------------------------------------------------------------------------- +set_target_properties(aob PROPERTIES FOLDER "external/misc") +set_target_properties(buildvm PROPERTIES FOLDER "external/misc") +set_target_properties(buildvm_arch_h PROPERTIES FOLDER "external/misc") +set_target_properties(lj_gen_folddef PROPERTIES FOLDER "external/misc") +set_target_properties(lj_gen_headers PROPERTIES FOLDER "external/misc") +set_target_properties(lj_gen_vm_s PROPERTIES FOLDER "external/misc") +set_target_properties(minilua PROPERTIES FOLDER "external/misc") +set_target_properties(sdl_headers_copy PROPERTIES FOLDER "external/misc") +set_target_properties(showanim PROPERTIES FOLDER "external/misc") +set_target_properties(showimage PROPERTIES FOLDER "external/misc") +set_target_properties(uninstall PROPERTIES FOLDER "external/misc") +set_target_properties(xmltest PROPERTIES FOLDER "external/misc") -# Set startup project -set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${CMAKE_PROJECT_NAME}) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 7d37223f..4e8f981f 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -78,3 +78,13 @@ add_subdirectory(lua) #------------------------------------------------------------------------------ add_subdirectory(sol2) +#----------------------------------------------------------------------------------------- +# BGFX +#----------------------------------------------------------------------------------------- +set(BGFX_BUILD_TOOLS ON CACHE BOOL "Build bgfx tools." FORCE) +set(BGFX_BUILD_EXAMPLES OFF CACHE BOOL "Build bgfx examples." FORCE) +set(BGFX_INSTALL OFF CACHE BOOL "Create installation target." FORCE) +set(BGFX_CUSTOM_TARGETS OFF CACHE BOOL "Include convenience custom targets." FORCE) + +add_subdirectory(bgfx.cmake) + diff --git a/external/bgfx.cmake b/external/bgfx.cmake new file mode 160000 index 00000000..875927a7 --- /dev/null +++ b/external/bgfx.cmake @@ -0,0 +1 @@ +Subproject commit 875927a712fa03976015db9770a71b49f0e10793 diff --git a/source/client/CMakeLists.txt b/source/client/CMakeLists.txt index c0c6571a..01df8a45 100644 --- a/source/client/CMakeLists.txt +++ b/source/client/CMakeLists.txt @@ -49,5 +49,8 @@ endif() #------------------------------------------------------------------------------ # Link options #------------------------------------------------------------------------------ -target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_PROJECT_NAME}_server_lib) +target_link_libraries(${PROJECT_NAME} PRIVATE + bgfx + ${CMAKE_PROJECT_NAME}_server_lib +)