# Initialize CMake ################################################################################

CMake_Minimum_Required              ( VERSION 3.12.0 FATAL_ERROR )

# Set CMAKE_BUILD_TYPE
If                                  ( NOT CMAKE_BUILD_TYPE )
    Set                                 ( CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build!" FORCE )
EndIf                               ( NOT CMAKE_BUILD_TYPE )
Set_Property                        ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel )

# Set CMAKE_MODULE_PATH
If                                  ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
    Set                                 ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
                                                            "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
EndIf                               ( )
If                                  ( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" )
    Set                                 ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
                                                            "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/cmake" )
EndIf                               ( )

# Project #########################################################################################

Include                             ( GNUInstallDirs )
Include                             ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/helloworld-options.cmake )
Include                             ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/helloworld-const.cmake )
Include                             ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/helloworld-var.cmake )
Project                             ( ${HELLOWORLD_PROJECT_NAME}
                                      DESCRIPTION "${HELLOWORLD_PROJECT_DESCRIPTION}"
                                      VERSION "${HELLOWORLD_VERSION}" )
Include                             ( CTest )

# Subdirectories
Add_SubDirectory                    ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
Add_SubDirectory                    ( ${CMAKE_CURRENT_SOURCE_DIR}/test )
