diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e42121c..dd850c7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: - name: Install vcpkg dependencies run: | - vcpkg install sdl2 fftw3 libsndfile --triplet x64-windows + vcpkg install sdl2 fftw3 "libsndfile[core]" --triplet x64-windows - name: Configure run: > diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b9ad17..77ffd02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,32 +180,47 @@ if(EMSCRIPTEN) else() # ── Native Build ───────────────────────────────────────────────────────── - set(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -DNDEBUG") - set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -fsanitize=address,undefined") + if(MSVC) + set(CMAKE_CXX_FLAGS_RELEASE "/O2 /DNDEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "/Zi /Od") + else() + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -DNDEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -fsanitize=address,undefined") + endif() - find_package(PkgConfig REQUIRED) find_package(OpenGL REQUIRED) - pkg_check_modules(SDL2 REQUIRED IMPORTED_TARGET sdl2) - pkg_check_modules(FFTW3F REQUIRED IMPORTED_TARGET fftw3f) - pkg_check_modules(SNDFILE REQUIRED IMPORTED_TARGET sndfile) + if(MSVC) + find_package(SDL2 CONFIG REQUIRED) + find_package(FFTW3f CONFIG REQUIRED) + find_package(SndFile CONFIG REQUIRED) - target_link_libraries(imgui PUBLIC PkgConfig::SDL2 OpenGL::GL) + target_link_libraries(imgui PUBLIC SDL2::SDL2 OpenGL::GL) - add_executable(baudmine ${SOURCES}) - target_include_directories(baudmine PRIVATE src) - target_link_libraries(baudmine PRIVATE - imgui - PkgConfig::SDL2 - PkgConfig::FFTW3F - PkgConfig::SNDFILE - OpenGL::GL - pthread - ) + add_executable(baudmine ${SOURCES}) + target_include_directories(baudmine PRIVATE src) + target_link_libraries(baudmine PRIVATE + imgui SDL2::SDL2 SDL2::SDL2main + FFTW3::fftw3f SndFile::sndfile OpenGL::GL + ) + else() + find_package(PkgConfig REQUIRED) + pkg_check_modules(SDL2 REQUIRED IMPORTED_TARGET sdl2) + pkg_check_modules(FFTW3F REQUIRED IMPORTED_TARGET fftw3f) + pkg_check_modules(SNDFILE REQUIRED IMPORTED_TARGET sndfile) - # Link math library and dl on Unix (dl needed by miniaudio for backend loading) - if(UNIX) - target_link_libraries(baudmine PRIVATE m dl) + target_link_libraries(imgui PUBLIC PkgConfig::SDL2 OpenGL::GL) + + add_executable(baudmine ${SOURCES}) + target_include_directories(baudmine PRIVATE src) + target_link_libraries(baudmine PRIVATE + imgui PkgConfig::SDL2 PkgConfig::FFTW3F + PkgConfig::SNDFILE OpenGL::GL pthread + ) + + if(UNIX) + target_link_libraries(baudmine PRIVATE m dl) + endif() endif() endif() diff --git a/src/ui/Application.cpp b/src/ui/Application.cpp index bf0b9bb..372a23e 100644 --- a/src/ui/Application.cpp +++ b/src/ui/Application.cpp @@ -30,6 +30,9 @@ EM_JS(void, js_clearCanvasInlineSize, (), { if (c) { c.style.width = ''; c.style.height = ''; } }); +#elif defined(_WIN32) +#include +#include #else #include #endif diff --git a/src/ui/SpectrumDisplay.cpp b/src/ui/SpectrumDisplay.cpp index d4a25a5..c3b307c 100644 --- a/src/ui/SpectrumDisplay.cpp +++ b/src/ui/SpectrumDisplay.cpp @@ -4,6 +4,9 @@ #ifdef __EMSCRIPTEN__ #include +#elif defined(_WIN32) +#include +#include #else #include #endif diff --git a/src/ui/WaterfallDisplay.h b/src/ui/WaterfallDisplay.h index af4f28b..4d592d7 100644 --- a/src/ui/WaterfallDisplay.h +++ b/src/ui/WaterfallDisplay.h @@ -2,6 +2,9 @@ #include "core/Types.h" #include "ui/ColorMap.h" +#ifdef _WIN32 +#include +#endif #include #include #include