cmake_minimum_required(VERSION 3.20)
project(forge_agent_studio LANGUAGES CXX)
if(NOT CMAKE_CXX_STANDARD)
  message(FATAL_ERROR "Set CMAKE_CXX_STANDARD to match the selected SDK package.")
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Kui 3 REQUIRED)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/app.css" APP_CSS)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/index.zh.html" APP_ZH)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/index.en.html" APP_EN)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/notes.zh.html" NOTES_ZH)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/notes.en.html" NOTES_EN)
string(REPLACE "<!-- APP_CSS -->" "<style>${APP_CSS}</style>" APP_ZH "${APP_ZH}")
string(REPLACE "<!-- APP_CSS -->" "<style>${APP_CSS}</style>" APP_EN "${APP_EN}")
string(REPLACE "<!-- APP_CSS -->" "<style>${APP_CSS}</style>" NOTES_ZH "${NOTES_ZH}")
string(REPLACE "<!-- APP_CSS -->" "<style>${APP_CSS}</style>" NOTES_EN "${NOTES_EN}")
configure_file(page.h.in generated_page.h @ONLY)
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS app.css index.zh.html index.en.html notes.zh.html notes.en.html)
add_executable(agent_studio main.cpp)
target_include_directories(agent_studio PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
target_link_libraries(agent_studio PRIVATE Kui::Kui)
kui_copy_runtime_dlls(agent_studio)
if(MSVC)
  target_compile_options(agent_studio PRIVATE /utf-8)
endif()
include(CTest)
if(BUILD_TESTING)
  add_executable(markdown_preview_test markdown_preview_test.cpp)
  if(MSVC)
    target_compile_options(markdown_preview_test PRIVATE /utf-8)
  endif()
  add_test(NAME markdown_preview COMMAND markdown_preview_test)
endif()
