cmake_minimum_required(VERSION 3.26)

project(Bin2CPP VERSION 1.0.0
                DESCRIPTION "Bin2CPP"
                LANGUAGES CXX)

set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)

get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)

include(${CMAKE_SOURCE_DIR}/CMake/CustomTargets.cmake)
include(${CMAKE_SOURCE_DIR}/CMake/FindDependencies.cmake)

set(CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug" CACHE STRING "" FORCE)

option(BUILD_TESTS OFF)
option(ASAN OFF)
option(COVERAGE OFF)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_OPTIMIZE_DEPENDENCIES 1)

if(BUILD_TESTS)
    enable_testing()
endif()

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH "\${ORIGIN}")

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Sources)
if(${BUILD_TESTS})
    add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bin2CPP/Tests)
endif()