cmake_minimum_required(VERSION 3.10.0)
project(SimulateurFranceVote VERSION 0.1.0 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

file(GLOB_RECURSE
    SRCS
    src/*
)

# ------- Inclusion de JSONfMC++ --------
# JSONfMC++ Lib pour gestion fichier JSON, en mode header only.
set(JSONlib_DIR ./lib/CMake/Linux)
find_package(JSONlib REQUIRED)

if(JSONlib_FOUND)
    message("lib JSONFMC++ Trouvé")
else()
    message("lib JSONFMC++ Introuvable")
endif()
# ---------------------------------------

# ------- Inclusion de JSON-Schema-Validator --------
# JSON-Schema-Validator Lib pour valider les fichier JSON, en mode header only.
if(WIN32)
    set(JSON_SCHEMA_VALIDATOR_DIR  ./lib/CMake/Windows)
else()
    set(JSON_SCHEMA_VALIDATOR_DIR ./lib/CMake/Linux)
endif()

find_package(JSON_SCHEMA_VALIDATOR  REQUIRED)

if(JSON_SCHEMA_VALIDATOR_FOUND)
    message("lib JSON_Schema_Validator Trouvé")
else()
    message("lib JSON_Schema_Validator Introuvable")
endif()
# ---------------------------------------

# ------- Inclusion de httplib --------
# httplib Lib pour gestion des requetes web en mode header only.
if(WIN32)
    set(HTTPlib_DIR ./lib/CMake/Windows)
else()
    set(HTTPlib_DIR ./lib/CMake/Linux)
endif()

find_package(HTTPlib REQUIRED)

if(HTTPlib_FOUND)
    message("lib HTTP Trouvé")
else()
    message("lib HTTP Introuvable")
endif()
# ---------------------------------------

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})

add_executable(SimulateurFranceVote ${SRCS})

include_directories(${JSONFMCPP_INCLUDE_DIRS})
include_directories(${JSON_SCHEMA_VALIDATOR_INCLUDE_DIRS})
include_directories(${HTTPLIB_INCLUDE_DIRS})


#target_link_libraries(SimulateurFranceVote
#    debug ${JSON_SCHEMA_VALIDATOR_LIBRARIES}
#    optimized ${JSON_SCHEMA_VALIDATOR_LIBRARIES} 
#)