feat: add CMake build configuration and unit tests for XRabbitMQClient

This commit is contained in:
bing
2026-04-03 15:36:34 +08:00
parent b704b006c1
commit fee1555166
58 changed files with 6183 additions and 8 deletions

View File

@@ -0,0 +1,45 @@
{
"version": 3,
"vendor": {
"conan": {}
},
"cmakeMinimumRequired": {
"major": 3,
"minor": 15,
"patch": 0
},
"configurePresets": [
{
"name": "conan-release",
"displayName": "'conan-release' config",
"description": "'conan-release' configure using 'MinGW Makefiles' generator",
"generator": "MinGW Makefiles",
"cacheVariables": {
"CMAKE_SH": "CMAKE_SH-NOTFOUND",
"CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
"CMAKE_BUILD_TYPE": "Release"
},
"environment": {
"PATH": "C:\\Qt\\Qt5.14.2\\Tools\\mingw730_64\\bin;$penv{PATH}"
},
"toolchainFile": "generators\\conan_toolchain.cmake",
"binaryDir": "C:\\Users\\bing\\workspace\\third-party\\XRabbitMQClient\\build\\Release"
}
],
"buildPresets": [
{
"name": "conan-release",
"configurePreset": "conan-release",
"jobs": 12
}
],
"testPresets": [
{
"name": "conan-release",
"configurePreset": "conan-release",
"execution": {
"jobs": 12
}
}
]
}

View File

@@ -0,0 +1,101 @@
macro(conan_find_apple_frameworks FRAMEWORKS_FOUND FRAMEWORKS FRAMEWORKS_DIRS)
if(APPLE)
foreach(_FRAMEWORK ${FRAMEWORKS})
# https://cmake.org/pipermail/cmake-developers/2017-August/030199.html
find_library(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND NAMES ${_FRAMEWORK} PATHS ${FRAMEWORKS_DIRS} CMAKE_FIND_ROOT_PATH_BOTH)
if(CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND)
list(APPEND ${FRAMEWORKS_FOUND} ${CONAN_FRAMEWORK_${_FRAMEWORK}_FOUND})
message(VERBOSE "Framework found! ${FRAMEWORKS_FOUND}")
else()
message(FATAL_ERROR "Framework library ${_FRAMEWORK} not found in paths: ${FRAMEWORKS_DIRS}")
endif()
endforeach()
endif()
endmacro()
function(conan_package_library_targets libraries package_libdir package_bindir library_type
is_host_windows deps_target out_libraries_target config_suffix package_name no_soname_mode)
set(_out_libraries_target "")
foreach(_LIBRARY_NAME ${libraries})
if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT DEFINED MINGW AND CMAKE_VERSION VERSION_LESS "3.29")
# Backport logic from https://github.com/Kitware/CMake/commit/c6efbd78d86798573654d1a791f76de0e71bd93f
# which is only needed on versions older than 3.29
# this allows finding static library files created by meson
# We are not affected by PATH-derived folders, because we call find_library with NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH
set(_original_find_library_suffixes "${CMAKE_FIND_LIBRARY_SUFFIXES}")
set(_original_find_library_prefixes "${CMAKE_FIND_LIBRARY_PREFIXES}")
set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.lib" ".lib" ".a")
endif()
find_library(CONAN_FOUND_LIBRARY NAMES ${_LIBRARY_NAME} PATHS ${package_libdir}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
if(DEFINED _original_find_library_suffixes)
set(CMAKE_FIND_LIBRARY_SUFFIXES "${_original_find_library_suffixes}")
set(CMAKE_FIND_LIBRARY_PREFIXES "${_original_find_library_prefixes}")
unset(_original_find_library_suffixes)
unset(_original_find_library_prefixes)
endif()
if(CONAN_FOUND_LIBRARY)
message(VERBOSE "Conan: Library ${_LIBRARY_NAME} found ${CONAN_FOUND_LIBRARY}")
# Create a micro-target for each lib/a found
# Allow only some characters for the target name
string(REGEX REPLACE "[^A-Za-z0-9.+_-]" "_" _LIBRARY_NAME ${_LIBRARY_NAME})
set(_LIB_NAME CONAN_LIB::${package_name}_${_LIBRARY_NAME}${config_suffix})
if(is_host_windows AND library_type STREQUAL "SHARED")
# Store and reset the variable, so it doesn't leak
set(_OLD_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES})
find_library(CONAN_SHARED_FOUND_LIBRARY NAMES ${_LIBRARY_NAME} PATHS ${package_bindir}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OLD_CMAKE_FIND_LIBRARY_SUFFIXES})
if(NOT CONAN_SHARED_FOUND_LIBRARY)
message(DEBUG "DLL library not found, creating UNKNOWN IMPORTED target, searched for: ${_LIBRARY_NAME}")
if(NOT TARGET ${_LIB_NAME})
add_library(${_LIB_NAME} UNKNOWN IMPORTED)
endif()
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_FOUND_LIBRARY})
else()
if(NOT TARGET ${_LIB_NAME})
add_library(${_LIB_NAME} SHARED IMPORTED)
endif()
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_SHARED_FOUND_LIBRARY})
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_IMPLIB${config_suffix} ${CONAN_FOUND_LIBRARY})
message(DEBUG "Found DLL and STATIC at ${CONAN_SHARED_FOUND_LIBRARY}, ${CONAN_FOUND_LIBRARY}")
endif()
unset(CONAN_SHARED_FOUND_LIBRARY CACHE)
else()
if(NOT TARGET ${_LIB_NAME})
# library_type can be STATIC, still UNKNOWN (if no package type available in the recipe) or SHARED (but no windows)
add_library(${_LIB_NAME} ${library_type} IMPORTED)
endif()
message(DEBUG "Created target ${_LIB_NAME} ${library_type} IMPORTED")
set_target_properties(${_LIB_NAME} PROPERTIES IMPORTED_LOCATION${config_suffix} ${CONAN_FOUND_LIBRARY} IMPORTED_NO_SONAME ${no_soname_mode})
endif()
list(APPEND _out_libraries_target ${_LIB_NAME})
message(VERBOSE "Conan: Found: ${CONAN_FOUND_LIBRARY}")
else()
message(FATAL_ERROR "Library '${_LIBRARY_NAME}' not found in package. If '${_LIBRARY_NAME}' is a system library, declare it with 'cpp_info.system_libs' property")
endif()
unset(CONAN_FOUND_LIBRARY CACHE)
endforeach()
# Add the dependencies target for all the imported libraries
foreach(_T ${_out_libraries_target})
set_property(TARGET ${_T} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${deps_target})
endforeach()
set(${out_libraries_target} ${_out_libraries_target} PARENT_SCOPE)
endfunction()
macro(check_build_type_defined)
# Check that the -DCMAKE_BUILD_TYPE argument is always present
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT isMultiConfig AND NOT CMAKE_BUILD_TYPE)
message(FATAL_ERROR "Please, set the CMAKE_BUILD_TYPE variable when calling to CMake "
"adding the '-DCMAKE_BUILD_TYPE=<build_type>' argument.")
endif()
endmacro()

View File

@@ -0,0 +1,216 @@
# Conan automatically generated toolchain file
# DO NOT EDIT MANUALLY, it will be overwritten
# Avoid including toolchain file several times (bad if appending to variables like
# CMAKE_CXX_FLAGS. See https://github.com/android/ndk/issues/323
include_guard()
message(STATUS "Using Conan toolchain: ${CMAKE_CURRENT_LIST_FILE}")
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeToolchain' generator only works with CMake >= 3.15")
endif()
########## 'user_toolchain' block #############
# Include one or more CMake user toolchain from tools.cmake.cmaketoolchain:user_toolchain
########## 'generic_system' block #############
# Definition of system, platform and toolset
########## 'compilers' block #############
set(CMAKE_C_COMPILER "gcc.exe")
set(CMAKE_CXX_COMPILER "g++.exe")
########## 'arch_flags' block #############
# Define C++ flags, C flags and linker flags from 'settings.arch'
message(STATUS "Conan toolchain: Defining architecture flag: -m64")
string(APPEND CONAN_CXX_FLAGS " -m64")
string(APPEND CONAN_C_FLAGS " -m64")
string(APPEND CONAN_SHARED_LINKER_FLAGS " -m64")
string(APPEND CONAN_EXE_LINKER_FLAGS " -m64")
########## 'rpath_link_flags' block #############
# Pass -rpath-link pointing to all directories with runtime libraries
########## 'libcxx' block #############
# Definition of libcxx from 'compiler.libcxx' setting, defining the
# right CXX_FLAGS for that libcxx
########## 'cppstd' block #############
# Define the C++ and C standards from 'compiler.cppstd' and 'compiler.cstd'
function(conan_modify_std_watch variable access value current_list_file stack)
set(conan_watched_std_variable "17")
if (${variable} STREQUAL "CMAKE_C_STANDARD")
set(conan_watched_std_variable "")
endif()
if ("${access}" STREQUAL "MODIFIED_ACCESS" AND NOT "${value}" STREQUAL "${conan_watched_std_variable}")
message(STATUS "Warning: Standard ${variable} value defined in conan_toolchain.cmake to ${conan_watched_std_variable} has been modified to ${value} by ${current_list_file}")
endif()
unset(conan_watched_std_variable)
endfunction()
message(STATUS "Conan toolchain: C++ Standard 17 with extensions OFF")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
variable_watch(CMAKE_CXX_STANDARD conan_modify_std_watch)
########## 'extra_flags' block #############
# Include extra C++, C and linker flags from configuration tools.build:<type>flags
# and from CMakeToolchain.extra_<type>_flags
# Conan conf flags start:
# Conan conf flags end
########## 'cmake_flags_init' block #############
# Define CMAKE_<XXX>_FLAGS from CONAN_<XXX>_FLAGS
foreach(config IN LISTS CMAKE_CONFIGURATION_TYPES)
string(TOUPPER ${config} config)
if(DEFINED CONAN_CXX_FLAGS_${config})
string(APPEND CMAKE_CXX_FLAGS_${config}_INIT " ${CONAN_CXX_FLAGS_${config}}")
endif()
if(DEFINED CONAN_C_FLAGS_${config})
string(APPEND CMAKE_C_FLAGS_${config}_INIT " ${CONAN_C_FLAGS_${config}}")
endif()
if(DEFINED CONAN_SHARED_LINKER_FLAGS_${config})
string(APPEND CMAKE_SHARED_LINKER_FLAGS_${config}_INIT " ${CONAN_SHARED_LINKER_FLAGS_${config}}")
endif()
if(DEFINED CONAN_EXE_LINKER_FLAGS_${config})
string(APPEND CMAKE_EXE_LINKER_FLAGS_${config}_INIT " ${CONAN_EXE_LINKER_FLAGS_${config}}")
endif()
if(DEFINED CONAN_RC_FLAGS_${config})
string(APPEND CMAKE_RC_FLAGS_${config}_INIT " ${CONAN_RC_FLAGS_${config}}")
endif()
endforeach()
if(DEFINED CONAN_CXX_FLAGS)
string(APPEND CMAKE_CXX_FLAGS_INIT " ${CONAN_CXX_FLAGS}")
endif()
if(DEFINED CONAN_C_FLAGS)
string(APPEND CMAKE_C_FLAGS_INIT " ${CONAN_C_FLAGS}")
endif()
if(DEFINED CONAN_SHARED_LINKER_FLAGS)
string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${CONAN_SHARED_LINKER_FLAGS}")
endif()
if(DEFINED CONAN_EXE_LINKER_FLAGS)
string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${CONAN_EXE_LINKER_FLAGS}")
endif()
if(DEFINED CONAN_RC_FLAGS)
string(APPEND CMAKE_RC_FLAGS_INIT " ${CONAN_RC_FLAGS}")
endif()
if(DEFINED CONAN_OBJCXX_FLAGS)
string(APPEND CMAKE_OBJCXX_FLAGS_INIT " ${CONAN_OBJCXX_FLAGS}")
endif()
if(DEFINED CONAN_OBJC_FLAGS)
string(APPEND CMAKE_OBJC_FLAGS_INIT " ${CONAN_OBJC_FLAGS}")
endif()
########## 'extra_variables' block #############
# Definition of extra CMake variables from tools.cmake.cmaketoolchain:extra_variables
########## 'try_compile' block #############
# Blocks after this one will not be added when running CMake try/checks
get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
if(_CMAKE_IN_TRY_COMPILE)
message(STATUS "Running toolchain IN_TRY_COMPILE")
return()
endif()
########## 'find_paths' block #############
# Define paths to find packages, programs, libraries, etc.
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/conan_cmakedeps_paths.cmake")
message(STATUS "Conan toolchain: Including CMakeConfigDeps generated conan_cmakedeps_paths.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/conan_cmakedeps_paths.cmake")
else()
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
# Definition of CMAKE_MODULE_PATH
# the generators folder (where conan generates files, like this toolchain)
list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
# Definition of CMAKE_PREFIX_PATH, CMAKE_XXXXX_PATH
# The Conan local "generators" folder, where this toolchain is saved.
list(PREPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_LIST_DIR} )
list(PREPEND CMAKE_LIBRARY_PATH "C:/Users/bing/.conan2/p/b/simplda4ffb68beb56/p/lib" "C:/Users/bing/.conan2/p/b/rabbi38371e916c6e4/p/lib")
list(PREPEND CMAKE_INCLUDE_PATH "C:/Users/bing/.conan2/p/b/simplda4ffb68beb56/p/include" "C:/Users/bing/.conan2/p/b/rabbi38371e916c6e4/p/include")
set(CONAN_RUNTIME_LIB_DIRS "C:/Users/bing/.conan2/p/b/simplda4ffb68beb56/p/bin" "C:/Users/bing/.conan2/p/b/rabbi38371e916c6e4/p/bin" )
endif()
########## 'pkg_config' block #############
# Define pkg-config from 'tools.gnu:pkg_config' executable and paths
if (DEFINED ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR};$ENV{PKG_CONFIG_PATH}")
else()
set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR};")
endif()
########## 'rpath' block #############
# Defining CMAKE_SKIP_RPATH
########## 'shared' block #############
# Define BUILD_SHARED_LIBS for shared libraries
message(STATUS "Conan toolchain: Setting BUILD_SHARED_LIBS = OFF")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")
########## 'output_dirs' block #############
# Definition of CMAKE_INSTALL_XXX folders
# Ensure export(PACKAGE) honors CMAKE_EXPORT_PACKAGE_REGISTRY even if the
# project sets cmake_minimum_required() lower than 3.15.
cmake_policy(SET CMP0090 NEW)
if(NOT DEFINED CMAKE_EXPORT_PACKAGE_REGISTRY)
set(CMAKE_EXPORT_PACKAGE_REGISTRY OFF)
endif()
set(CMAKE_INSTALL_BINDIR "bin")
set(CMAKE_INSTALL_SBINDIR "bin")
set(CMAKE_INSTALL_LIBEXECDIR "bin")
set(CMAKE_INSTALL_LIBDIR "lib")
set(CMAKE_INSTALL_INCLUDEDIR "include")
set(CMAKE_INSTALL_OLDINCLUDEDIR "include")
########## 'variables' block #############
# Definition of CMake variables from CMakeToolchain.variables values
# Variables
# Variables per configuration
########## 'preprocessor' block #############
# Preprocessor definitions from CMakeToolchain.preprocessor_definitions values
# Preprocessor definitions per configuration
if(CMAKE_POLICY_DEFAULT_CMP0091) # Avoid unused and not-initialized warnings
endif()

View File

@@ -0,0 +1,2 @@
@echo off
call "%~dp0/conanbuildenv-release-x86_64.bat"

View File

@@ -0,0 +1,30 @@
@echo off
chcp 65001 > nul
@echo off
setlocal
echo @echo off > "%~dp0/deactivate_conanbuildenv-release-x86_64.bat"
echo echo Restoring environment for conanbuildenv-release-x86_64.bat >> "%~dp0/deactivate_conanbuildenv-release-x86_64.bat"
for %%v in (PATH) do (
set foundenvvar=
for /f "delims== tokens=1,2" %%a in ('set') do (
if /I "%%a" == "%%v" (
echo set "%%a=%%b">> "%~dp0/deactivate_conanbuildenv-release-x86_64.bat"
set foundenvvar=1
)
)
if not defined foundenvvar (
echo set %%v=>> "%~dp0/deactivate_conanbuildenv-release-x86_64.bat"
)
)
endlocal
if defined PATH (
set "PATH=C:\Qt\Qt5.14.2\Tools\mingw730_64\bin;%PATH%"
) else (
set "PATH=C:\Qt\Qt5.14.2\Tools\mingw730_64\bin"
)

View File

@@ -0,0 +1,6 @@
message(STATUS "Conan: Using CMakeDeps conandeps_legacy.cmake aggregator via include()")
message(STATUS "Conan: It is recommended to use explicit find_package() per dependency instead")
find_package(simpleamqpclient)
set(CONANDEPS_LEGACY simpleamqpclient::simpleamqpclient )

View File

@@ -0,0 +1,2 @@
@echo off
call "%~dp0/conanrunenv-release-x86_64.bat"

View File

@@ -0,0 +1,24 @@
@echo off
chcp 65001 > nul
@echo off
setlocal
echo @echo off > "%~dp0/deactivate_conanrunenv-release-x86_64.bat"
echo echo Restoring environment for conanrunenv-release-x86_64.bat >> "%~dp0/deactivate_conanrunenv-release-x86_64.bat"
for %%v in () do (
set foundenvvar=
for /f "delims== tokens=1,2" %%a in ('set') do (
if /I "%%a" == "%%v" (
echo set "%%a=%%b">> "%~dp0/deactivate_conanrunenv-release-x86_64.bat"
set foundenvvar=1
)
)
if not defined foundenvvar (
echo set %%v=>> "%~dp0/deactivate_conanrunenv-release-x86_64.bat"
)
)
endlocal

View File

@@ -0,0 +1,2 @@
@echo off
call "%~dp0\deactivate_conanbuildenv-release-x86_64.bat"

View File

@@ -0,0 +1,3 @@
@echo off
echo Restoring environment for conanbuildenv-release-x86_64.bat
set "Path=C:\Program Files\PowerShell\7;C:\Program Files\Microsoft\jdk-21.0.10.7-hotspot\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\CMake\bin;C:\Program Files\nodejs\;C:\Program Files\PowerShell\7\;C:\Program Files\dotnet\;C:\Program Files\OpenSSL-Win64\bin;C:\Users\bing\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\bing\AppData\Local\Programs\Python\Python310\;C:\Users\bing\AppData\Local\Microsoft\WindowsApps;C:\Users\bing\AppData\Local\Programs\Antigravity\bin;C:\Users\bing\AppData\Roaming\npm;C:\Users\bing\.dotnet\tools;C:\Program Files\Microsoft\jdk-21.0.10.7-hotspot\bin;C:\maven\bin;C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin;C:\Qt\Qt5.14.2\Tools\mingw730_64\bin;c:\Users\bing\.antigravity\extensions\ms-python.debugpy-2025.18.0-win32-x64\bundled\scripts\noConfigScripts"

View File

@@ -0,0 +1,2 @@
@echo off
call "%~dp0\deactivate_conanrunenv-release-x86_64.bat"

View File

@@ -0,0 +1,71 @@
# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(rabbitmq-c_FRAMEWORKS_FOUND_RELEASE "") # Will be filled later
conan_find_apple_frameworks(rabbitmq-c_FRAMEWORKS_FOUND_RELEASE "${rabbitmq-c_FRAMEWORKS_RELEASE}" "${rabbitmq-c_FRAMEWORK_DIRS_RELEASE}")
set(rabbitmq-c_LIBRARIES_TARGETS "") # Will be filled later
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET rabbitmq-c_DEPS_TARGET)
add_library(rabbitmq-c_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET rabbitmq-c_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:Release>:${rabbitmq-c_FRAMEWORKS_FOUND_RELEASE}>
$<$<CONFIG:Release>:${rabbitmq-c_SYSTEM_LIBS_RELEASE}>
$<$<CONFIG:Release>:>)
####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### rabbitmq-c_DEPS_TARGET to all of them
conan_package_library_targets("${rabbitmq-c_LIBS_RELEASE}" # libraries
"${rabbitmq-c_LIB_DIRS_RELEASE}" # package_libdir
"${rabbitmq-c_BIN_DIRS_RELEASE}" # package_bindir
"${rabbitmq-c_LIBRARY_TYPE_RELEASE}"
"${rabbitmq-c_IS_HOST_WINDOWS_RELEASE}"
rabbitmq-c_DEPS_TARGET
rabbitmq-c_LIBRARIES_TARGETS # out_libraries_targets
"_RELEASE"
"rabbitmq-c" # package_name
"${rabbitmq-c_NO_SONAME_MODE_RELEASE}") # soname
# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${rabbitmq-c_BUILD_DIRS_RELEASE} ${CMAKE_MODULE_PATH})
########## GLOBAL TARGET PROPERTIES Release ########################################
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:Release>:${rabbitmq-c_OBJECTS_RELEASE}>
$<$<CONFIG:Release>:${rabbitmq-c_LIBRARIES_TARGETS}>
)
if("${rabbitmq-c_LIBS_RELEASE}" STREQUAL "")
# If the package is not declaring any "cpp_info.libs" the package deps, system libs,
# frameworks etc are not linked to the imported targets and we need to do it to the
# global target
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
rabbitmq-c_DEPS_TARGET)
endif()
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_LINK_OPTIONS
$<$<CONFIG:Release>:${rabbitmq-c_LINKER_FLAGS_RELEASE}>)
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<$<CONFIG:Release>:${rabbitmq-c_INCLUDE_DIRS_RELEASE}>)
# Necessary to find LINK shared libraries in Linux
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_LINK_DIRECTORIES
$<$<CONFIG:Release>:${rabbitmq-c_LIB_DIRS_RELEASE}>)
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS
$<$<CONFIG:Release>:${rabbitmq-c_COMPILE_DEFINITIONS_RELEASE}>)
set_property(TARGET rabbitmq-c::rabbitmq-c
APPEND PROPERTY INTERFACE_COMPILE_OPTIONS
$<$<CONFIG:Release>:${rabbitmq-c_COMPILE_OPTIONS_RELEASE}>)
########## For the modules (FindXXX)
set(rabbitmq-c_LIBRARIES_RELEASE rabbitmq-c::rabbitmq-c)

View File

@@ -0,0 +1,21 @@
set(PACKAGE_VERSION "0.11.0")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("0.11.0" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1})
else()
set(CVF_VERSION_MAJOR "0.11.0")
endif()
if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

View File

@@ -0,0 +1,44 @@
########## MACROS ###########################################################################
#############################################################################################
# Requires CMake > 3.15
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15")
endif()
if(rabbitmq-c_FIND_QUIETLY)
set(rabbitmq-c_MESSAGE_MODE VERBOSE)
else()
set(rabbitmq-c_MESSAGE_MODE STATUS)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/rabbitmq-cTargets.cmake)
include(CMakeFindDependencyMacro)
check_build_type_defined()
foreach(_DEPENDENCY ${rabbitmq-c_FIND_DEPENDENCY_NAMES} )
# Check that we have not already called a find_package with the transitive dependency
if(NOT ${_DEPENDENCY}_FOUND)
find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE})
endif()
endforeach()
set(rabbitmq-c_VERSION_STRING "0.11.0")
set(rabbitmq-c_INCLUDE_DIRS ${rabbitmq-c_INCLUDE_DIRS_RELEASE} )
set(rabbitmq-c_INCLUDE_DIR ${rabbitmq-c_INCLUDE_DIRS_RELEASE} )
set(rabbitmq-c_LIBRARIES ${rabbitmq-c_LIBRARIES_RELEASE} )
set(rabbitmq-c_DEFINITIONS ${rabbitmq-c_DEFINITIONS_RELEASE} )
# Definition of extra CMake variables from cmake_extra_variables
# Only the last installed configuration BUILD_MODULES are included to avoid the collision
foreach(_BUILD_MODULE ${rabbitmq-c_BUILD_MODULES_PATHS_RELEASE} )
message(${rabbitmq-c_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'")
include(${_BUILD_MODULE})
endforeach()

View File

@@ -0,0 +1,49 @@
########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG #####################
#############################################################################################
set(rabbitmq-c_COMPONENT_NAMES "")
if(DEFINED rabbitmq-c_FIND_DEPENDENCY_NAMES)
list(APPEND rabbitmq-c_FIND_DEPENDENCY_NAMES )
list(REMOVE_DUPLICATES rabbitmq-c_FIND_DEPENDENCY_NAMES)
else()
set(rabbitmq-c_FIND_DEPENDENCY_NAMES )
endif()
########### VARIABLES #######################################################################
#############################################################################################
set(rabbitmq-c_PACKAGE_FOLDER_RELEASE "C:/Users/bing/.conan2/p/b/rabbi38371e916c6e4/p")
set(rabbitmq-c_BUILD_MODULES_PATHS_RELEASE )
set(rabbitmq-c_INCLUDE_DIRS_RELEASE "${rabbitmq-c_PACKAGE_FOLDER_RELEASE}/include")
set(rabbitmq-c_RES_DIRS_RELEASE )
set(rabbitmq-c_DEFINITIONS_RELEASE "-DAMQP_STATIC")
set(rabbitmq-c_SHARED_LINK_FLAGS_RELEASE )
set(rabbitmq-c_EXE_LINK_FLAGS_RELEASE )
set(rabbitmq-c_OBJECTS_RELEASE )
set(rabbitmq-c_COMPILE_DEFINITIONS_RELEASE "AMQP_STATIC")
set(rabbitmq-c_COMPILE_OPTIONS_C_RELEASE )
set(rabbitmq-c_COMPILE_OPTIONS_CXX_RELEASE )
set(rabbitmq-c_LIB_DIRS_RELEASE "${rabbitmq-c_PACKAGE_FOLDER_RELEASE}/lib")
set(rabbitmq-c_BIN_DIRS_RELEASE )
set(rabbitmq-c_LIBRARY_TYPE_RELEASE STATIC)
set(rabbitmq-c_IS_HOST_WINDOWS_RELEASE 1)
set(rabbitmq-c_LIBS_RELEASE librabbitmq.4)
set(rabbitmq-c_SYSTEM_LIBS_RELEASE ws2_32 crypt32 rpcrt4)
set(rabbitmq-c_FRAMEWORK_DIRS_RELEASE )
set(rabbitmq-c_FRAMEWORKS_RELEASE )
set(rabbitmq-c_BUILD_DIRS_RELEASE )
set(rabbitmq-c_NO_SONAME_MODE_RELEASE FALSE)
# COMPOUND VARIABLES
set(rabbitmq-c_COMPILE_OPTIONS_RELEASE
"$<$<COMPILE_LANGUAGE:CXX>:${rabbitmq-c_COMPILE_OPTIONS_CXX_RELEASE}>"
"$<$<COMPILE_LANGUAGE:C>:${rabbitmq-c_COMPILE_OPTIONS_C_RELEASE}>")
set(rabbitmq-c_LINKER_FLAGS_RELEASE
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${rabbitmq-c_SHARED_LINK_FLAGS_RELEASE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${rabbitmq-c_SHARED_LINK_FLAGS_RELEASE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${rabbitmq-c_EXE_LINK_FLAGS_RELEASE}>")
set(rabbitmq-c_COMPONENTS_RELEASE )

View File

@@ -0,0 +1,25 @@
# Load the debug and release variables
file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/rabbitmq-c-*-data.cmake")
foreach(f ${DATA_FILES})
include(${f})
endforeach()
# Create the targets for all the components
foreach(_COMPONENT ${rabbitmq-c_COMPONENT_NAMES} )
if(NOT TARGET ${_COMPONENT})
add_library(${_COMPONENT} INTERFACE IMPORTED)
message(${rabbitmq-c_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'")
endif()
endforeach()
if(NOT TARGET rabbitmq-c::rabbitmq-c)
add_library(rabbitmq-c::rabbitmq-c INTERFACE IMPORTED)
message(${rabbitmq-c_MESSAGE_MODE} "Conan: Target declared 'rabbitmq-c::rabbitmq-c'")
endif()
# Load the debug and release library finders
file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/rabbitmq-c-Target-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()

View File

@@ -0,0 +1,71 @@
# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(simpleamqpclient_FRAMEWORKS_FOUND_RELEASE "") # Will be filled later
conan_find_apple_frameworks(simpleamqpclient_FRAMEWORKS_FOUND_RELEASE "${simpleamqpclient_FRAMEWORKS_RELEASE}" "${simpleamqpclient_FRAMEWORK_DIRS_RELEASE}")
set(simpleamqpclient_LIBRARIES_TARGETS "") # Will be filled later
######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET simpleamqpclient_DEPS_TARGET)
add_library(simpleamqpclient_DEPS_TARGET INTERFACE IMPORTED)
endif()
set_property(TARGET simpleamqpclient_DEPS_TARGET
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:Release>:${simpleamqpclient_FRAMEWORKS_FOUND_RELEASE}>
$<$<CONFIG:Release>:${simpleamqpclient_SYSTEM_LIBS_RELEASE}>
$<$<CONFIG:Release>:rabbitmq-c::rabbitmq-c>)
####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### simpleamqpclient_DEPS_TARGET to all of them
conan_package_library_targets("${simpleamqpclient_LIBS_RELEASE}" # libraries
"${simpleamqpclient_LIB_DIRS_RELEASE}" # package_libdir
"${simpleamqpclient_BIN_DIRS_RELEASE}" # package_bindir
"${simpleamqpclient_LIBRARY_TYPE_RELEASE}"
"${simpleamqpclient_IS_HOST_WINDOWS_RELEASE}"
simpleamqpclient_DEPS_TARGET
simpleamqpclient_LIBRARIES_TARGETS # out_libraries_targets
"_RELEASE"
"simpleamqpclient" # package_name
"${simpleamqpclient_NO_SONAME_MODE_RELEASE}") # soname
# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${simpleamqpclient_BUILD_DIRS_RELEASE} ${CMAKE_MODULE_PATH})
########## GLOBAL TARGET PROPERTIES Release ########################################
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
$<$<CONFIG:Release>:${simpleamqpclient_OBJECTS_RELEASE}>
$<$<CONFIG:Release>:${simpleamqpclient_LIBRARIES_TARGETS}>
)
if("${simpleamqpclient_LIBS_RELEASE}" STREQUAL "")
# If the package is not declaring any "cpp_info.libs" the package deps, system libs,
# frameworks etc are not linked to the imported targets and we need to do it to the
# global target
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_LINK_LIBRARIES
simpleamqpclient_DEPS_TARGET)
endif()
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_LINK_OPTIONS
$<$<CONFIG:Release>:${simpleamqpclient_LINKER_FLAGS_RELEASE}>)
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<$<CONFIG:Release>:${simpleamqpclient_INCLUDE_DIRS_RELEASE}>)
# Necessary to find LINK shared libraries in Linux
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_LINK_DIRECTORIES
$<$<CONFIG:Release>:${simpleamqpclient_LIB_DIRS_RELEASE}>)
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS
$<$<CONFIG:Release>:${simpleamqpclient_COMPILE_DEFINITIONS_RELEASE}>)
set_property(TARGET simpleamqpclient::simpleamqpclient
APPEND PROPERTY INTERFACE_COMPILE_OPTIONS
$<$<CONFIG:Release>:${simpleamqpclient_COMPILE_OPTIONS_RELEASE}>)
########## For the modules (FindXXX)
set(simpleamqpclient_LIBRARIES_RELEASE simpleamqpclient::simpleamqpclient)

View File

@@ -0,0 +1,21 @@
set(PACKAGE_VERSION "2.5.1")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
if("2.5.1" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR ${CMAKE_MATCH_1})
else()
set(CVF_VERSION_MAJOR "2.5.1")
endif()
if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_COMPATIBLE FALSE)
endif()
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

View File

@@ -0,0 +1,44 @@
########## MACROS ###########################################################################
#############################################################################################
# Requires CMake > 3.15
if(${CMAKE_VERSION} VERSION_LESS "3.15")
message(FATAL_ERROR "The 'CMakeDeps' generator only works with CMake >= 3.15")
endif()
if(simpleamqpclient_FIND_QUIETLY)
set(simpleamqpclient_MESSAGE_MODE VERBOSE)
else()
set(simpleamqpclient_MESSAGE_MODE STATUS)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/cmakedeps_macros.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/simpleamqpclientTargets.cmake)
include(CMakeFindDependencyMacro)
check_build_type_defined()
foreach(_DEPENDENCY ${simpleamqpclient_FIND_DEPENDENCY_NAMES} )
# Check that we have not already called a find_package with the transitive dependency
if(NOT ${_DEPENDENCY}_FOUND)
find_dependency(${_DEPENDENCY} REQUIRED ${${_DEPENDENCY}_FIND_MODE})
endif()
endforeach()
set(simpleamqpclient_VERSION_STRING "2.5.1")
set(simpleamqpclient_INCLUDE_DIRS ${simpleamqpclient_INCLUDE_DIRS_RELEASE} )
set(simpleamqpclient_INCLUDE_DIR ${simpleamqpclient_INCLUDE_DIRS_RELEASE} )
set(simpleamqpclient_LIBRARIES ${simpleamqpclient_LIBRARIES_RELEASE} )
set(simpleamqpclient_DEFINITIONS ${simpleamqpclient_DEFINITIONS_RELEASE} )
# Definition of extra CMake variables from cmake_extra_variables
# Only the last installed configuration BUILD_MODULES are included to avoid the collision
foreach(_BUILD_MODULE ${simpleamqpclient_BUILD_MODULES_PATHS_RELEASE} )
message(${simpleamqpclient_MESSAGE_MODE} "Conan: Including build module from '${_BUILD_MODULE}'")
include(${_BUILD_MODULE})
endforeach()

View File

@@ -0,0 +1,50 @@
########### AGGREGATED COMPONENTS AND DEPENDENCIES FOR THE MULTI CONFIG #####################
#############################################################################################
set(simpleamqpclient_COMPONENT_NAMES "")
if(DEFINED simpleamqpclient_FIND_DEPENDENCY_NAMES)
list(APPEND simpleamqpclient_FIND_DEPENDENCY_NAMES rabbitmq-c)
list(REMOVE_DUPLICATES simpleamqpclient_FIND_DEPENDENCY_NAMES)
else()
set(simpleamqpclient_FIND_DEPENDENCY_NAMES rabbitmq-c)
endif()
set(rabbitmq-c_FIND_MODE "NO_MODULE")
########### VARIABLES #######################################################################
#############################################################################################
set(simpleamqpclient_PACKAGE_FOLDER_RELEASE "C:/Users/bing/.conan2/p/b/simplda4ffb68beb56/p")
set(simpleamqpclient_BUILD_MODULES_PATHS_RELEASE )
set(simpleamqpclient_INCLUDE_DIRS_RELEASE "${simpleamqpclient_PACKAGE_FOLDER_RELEASE}/include")
set(simpleamqpclient_RES_DIRS_RELEASE )
set(simpleamqpclient_DEFINITIONS_RELEASE "-DSimpleAmqpClient_STATIC")
set(simpleamqpclient_SHARED_LINK_FLAGS_RELEASE )
set(simpleamqpclient_EXE_LINK_FLAGS_RELEASE )
set(simpleamqpclient_OBJECTS_RELEASE )
set(simpleamqpclient_COMPILE_DEFINITIONS_RELEASE "SimpleAmqpClient_STATIC")
set(simpleamqpclient_COMPILE_OPTIONS_C_RELEASE )
set(simpleamqpclient_COMPILE_OPTIONS_CXX_RELEASE )
set(simpleamqpclient_LIB_DIRS_RELEASE "${simpleamqpclient_PACKAGE_FOLDER_RELEASE}/lib")
set(simpleamqpclient_BIN_DIRS_RELEASE )
set(simpleamqpclient_LIBRARY_TYPE_RELEASE STATIC)
set(simpleamqpclient_IS_HOST_WINDOWS_RELEASE 1)
set(simpleamqpclient_LIBS_RELEASE SimpleAmqpClient)
set(simpleamqpclient_SYSTEM_LIBS_RELEASE ws2_32)
set(simpleamqpclient_FRAMEWORK_DIRS_RELEASE )
set(simpleamqpclient_FRAMEWORKS_RELEASE )
set(simpleamqpclient_BUILD_DIRS_RELEASE )
set(simpleamqpclient_NO_SONAME_MODE_RELEASE FALSE)
# COMPOUND VARIABLES
set(simpleamqpclient_COMPILE_OPTIONS_RELEASE
"$<$<COMPILE_LANGUAGE:CXX>:${simpleamqpclient_COMPILE_OPTIONS_CXX_RELEASE}>"
"$<$<COMPILE_LANGUAGE:C>:${simpleamqpclient_COMPILE_OPTIONS_C_RELEASE}>")
set(simpleamqpclient_LINKER_FLAGS_RELEASE
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:${simpleamqpclient_SHARED_LINK_FLAGS_RELEASE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY>:${simpleamqpclient_SHARED_LINK_FLAGS_RELEASE}>"
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:${simpleamqpclient_EXE_LINK_FLAGS_RELEASE}>")
set(simpleamqpclient_COMPONENTS_RELEASE )

View File

@@ -0,0 +1,25 @@
# Load the debug and release variables
file(GLOB DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/simpleamqpclient-*-data.cmake")
foreach(f ${DATA_FILES})
include(${f})
endforeach()
# Create the targets for all the components
foreach(_COMPONENT ${simpleamqpclient_COMPONENT_NAMES} )
if(NOT TARGET ${_COMPONENT})
add_library(${_COMPONENT} INTERFACE IMPORTED)
message(${simpleamqpclient_MESSAGE_MODE} "Conan: Component target declared '${_COMPONENT}'")
endif()
endforeach()
if(NOT TARGET simpleamqpclient::simpleamqpclient)
add_library(simpleamqpclient::simpleamqpclient INTERFACE IMPORTED)
message(${simpleamqpclient_MESSAGE_MODE} "Conan: Target declared 'simpleamqpclient::simpleamqpclient'")
endif()
# Load the debug and release library finders
file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/simpleamqpclient-Target-*.cmake")
foreach(f ${CONFIG_FILES})
include(${f})
endforeach()