# glm set(BUILD_SHARED_LIBS OFF) add_subdirectory(glm) # stb add_subdirectory(stb) # SDL if (NOT BUILD_SHARED_LIBS) set(SDL_SHARED_ENABLED_BY_DEFAULT OFF CACHE BOOL "Don't build SDL as shared lib") endif() option(SDL_TEST "Build the SDL2_test library" OFF) option(SDL_AUDIO_ENABLED_BY_DEFAULT "Enable the Audio subsystem" OFF) add_subdirectory(sdl) add_subdirectory(vk-bootstrap) if (MSVC) # target_compile_definitions(vk-bootstrap PRIVATE $<$:_ITERATOR_DEBUG_LEVEL=1>) endif() if (BUILD_SHARED_LIBS) set_target_properties(vk-bootstrap PROPERTIES POSITION_INDEPENDENT_CODE ON ) endif() # vma add_subdirectory(vma) # volk add_subdirectory(volk) # FreeType option(FT_DISABLE_ZLIB "Disable use of system zlib and use internal zlib library instead." ON) option(FT_DISABLE_BZIP2 "Disable support of bzip2 compressed fonts." ON) option(FT_DISABLE_BROTLI "Disable support of compressed WOFF2 fonts." ON) option(FT_DISABLE_HARFBUZZ "Disable HarfBuzz (used for improving auto-hinting of OpenType fonts)." ON) option(FT_DISABLE_PNG "Disable support of PNG compressed OpenType embedded bitmaps." ON) option(SKIP_INSTALL_ALL "Skip install all" ON) option(FT_ENABLE_ERROR_STRINGS "Enable support for meaningful error descriptions." ON) add_subdirectory(freetype) add_library(freetype::freetype ALIAS freetype) # nlohmann_json option(JSON_MultipleHeaders "Use non-amalgamated version of the library." ON) option(JSON_Install "Install CMake targets during install step." OFF) add_subdirectory(json) add_subdirectory(spdlog) add_subdirectory(tinygltf) add_subdirectory(tinyexr) target_include_directories(tinyexr PUBLIC "${CMAKE_CURRENT_LIST_DIR}/tinyexr") set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(ASSIMP_INJECT_DEBUG_POSTFIX OFF CACHE BOOL "" FORCE) set(ASSIMP_INSTALL OFF CACHE BOOL "" FORCE) set(ASSIMP_WARNINGS_AS_ERRORS OFF CACHE BOOL "" FORCE) add_subdirectory(assimp) set(IMGUI_DIR "${CMAKE_CURRENT_LIST_DIR}/imgui") add_library(imgui STATIC "${IMGUI_DIR}/imgui.cpp" "${IMGUI_DIR}/imgui_draw.cpp" "${IMGUI_DIR}/imgui_tables.cpp" "${IMGUI_DIR}/imgui_widgets.cpp" "${IMGUI_DIR}/imgui_demo.cpp" # Backends you use: "${IMGUI_DIR}/backends/imgui_impl_sdl2.cpp" "${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp" ) target_include_directories(imgui PUBLIC "${IMGUI_DIR}" "${IMGUI_DIR}/backends" ) # Because you use volk with Vulkan target_compile_definitions(imgui PUBLIC IMGUI_IMPL_VULKAN_USE_VOLK ) target_link_libraries(imgui PUBLIC SDL2::SDL2 volk ) # Jolt Physics set(DOUBLE_PRECISION OFF CACHE BOOL "" FORCE) set(GENERATE_DEBUG_SYMBOLS ON CACHE BOOL "" FORCE) set(OVERRIDE_CXX_FLAGS OFF CACHE BOOL "" FORCE) set(CROSS_PLATFORM_DETERMINISTIC OFF CACHE BOOL "" FORCE) set(INTERPROCEDURAL_OPTIMIZATION OFF CACHE BOOL "" FORCE) set(FLOATING_POINT_EXCEPTIONS_ENABLED OFF CACHE BOOL "" FORCE) set(CPP_EXCEPTIONS_ENABLED OFF CACHE BOOL "" FORCE) set(CPP_RTTI_ENABLED OFF CACHE BOOL "" FORCE) set(OBJECT_LAYER_BITS 16 CACHE STRING "" FORCE) # Important for MSVC: # OFF = use /MD or /MDd, matching your current project # ON = use /MT or /MTd set(USE_STATIC_MSVC_RUNTIME_LIBRARY OFF CACHE BOOL "" FORCE) set(USE_SSE4_1 ON CACHE BOOL "" FORCE) set(USE_SSE4_2 ON CACHE BOOL "" FORCE) set(USE_AVX ON CACHE BOOL "" FORCE) set(USE_AVX2 ON CACHE BOOL "" FORCE) set(USE_AVX512 OFF CACHE BOOL "" FORCE) set(USE_LZCNT ON CACHE BOOL "" FORCE) set(USE_TZCNT ON CACHE BOOL "" FORCE) set(USE_F16C ON CACHE BOOL "" FORCE) set(USE_FMADD ON CACHE BOOL "" FORCE) add_subdirectory(jolt/Build) # 3rdparty/tracy is the Tracy repo option(TRACY_ENABLE "" ON) option(TRACY_ON_DEMAND "" ON) add_subdirectory(tracy)