cmake_minimum_required(VERSION 3.14)
if(${CMAKE_VERSION} VERSION_LESS 3.18)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
else()
cmake_policy(VERSION 3.18)
endif()

option(ENABLE_CXX20	    "Enable C++20 Core"         OFF)
option(ENABLE_CXX17	    "Enable C++17 Core"         OFF)
option(ENABLE_CXX14	    "Enable C++14 Core"         OFF)
option(ENABLE_CXX11	    "Enable C++11 Core"         OFF)

set(BaseName "binary" CACHE STRING "BaseName chosen by the user at CMake configure time")
set_property(CACHE BaseName PROPERTY STRINGS binary octal decimal hexadecimal)

option(USE_BOOST	    "Use Boost library"         OFF)
option(USE_STL		    "Use Boost library"         OFF)
option(USE_CELL_OPTIMIZE    "Use Cell Engine Optimizer" OFF)
option(USE_CELL_LOGGER	    "Use Cell Enhine Methods"   OFF)
option(USE_CURL		    "Use Curl library"          OFF)
option(USE_OPENSSL	    "Use OpenSSL library"       OFF)
option(USE_SSL_METHOD	    "Use Https/SSL system"      OFF)
option(BUILD_SHARED_LIBS    "Enable compilation of shared libraries"		    FALSE)
option(ENABLE_TESTING	    "Enable the building of the test"			    FALSE)
option(ENABLE_CLANG_TIDY    "Enable testing with clang-tidy"			    FALSE)
option(ENABLE_CPPCHECK	    "Enable testing with cppcheck"			    FALSE)
option(SIMPLE_BUILD	    "Build the project as minimally as possible"	    FALSE)
option(ENABLE_ASAN	    "Enable address sanitizer"				    FALSE)
option(BUILD_DOC	    "Build the project's documentation"			    ON)
option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)."  TRUE)
option(ENABLE_SAFE_ONLY	    "Enable the building for safty codes only!"		    FALSE)
option(ENABLE_SAFTY_MODE    "Enable safty warning mode reporting for compilers."    FALSE)
option(DEBUG_LOGGING	    "Enabling debug logging" FALSE)
