cmake_minimum_required(VERSION 3.10)

project(quickjs-demo C)

# 设置 C 标准
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

# 设置输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

# 添加 yps-quickjs 子目录
add_subdirectory(yps-quickjs)

# 创建 demo 可执行文件
add_executable(demo main.c)

# 链接 yps-quickjs 库
target_link_libraries(demo PRIVATE ypqjs)

# 创建 simple_demo 可执行文件
add_executable(simple_demo simple_demo.c)

# 链接 yps-quickjs 库
target_link_libraries(simple_demo PRIVATE ypqjs)

# Windows 特定配置
if(WIN32)
    # 设置 8MB 栈大小
    if(MSVC)
        set_target_properties(demo PROPERTIES
            LINK_FLAGS "/STACK:8388608"
        )
    else()
        set_target_properties(demo PROPERTIES
            LINK_FLAGS "-Wl,--stack,8388608"
        )
    endif()
endif()

# 添加 include 目录
target_include_directories(demo PRIVATE 
    ${CMAKE_SOURCE_DIR}/yps-quickjs
)

# 安装规则
install(TARGETS demo DESTINATION bin)
install(FILES main.c DESTINATION src/examples)