cmake_minimum_required(VERSION 3.20)
project(CBiTA LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

set(TRAFFICNET_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Source/DllProj/trafficNet")
set(TRAFFICDRIVER_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Source/ExeDriver/trafficDriver")

add_library(trafficNet STATIC
    "${TRAFFICNET_SOURCE_DIR}/stdafx.cpp"
    "${TRAFFICNET_SOURCE_DIR}/TNM.cpp"
    "${TRAFFICNET_SOURCE_DIR}/TNM_Algorithm.cpp"
    "${TRAFFICNET_SOURCE_DIR}/TNM_EnumIO.cpp"
    "${TRAFFICNET_SOURCE_DIR}/TNM_Net.cpp"
    "${TRAFFICNET_SOURCE_DIR}/TNM_utility.cpp"
)

target_include_directories(trafficNet
    PUBLIC
        "${TRAFFICNET_SOURCE_DIR}"
        "${CMAKE_CURRENT_SOURCE_DIR}/include/randlib"
)

if(APPLE)
    target_compile_definitions(trafficNet PRIVATE _DARWIN_C_SOURCE)
endif()

add_executable(trafficDriver
    "${TRAFFICDRIVER_SOURCE_DIR}/trafficDriver.cpp"
)

target_include_directories(trafficDriver
    PRIVATE
        "${TRAFFICNET_SOURCE_DIR}"
        "${CMAKE_CURRENT_SOURCE_DIR}/include/randlib"
)

target_link_libraries(trafficDriver PRIVATE trafficNet)
