# ===========================================================================
# include/CMakeLists.txt
# ----------------------
#
# Module for creatign the CppUtilities library target.
# ---------------------------------------------------------------------------
#
# author : Emanuele Parisi
# ===========================================================================

include(GNUInstallDirs)

# ---------------------------------------------------------------------------
# Configure the library global target CppUtilities::CppUtilities.
# ---------------------------------------------------------------------------

add_library(CppUtilities
            INTERFACE)
target_include_directories(CppUtilities
                           INTERFACE
                           $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
                           $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_link_libraries(CppUtilities
                      INTERFACE)
target_compile_features(CppUtilities
                        INTERFACE
                        cxx_noexcept)
target_compile_options (CppUtilities
                        INTERFACE
                        $<$<CONFIG:Debug>:-pedantic
                        -Wall
                        -Wextra>)
target_compile_definitions(CppUtilities
                           INTERFACE
                           -DCMAKE_CXX_STANDARD=14
                           -DCMAKE_STANDARD_REQUIRED=ON)
add_library(CppUtilities::CppUtilities
            ALIAS
            CppUtilities)

# ---------------------------------------------------------------------------
# Configure library target installation.
# ---------------------------------------------------------------------------

install(TARGETS CppUtilities
        EXPORT CppUtilitiesExport
        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
