cmake_minimum_required(VERSION 4.1)
project(tram)

set(CMAKE_CXX_STANDARD 23)

# Define sources
file(GLOB TRAM_SOURCES src/codegen/*.cpp src/main.cpp src/tram.h )

# Create shared library
add_library(tram SHARED ${TRAM_SOURCES})
set_target_properties(tram PROPERTIES OUTPUT_NAME "tram")

# Create static library
add_library(tram_static STATIC ${TRAM_SOURCES})
set_target_properties(tram_static PROPERTIES OUTPUT_NAME "tram")

# Declare tram.h as public header
set_target_properties(tram tram_static PROPERTIES
        PUBLIC_HEADER src/tram.h
)

# Install both libraries and headers
install(TARGETS tram tram_static
        LIBRARY DESTINATION lib  # shared lib
        ARCHIVE DESTINATION lib  # static lib
        PUBLIC_HEADER DESTINATION include
)
