cmake_minimum_required(VERSION 3.25) project(mikemon VERSION 0.1 LANGUAGES CXX C) set(CMAKE_C_STANDARD 23) set(CMAKE_C_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_EXTENSIONS OFF) option(TRACY_ENABLE "Enable Tracy profiling" OFF) # SDL set(SDL_SHARED OFF) set(SDL_STATIC ON) add_subdirectory(libs/SDL3) # wgpu add_subdirectory(libs/wgpu) # SDL_mixer set(BUILD_SHARED_LIBS ${SDL_SHARED}) set(SDLMIXER_DEPS_SHARED OFF) set(SDLMIXER_VENDORED ON) set(SDLMIXER_FLAC OFF) set(SDLMIXER_GME OFF) set(SDLMIXER_MIDI OFF) set(SDLMIXER_MOD OFF) set(SDLMIXER_MP3 OFF) set(SDLMIXER_OPUS ON) set(SDLMIXER_VORBIS OFF) set(SDLMIXER_WAVE ON) set(SDLMIXER_WAVPACK OFF) add_subdirectory(libs/SDL_mixer) # Dear ImGui add_library(imgui STATIC libs/imgui/imgui.cpp libs/imgui/imgui_draw.cpp libs/imgui/imgui_demo.cpp libs/imgui/imgui_tables.cpp libs/imgui/imgui_widgets.cpp libs/imgui/backends/imgui_impl_sdl3.cpp libs/imgui/backends/imgui_impl_wgpu.cpp ) target_include_directories(imgui PUBLIC libs/imgui libs/imgui/backends ) target_link_libraries(imgui PRIVATE SDL3::SDL3 wgpu) target_compile_definitions(imgui PRIVATE IMGUI_IMPL_WEBGPU_BACKEND_WGPU=1) # stb_image add_library(stb_image STATIC libs/stb/stb_image.c) target_include_directories(stb_image INTERFACE libs/stb) # tracy option(TRACY_ONLY_LOCALHOST "" ON) add_subdirectory(libs/tracy) add_executable(mikemon src/log.cpp src/smol-atlas.cpp src/math_graphics.cpp src/change_directory.c src/shaders/shaders.c src/main.cpp ) target_link_libraries(mikemon PRIVATE SDL3::SDL3 SDL3_mixer::SDL3_mixer stb_image imgui TracyClient wgpu )