cmake_minimum_required(VERSION 3.18)
project(sega_mount)

set(CMAKE_CXX_STANDARD 20)

add_executable(sega_mount
        src/main.cpp
        src/driver_service.cpp
        src/fscrypt.cpp
        src/icf_parser.cpp
        src/icf_mount.cpp
        src/vhd_mount.cpp
        src/utils/aes.cpp
        src/utils/bcrypt_util.cpp
        src/utils/crc32.cpp
        src/utils/files.cpp
        src/utils/log.cpp
        src/utils/strings.cpp
)

target_include_directories(sega_mount PRIVATE src)

if (WIN32)
    target_link_libraries(sega_mount PRIVATE bcrypt virtdisk)
    # 源文件含中文注释，指定UTF-8编码避免MSVC解析错误
    target_compile_options(sega_mount PRIVATE /utf-8)
    # 指定Windows SDK最低版本为Win10，启用virtdisk.h等结构体定义
    target_compile_definitions(sega_mount PRIVATE
            WINVER=0x0A00
            _WIN32_WINNT=0x0A00
            NTDDI_VERSION=0x0A000000
    )
endif ()
