cmake_minimum_required(VERSION 3.15)

set(CMAKE_CXX_STANDARD 17)

option(CG_DISABLE_DEBUG_LOGS "Disable debug logs" OFF)
option(CG_DISABLE_INFO_LOGS "Disable info logs" OFF)
option(CG_DISABLE_WARNING_LOGS "Disable warning logs" OFF)
option(CG_DISABLE_ERROR_LOGS "Disable error logs" OFF)
option(CG_DISABLE_FATAL_LOGS "Disable fatal logs" OFF)
option(CG_DISABLE_TRACE_LOGS "Disable trace logs" OFF)
option(CG_DISABLE_VERBOSE_LOGS "Disable verbose logs" OFF)


find_path(ELPP_INCLUDE_DIR NAMES elpp/easylogging.hpp PATHS include)

set(ELPP_LIB elpp_lib CACHE FILEPATH "")

add_library(${ELPP_LIB} STATIC src/easylogging.cpp)

message("## EASYLOGGING INCLUDE_DIR: ${ELPP_INCLUDE_DIR}")

target_include_directories(${ELPP_LIB} PRIVATE ${ELPP_INCLUDE_DIR})


if (CG_DISABLE_DEBUG_LOGS)
    message("### Disabling debug logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_DEBUG_LOGS)
endif()
if (CG_DISABLE_INFO_LOGS)
    message("### Disabling debug logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_INFO_LOGS)
endif()
if (CG_DISABLE_WARNING_LOGS)
    message("### Disabling warning logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_WARNING_LOGS)
endif()
if (CG_DISABLE_ERROR_LOGS)
    message("### Disabling error logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_ERROR_LOGS)
endif()
if (CG_DISABLE_FATAL_LOGS)
    message("### Disabling fatal logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_FATAL_LOGS)
endif()
if (CG_DISABLE_TRACE_LOGS)
    message("### Disabling trace logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_TRACE_LOGS)
endif()
if (CG_DISABLE_VERBOSE_LOGS)
    message("### Disabling verbose logs")
    target_compile_definitions(${ELPP_LIB} PUBLIC ELPP_DISABLE_VERBOSE_LOGS)
endif()

mark_as_advanced(${ELPP_INCLUDE_DIR} ${ELPP_LIB})
