# Initialize ######################################################################################

Include                     ( cotire        OPTIONAL RESULT_VARIABLE HAS_COTIRE )
Include                     ( pedantic      OPTIONAL RESULT_VARIABLE HAS_PEDANTIC )
Include                     ( strip_symbols OPTIONAL RESULT_VARIABLE HAS_STRIP_SYMBOLS )

Find_Package                ( cppcore REQUIRED )

# Interface Library ###############################################################################

Set                         ( CPPARGS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include )
Add_Library                 ( cppargs INTERFACE )
Target_Include_Directories  ( cppargs
                              INTERFACE
                                $<BUILD_INTERFACE:${CPPARGS_INCLUDE_DIR}>
                                $<INSTALL_INTERFACE:${CPPARGS_INSTALL_DIR_INCLUDE}> )
Target_Link_Libraries       ( cppargs
                              INTERFACE
                                cppcore::cppcore )

# Install #########################################################################################

Set                         ( CPPARGS_HAS_EXPORT False PARENT_SCOPE )

# Header
If                          ( CPPARGS_INSTALL_HEADER )
    Set                         ( CPPARGS_HAS_EXPORT True PARENT_SCOPE )
    Install                     ( FILES ${CPPARGS_INCLUDE_DIR}/cppargs.h
                                  DESTINATION ${CPPARGS_INSTALL_DIR_INCLUDE} )
    Install                     ( DIRECTORY ${CPPARGS_INCLUDE_DIR}/cppargs
                                  DESTINATION ${CPPARGS_INSTALL_DIR_INCLUDE} )
    Install                     ( TARGETS cppargs
                                  EXPORT cppargs
                                  DESTINATION ${CPPCORE_INSTALL_DIR_INCLUDE} )
EndIf                       ( )
