125 lines
3.6 KiB
CMake
125 lines
3.6 KiB
CMake
# 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 $<$<CONFIG:Debug>:_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)
|