project(win-dictation)

if (WIN32)
    # Main application
    add_executable(win-dictation WIN32
        main.cpp
        transcriber.cpp
        transcriber.h
        win-dictation.rc
    )

    # Link dependencies
    target_link_libraries(win-dictation PRIVATE
        whisper
        common
        common-sdl
        ${SDL2_LIBRARY}
        comctl32
        dwmapi
    )

    # Include directories
    target_include_directories(win-dictation PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}/../..
        ${CMAKE_CURRENT_SOURCE_DIR}/../../include
        ${CMAKE_CURRENT_SOURCE_DIR}/../
        ${SDL2_INCLUDE_DIR}
    )
    
    # Use Unicode and enable optimizations
    target_compile_definitions(win-dictation PRIVATE UNICODE _UNICODE)
    
    # Enable /O2 optimization in Release
    if(MSVC)
        target_compile_options(win-dictation PRIVATE
            $<$<CONFIG:Release>:/O2 /GL>
        )
        target_link_options(win-dictation PRIVATE
            $<$<CONFIG:Release>:/LTCG>
        )
    endif()

    # Set properties
    set_target_properties(win-dictation PROPERTIES
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
        RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin/Release"
        RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin/Debug"
    )
    
    # Test executable
    add_executable(test-audio
        test-audio.cpp
        transcriber.cpp
        transcriber.h
    )
    
    target_link_libraries(test-audio PRIVATE
        whisper
        common
        common-sdl
        ${SDL2_LIBRARY}
    )
    
    target_include_directories(test-audio PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}/../..
        ${CMAKE_CURRENT_SOURCE_DIR}/../../include
        ${CMAKE_CURRENT_SOURCE_DIR}/../
        ${SDL2_INCLUDE_DIR}
    )
    
    set_target_properties(test-audio PROPERTIES
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
        RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin/Release"
        RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin/Debug"
    )
endif()

