set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) #====================FMT ==================== set(fmt_DIR ${CMAKE_CURRENT_SOURCE_DIR}/fmt) add_subdirectory(${fmt_DIR}) #=================== SPD ==================== set(SPDLOG_WCHAR_FILENAMES ON CACHE BOOL "") set(SPDLOG_NO_THREAD_ID ON CACHE BOOL "") set(SPDLOG_FMT_EXTERNAL ON CACHE BOOL "") add_subdirectory(spdlog EXCLUDE_FROM_ALL) add_library(stb INTERFACE) target_include_directories(stb INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/stb") #=================== SDL3 =================== set(SDL3_DIR ${CMAKE_CURRENT_SOURCE_DIR}/SDL) add_subdirectory(${SDL3_DIR}) #================ Zydis ======================== # Register Zydis dependency. # Disable build of tools and examples. option(ZYDIS_BUILD_TOOLS "" OFF) option(ZYDIS_BUILD_EXAMPLES "" OFF) set(zydis_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zydis) add_subdirectory(${zydis_DIR}) #=================== IMGUI =================== set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/imgui) add_library(IMGUI STATIC) target_sources( IMGUI PRIVATE ${IMGUI_DIR}/imgui_demo.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_tables.cpp ${IMGUI_DIR}/imgui_widgets.cpp ${IMGUI_DIR}/imgui.cpp PRIVATE ${IMGUI_DIR}/backends/imgui_impl_opengl3.cpp ${IMGUI_DIR}/backends/imgui_impl_sdl3.cpp ) target_include_directories( IMGUI PUBLIC ${IMGUI_DIR} PUBLIC ${IMGUI_DIR}/backends PUBLIC ${SDL3_DIR}/include ) find_package(OpenGL REQUIRED) target_link_libraries(IMGUI PUBLIC ${OPENGL_LIBRARIES}) target_link_libraries(IMGUI PUBLIC SDL3-shared ${CMAKE_DL_LIBS} Zydis)