﻿file(GLOB socket CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/websocket/*.cpp)
file(GLOB recorder CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/recorder/*.cpp)

enable_language(RC)

# Add WIN32 to hide console window
add_executable(germanairlinesva_esp WIN32
    ${socket}
    ${recorder}
    resources/resources-${BIT}.rc
    simconnect.cpp
    main.cpp
)

target_include_directories(germanairlinesva_esp PRIVATE
    ${CMAKE_SOURCE_DIR}/esp/include
    ${CMAKE_SOURCE_DIR}/file/include
    ${CMAKE_SOURCE_DIR}/recorder/include
    ${CMAKE_SOURCE_DIR}/simdata/include
    ${CMAKE_SOURCE_DIR}/websocket/include
    ${CMAKE_SOURCE_DIR}/utilities/include
    ${CMAKE_SOURCE_DIR}/ixwebsocket/include
    ${CMAKE_SOURCE_DIR}/nlohmann/include
    ${CMAKE_SOURCE_DIR}/SimConnect/${BIT}/include
)

target_compile_definitions(germanairlinesva_esp PRIVATE
    BIT="${BIT}"
    IBM
)
if (MSFS)
    target_compile_definitions(germanairlinesva_esp PRIVATE
        MSFS
    )
endif()

target_compile_options(germanairlinesva_esp PRIVATE
    -Wall
    -Wextra
    -pedantic
    -fvisibility=hidden
)
if(DEBUG)
    target_compile_options(germanairlinesva_esp PRIVATE
        -g
    )
    target_link_options(germanairlinesva_esp PRIVATE
        -g
    )
else()
    target_compile_options(germanairlinesva_esp PRIVATE
        -O2
    )
endif()

message("Building for Windows ${BIT} into ${PROJECT_BINARY_DIR}/ESP/${BIT}/${PLUGIN_NAME}")

set_target_properties(germanairlinesva_esp PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/ESP/${BIT}/${PLUGIN_NAME}"
    OUTPUT_NAME "GA Connector"
)

if(DEBUG)
    target_compile_options(germanairlinesva_esp PRIVATE
        -gcodeview
    )
    target_link_options(germanairlinesva_esp PRIVATE
        -Wl,-pdb=
    )
endif()

target_link_libraries(germanairlinesva_esp PRIVATE
    user32
    shell32
    version
    ixwebsocket
    pthread
    ${CMAKE_SOURCE_DIR}/SimConnect/${BIT}/SimConnect.lib
)
