 f441f72b75
			
		
	
	f441f72b75
	
	
	
		
			
			The 0.6.0 version of librabbitmq-c added two parameters to amqp_exchange_declare which allow auto-deleted and internal exchanges. This change requires more advanced version detection so that code could be conditionally compiled for newer versions of the library.
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # This CMake file tries to find the the RabbitMQ 0.5 library
 | |
| # The following variables are set:
 | |
| # RABBITMQ_FOUND - System has RabbitMQ client
 | |
| # RABBITMQ_LIBRARIES - The RabbitMQ client library
 | |
| # RABBITMQ_HEADERS - The RabbitMQ client headers
 | |
| 
 | |
| include(CheckCSourceCompiles)
 | |
| find_library(RABBITMQ_LIBRARIES NAMES rabbitmq)
 | |
| find_path(RABBITMQ_HEADERS amqp.h)
 | |
| 
 | |
| if(${RABBITMQ_LIBRARIES} MATCHES "NOTFOUND")
 | |
|   set(RABBITMQ_FOUND FALSE CACHE INTERNAL "")
 | |
|   message(STATUS "RabbitMQ library not found.")
 | |
|   unset(RABBITMQ_LIBRARIES)
 | |
| else()
 | |
|   set(RABBITMQ_FOUND TRUE CACHE INTERNAL "")
 | |
| endif()
 | |
| 
 | |
| if(RABBITMQ_FOUND)
 | |
|   set(CMAKE_REQUIRED_INCLUDES ${RABBITMQ_HEADERS})
 | |
| 
 | |
|   check_c_source_compiles("#include <amqp.h>\n int main(){if(AMQP_DELIVERY_PERSISTENT){return 0;}return 1;}" HAVE_RABBITMQ50)
 | |
| 
 | |
|   if(HAVE_RABBITMQ50)
 | |
|     execute_process(COMMAND grep "#define *AMQP_VERSION_MAJOR" "${RABBITMQ_HEADERS}/amqp.h"
 | |
|       COMMAND sed -e "s/.* //"
 | |
|       OUTPUT_VARIABLE AMQP_VERSION_MAJOR
 | |
|       OUTPUT_STRIP_TRAILING_WHITESPACE)
 | |
|     execute_process(COMMAND grep "#define *AMQP_VERSION_MINOR" "${RABBITMQ_HEADERS}/amqp.h"
 | |
|       COMMAND sed -e "s/.* //"
 | |
|       OUTPUT_VARIABLE AMQP_VERSION_MINOR
 | |
|       OUTPUT_STRIP_TRAILING_WHITESPACE)
 | |
|     execute_process(COMMAND grep  "#define *AMQP_VERSION_PATCH" "${RABBITMQ_HEADERS}/amqp.h"
 | |
|       COMMAND sed -e "s/.* //"
 | |
|       OUTPUT_VARIABLE AMQP_VERSION_PATCH
 | |
|       OUTPUT_STRIP_TRAILING_WHITESPACE)
 | |
| 
 | |
|     set(AMQP_VERSION "${AMQP_VERSION_MAJOR}.${AMQP_VERSION_MINOR}.${AMQP_VERSION_PATCH}")
 | |
| 
 | |
|     if(NOT "${AMQP_VERSION}" VERSION_LESS "0.6.0")
 | |
|       add_definitions(-DRABBITMQ_060)
 | |
|     endif()
 | |
| 
 | |
|     message(STATUS "Found RabbitMQ version ${AMQP_VERSION}: ${RABBITMQ_LIBRARIES}")
 | |
|     message(STATUS "Found RabbitMQ development headers at: ${RABBITMQ_HEADERS}")
 | |
| 
 | |
|   else()
 | |
|     message(WARNING "RabbitMQ-C library does not have AMQP_DELIVERY_PERSISTENT. Version 0.5 or newer is required but version ${AMQP_VERSION} was found.")
 | |
|   endif()
 | |
| 
 | |
| endif()
 |