cmake_minimum_required(VERSION 3.10)
project(visualizer)

# Define architecture macros for Windows
if(WIN32)
    add_definitions(-D_AMD64_ -D_WIN64 -D_WINDOWS)
endif()

# C++ standard
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# Set include directories
include_directories(
    ${CMAKE_SOURCE_DIR}/ressources/rlImGui-Raylib_6_0/
    ${CMAKE_SOURCE_DIR}/ressources/imgui-1.92.7/
)


# Source files
set(SOURCES
    main.cpp
    serialcomm.cpp
    ressources/rlImGui-Raylib_6_0/rlImGui.cpp
    ressources/imgui-1.92.7/imgui.cpp
    ressources/imgui-1.92.7/imgui_draw.cpp
    ressources/imgui-1.92.7/imgui_tables.cpp
    ressources/imgui-1.92.7/imgui_widgets.cpp
)

# Header files
set(HEADERS
    serialcomm.hpp
    ressources/rlImGui-Raylib_6_0/rlImGui.h
)

# Output executable to parent directory instead of /build
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
# Create executable
add_executable(main ${SOURCES} ${HEADERS})

# Link raylib (installed system-wide via pacman)
target_link_libraries(main raylib)
