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

Include                     ( cotire OPTIONAL )
Include                     ( pedantic OPTIONAL )
Include                     ( strip_symbols OPTIONAL )

Include                     ( ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/options.cmake )

Set                         ( BUILD_SHARED_LIBS ${CPPAMQP_BUILD_SHARED} )
Set                         ( CMAKE_CXX_STANDARD 17 )
Set                         ( CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   ${PEDANTIC_C_FLAGS}" )
Set                         ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PEDANTIC_CXX_FLAGS}" )

# Dependencies ####################################################################################

Find_Package                ( cpputils REQUIRED )
Find_Package                ( rabbitmq REQUIRED )

# Project: cppamqp ###############################################################################

# Build
Project                     ( cppamqp VERSION 1.0.0.0 LANGUAGES CXX )
Set                         ( CPPAMQP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include )
File                        ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )
Add_Library                 ( cppamqp ${SOURCE_FILES} )
Target_Include_Directories  ( cppamqp
                              PUBLIC ${CPPAMQP_INCLUDE_DIR} )
Target_Link_Libraries       ( cppamqp
                              cpputils
                              rabbitmq )

# Install
If                          ( BUILD_SHARED_LIBS OR CPPAMQP_INSTALL_DEV_FILES )
    Install                     ( TARGETS cppamqp DESTINATION lib )
EndIf                       ( )

If                          ( CPPAMQP_INSTALL_DEV_FILES )
    Install                     ( FILES ${CPPAMQP_INCLUDE_DIR}/cppamqp.h DESTINATION include )
    Install                     ( DIRECTORY ${CPPAMQP_INCLUDE_DIR}/cppamqp DESTINATION include )
EndIf                       ( )

# Optimize
If                          ( __COTIRE_INCLUDED )
    Cotire                      ( cppamqp )
EndIf                       ( )
If                          ( __STRIP_SYMBOLS_INCLUDED AND BUILD_SHARED_LIBS )
    Strip_Symbols               ( cppamqp DBG_FILE )
EndIf                       ()
