diff options
| author | Michael Heyman <mheyman@gmail.com> | 2021-10-11 13:19:49 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-11 10:19:49 -0700 |
| commit | 4ce045cdc24d31a38d2a9b02b5e16b30d4d9947b (patch) | |
| tree | d26852b3e20aa01d3720514c1a19e6f4914bb926 | |
| parent | 6ff166cc3e7242a4be699d9c847a834c0d981223 (diff) | |
| download | vcpkg-4ce045cdc24d31a38d2a9b02b5e16b30d4d9947b.tar.gz vcpkg-4ce045cdc24d31a38d2a9b02b5e16b30d4d9947b.zip | |
[activemq-cpp] support linux (#19789)
@PhoebeHui
> * I think we need a discussion about unofficial being in the namespace
I still want to discuss this
| -rw-r--r-- | ports/activemq-cpp/activemq-cppConfig.cmake | 319 | ||||
| -rw-r--r-- | ports/activemq-cpp/fix-crt-linkage-dyn.patch | 36 | ||||
| -rw-r--r-- | ports/activemq-cpp/portfile.cmake | 177 | ||||
| -rw-r--r-- | ports/activemq-cpp/vcpkg.json | 6 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 1 | ||||
| -rw-r--r-- | versions/a-/activemq-cpp.json | 5 | ||||
| -rw-r--r-- | versions/baseline.json | 2 |
7 files changed, 470 insertions, 76 deletions
diff --git a/ports/activemq-cpp/activemq-cppConfig.cmake b/ports/activemq-cpp/activemq-cppConfig.cmake new file mode 100644 index 000000000..5719f9b6b --- /dev/null +++ b/ports/activemq-cpp/activemq-cppConfig.cmake @@ -0,0 +1,319 @@ +set(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}")
+foreach(i RANGE 1 2)
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+ if (_IMPORT_PREFIX STREQUAL "/")
+ set(_IMPORT_PREFIX "")
+ break()
+ endif()
+endforeach()
+
+# Macro to find OS dependencies for windows builds.
+# Sets up for failure find_package() failure if dependencies not found.
+# On success, creates targets unofficial::activemq-cpp::ws2, unofficial::activemq-cpp::rpcrt4, and unofficial::activemq-cpp::mswsock.
+# Sets boolean ${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND to TRUE or FALSE to indicate success or failure.
+macro(_activemq_cpp_windows_dependencies)
+ find_library(ACTIVEMQ_CPP_LIBWS2 WS2_32)
+ find_file(ACTIVEMQ_CPP_DLLWS2 WS2_32.dll)
+ find_library(ACTIVEMQ_CPP_LIBRPCRT4 RpcRT4)
+ find_file(ACTIVEMQ_CPP_DLLRPCRT4 RpcRT4.dll)
+ find_library(ACTIVEMQ_CPP_LIBMSWSOCK MsWsock)
+ find_file(ACTIVEMQ_CPP_DLLMSWSOCK MsWsock.dll)
+ if(ACTIVEMQ_CPP_LIBWS2 AND ACTIVEMQ_CPP_DLLWS2 AND ACTIVEMQ_CPP_LIBRPCRT4 AND ACTIVEMQ_CPP_DLLRPCRT4 AND ACTIVEMQ_CPP_LIBMSWSOCK AND ACTIVEMQ_CPP_DLLMSWSOCK)
+ add_library(unofficial::activemq-cpp::ws2 SHARED IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::ws2
+ PROPERTIES
+ IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLWS2}"
+ IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBWS2}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ )
+ add_library(unofficial::activemq-cpp::rpcrt4 SHARED IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::rpcrt4
+ PROPERTIES
+ IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLRPCRT4}"
+ IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBRPCRT4}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ )
+ add_library(unofficial::activemq-cpp::mswsock SHARED IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::mswsock
+ PROPERTIES
+ IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLMSWSOCK}"
+ IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBMSWSOCK}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ )
+ set(${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND TRUE)
+ else()
+ if (NOT ACTIVEMQ_CPP_LIBWS2)
+ list(APPEND _ACTIVEMQ_CPP_MISSINGS "WS2_32.lib")
+ endif()
+ if (NOT ACTIVEMQ_CPP_DLLWS2)
+ list(APPEND _ACTIVEMQ_CPP_MISSINGS "WS2_32.dll")
+ endif()
+ if (NOT ACTIVEMQ_CPP_LIBRPCRT4)
+ list(APPEND _ACTIVEMQ_CPP_MISSINGS "RpcRT4.lib")
+ endif()
+ if (NOT ACTIVEMQ_CPP_DLLRPCRT4)
+ list(APPEND _ACTIVEMQ_CPP_MISSINGS "RpcRT4.dll")
+ endif()
+ if (NOT ACTIVEMQ_CPP_LIBMSWSOCK)
+ list(APPEND _ACTIVEMQ_CPP_MISSINGS "MsWsock.lib")
+ endif()
+ if (NOT ACTIVEMQ_CPP_DLLMSWSOCK)
+ list(APPEND _ACTIVEMQ_CPP_MISSINGS "MsWsock.dll")
+ endif()
+ list(JOIN _ACTIVEMQ_CPP_MISSINGS ", " _ACTIVEMQ_CPP_MISSINGS_STR)
+ list(LENGTH _ACTIVEMQ_CPP_MISSINGS _ACTIVEMQ_CPP_MISSINGS_COUNT)
+ if(_ACTIVEMQ_CPP_MISSINGS_COUNT EQUALS 1)
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: Did not find windows dependency: ${_ACTIVEMQ_CPP_MISSINGS_STR}")
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: Did not find windows dependencies: ${_ACTIVEMQ_CPP_MISSINGS_STR}")
+ endif()
+ set(_ACTIVEMQ_CPP_MISSINGS_COUNT)
+ set(_ACTIVEMQ_CPP_MISSINGS_STR)
+ set(_ACTIVEMQ_CPP_MISSINGS)
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ set(${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND FALSE)
+ endif()
+endmacro()
+
+# Set the variable named VARNAME to "${FILE}" if the file FILE exists; clears it
+# otherwise. Opposite for VARNAME_MISSING.
+function(_set_exists VARNAME VARNAME_MISSING FILE)
+ if (EXISTS "${FILE}")
+ set(${VARNAME} "${FILE}" PARENT_SCOPE)
+ unset(${VARNAME_MISSING} PARENT_SCOPE)
+ else()
+ set(${VARNAME_MISSING} "${FILE}" PARENT_SCOPE)
+ unset(${VARNAME} PARENT_SCOPE)
+ endif()
+endfunction()
+
+# Add the unofficial::activemq-cpp::apr and unofficial::activemq-cpp::activemq-cpp targets
+# Doesn't work for Windows DLL installs because that takes more args...
+function(_add_apr_and_amq_targets INC_PARENT LIB_TYPE APR_REL APR_DEB AMQ_REL AMQ_DEB DEPS)
+ # the APR port doesn't have a CMake config target so create one
+ add_library(unofficial::activemq-cpp::apr ${LIB_TYPE} IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::apr
+ PROPERTIES
+ MAP_IMPORTED_CONFIG_MINSIZEREL Release
+ MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+ IMPORTED_LOCATION_RELEASE "${APR_REL}"
+ IMPORTED_LOCATION_DEBUG "${APR_DEB}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ INTERFACE_INCLUDE_DIRECTORIES "${INC_PARENT}/include"
+ )
+
+ # the create the activemq-cpp CMake config target with a dependency on apr
+ add_library(unofficial::activemq-cpp::activemq-cpp ${LIB_TYPE} IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::activemq-cpp
+ PROPERTIES
+ MAP_IMPORTED_CONFIG_MINSIZEREL Release
+ MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+ IMPORTED_LOCATION_DEBUG "${AMQ_DEB}"
+ IMPORTED_LOCATION_RELEASE "${AMQ_REL}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ INTERFACE_INCLUDE_DIRECTORIES "${INC_PARENT}/include"
+ INTERFACE_LINK_LIBRARIES "${DEPS}"
+ )
+endfunction()
+
+#
+# Since this is a CMake config file for a non-CMake project, and one that is
+# for vcpkg to as well, the config file has to cover the various products of
+# the builds on the various platforms.
+#
+# Below, Windows and Linux are covered for static and shared libraries.
+#
+_set_exists(ACTIVEMQ_CPP_DLL_RELEASE _ACTIVEMQ_CPP_DLL_RELEASE_MISSING "${_IMPORT_PREFIX}/bin/activemq-cpp.dll")
+_set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/activemq-cpp.lib")
+_set_exists(ACTIVEMQ_CPP_DLL_DEBUG _ACTIVEMQ_CPP_DLL_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/bin/activemq-cppd.dll")
+_set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/activemq-cppd.lib")
+if (ACTIVEMQ_CPP_DLL_RELEASE)
+ #
+ # Windows shared install
+ #
+ if (ACTIVEMQ_CPP_LIB_RELEASE AND ACTIVEMQ_CPP_DLL_DEBUG AND ACTIVEMQ_CPP_LIB_DEBUG)
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.lib")
+ _set_exists(ACTIVEMQ_CPP_APR_DLL_RELEASE _ACTIVEMQ_CPP_APR_DLL_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.dll")
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.lib")
+ _set_exists(ACTIVEMQ_CPP_APR_DLL_DEBUG _ACTIVEMQ_CPP_APR_DLL_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.dll")
+ if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_DLL_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG AND ACTIVEMQ_CPP_APR_DLL_DEBUG)
+ _activemq_cpp_windows_dependencies()
+ if (${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND)
+ # the APR port doesn't have a CMake config target so create one
+ add_library(unofficial::activemq-cpp::apr SHARED IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::apr
+ PROPERTIES
+ MAP_IMPORTED_CONFIG_MINSIZEREL Release
+ MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+ IMPORTED_LOCATION_RELEASE "${ACTIVEMQ_CPP_APR_DLL_RELEASE}"
+ IMPORTED_IMPLIB_RELEASE "${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
+ IMPORTED_LOCATION_DEBUG "${ACTIVEMQ_CPP_APR_DLL_DEBUG}"
+ IMPORTED_IMPLIB_DEBUG "${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ )
+
+ # the create the activemq-cpp CMake config target with a dependency on apr
+ add_library(unofficial::activemq-cpp::activemq-cpp SHARED IMPORTED)
+ set_target_properties(unofficial::activemq-cpp::activemq-cpp
+ PROPERTIES
+ MAP_IMPORTED_CONFIG_MINSIZEREL Release
+ MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
+ IMPORTED_LOCATION_RELEASE "${ACTIVEMQ_CPP_DLL_RELEASE}"
+ IMPORTED_IMPLIB_RELEASE "${ACTIVEMQ_CPP_LIB_RELEASE}"
+ IMPORTED_LOCATION_DEBUG "${ACTIVEMQ_CPP_DLL_DEBUG}"
+ IMPORTED_IMPLIB_DEBUG "${ACTIVEMQ_CPP_LIB_DEBUG}"
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ INTERFACE_LINK_LIBRARIES "unofficial::activemq-cpp::apr;unofficial::activemq-cpp::ws2;unofficial::activemq-cpp::rpcrt4;unofficial::activemq-cpp::mswsock"
+ )
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
+ foreach(_MISSING
+ ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING}
+ ${_ACTIVEMQ_CPP_APR_DLL_RELEASE_MISSING}
+ ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING}
+ ${_ACTIVEMQ_CPP_APR_DLL_DEBUG_MISSING}
+ )
+ string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
+ endforeach()
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ set(activemq-cppConfig_FOUND TRUE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${_IMPORT_PREFIX}debug/bin/activemq-cppd.dll.")
+ foreach(_MISSING
+ ${_ACTIVEMQ_CPP_LIB_RELEASE_MISSING}
+ ${_ACTIVEMQ_CPP_DLL_DEBUG_MISSING}
+ ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING})
+ string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
+ endforeach()
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+else()
+ #
+ # not Windows shared install
+ #
+ _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.lib")
+ _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.lib")
+ if (ACTIVEMQ_CPP_LIB_RELEASE)
+ #
+ # Windows static install
+ #
+ if (ACTIVEMQ_CPP_LIB_DEBUG)
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/apr-1.lib")
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/apr-1.lib")
+ if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG)
+ _activemq_cpp_windows_dependencies()
+ if (${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND)
+ _add_apr_and_amq_targets("${_IMPORT_PREFIX}"
+ STATIC
+ "${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
+ "${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
+ "${ACTIVEMQ_CPP_LIB_RELEASE}"
+ "${ACTIVEMQ_CPP_LIB_DEBUG}"
+ "unofficial::activemq-cpp::apr;unofficial::activemq-cpp::ws2;unofficial::activemq-cpp::rpcrt4;unofficial::activemq-cpp::mswsock")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
+ foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING})
+ string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
+ endforeach()
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}.")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ #
+ # not Windows shared or static install
+ #
+ _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.so.19.0.5")
+ _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.so.19.0.5")
+ if(ACTIVEMQ_CPP_LIB_RELEASE)
+ #
+ # Linux shared install (this may pick up some other Unix-like installs)
+ #
+ if (ACTIVEMQ_CPP_LIB_DEBUG)
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.so")
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.so")
+ if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG)
+ find_package(Threads)
+ if (Threads_FOUND)
+ _add_apr_and_amq_targets("${_IMPORT_PREFIX}"
+ SHARED
+ "${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
+ "${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
+ "${ACTIVEMQ_CPP_LIB_RELEASE}"
+ "${ACTIVEMQ_CPP_LIB_DEBUG}"
+ "unofficial::activemq-cpp::apr;Threads::Threads")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: threads library not found.")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
+ foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING})
+ string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
+ endforeach()
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ #
+ # not Windows shared or static or Linux shared install
+ #
+ _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.a")
+ _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.a")
+ if (ACTIVEMQ_CPP_LIB_RELEASE)
+ #
+ # Linux static install (this may pick up some other Unix-like installs)
+ #
+ if (ACTIVEMQ_CPP_LIB_DEBUG)
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.a")
+ _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.a")
+ if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG)
+ find_package(Threads)
+ if (Threads_FOUND)
+ _add_apr_and_amq_targets("${_IMPORT_PREFIX}"
+ STATIC
+ "${ACTIVEMQ_CPP_APR_LIB_RELEASE}"
+ "${ACTIVEMQ_CPP_APR_LIB_DEBUG}"
+ "${ACTIVEMQ_CPP_LIB_RELEASE}"
+ "${ACTIVEMQ_CPP_LIB_DEBUG}"
+ "unofficial::activemq-cpp::apr;Threads::Threads")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: threads library not found.")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.")
+ foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING})
+ string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.")
+ endforeach()
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ else()
+ #
+ # Some other configuration...
+ # (not Windows shared or static or Linux shared or static install)
+ #
+ set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg unexpected install: could not find any expected activemq-cpp libraries under ${_IMPORT_PREFIX}. The CMake configuration file only understands Windows and Linux static and shared installs from vcpkg.")
+ set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
+ endif()
+ endif()
+ endif()
+endif()
diff --git a/ports/activemq-cpp/fix-crt-linkage-dyn.patch b/ports/activemq-cpp/fix-crt-linkage-dyn.patch new file mode 100644 index 000000000..c2a3a399e --- /dev/null +++ b/ports/activemq-cpp/fix-crt-linkage-dyn.patch @@ -0,0 +1,36 @@ +diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj +index 54b4822..6b35511 100644 +--- a/vs2010-build/activemq-cpp.vcxproj ++++ b/vs2010-build/activemq-cpp.vcxproj +@@ -2578,6 +2578,7 @@ + <BasicRuntimeChecks>Default</BasicRuntimeChecks> + <FunctionLevelLinking>true</FunctionLevelLinking> + <CreateHotpatchableImage>false</CreateHotpatchableImage> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <RuntimeTypeInfo>true</RuntimeTypeInfo> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> +@@ -2687,6 +2688,7 @@ + <FunctionLevelLinking>true</FunctionLevelLinking> + <CreateHotpatchableImage>false</CreateHotpatchableImage> + <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile> +@@ -2794,6 +2796,7 @@ + <AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <CreateHotpatchableImage>false</CreateHotpatchableImage> + <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile> +@@ -2906,6 +2909,7 @@ + <AdditionalIncludeDirectories>../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <CreateHotpatchableImage>false</CreateHotpatchableImage> + <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile> diff --git a/ports/activemq-cpp/portfile.cmake b/ports/activemq-cpp/portfile.cmake index 6afa95b79..4700c5c3d 100644 --- a/ports/activemq-cpp/portfile.cmake +++ b/ports/activemq-cpp/portfile.cmake @@ -1,4 +1,4 @@ -vcpkg_fail_port_install( ON_TARGET "uwp" "linux" "osx")
+vcpkg_fail_port_install( ON_TARGET "uwp" "osx")
set(VERSION 3.9.5)
@@ -8,92 +8,127 @@ vcpkg_download_distfile(ARCHIVE SHA512 83692d3dfd5ecf557fc88d204a03bf169ce6180bcff27be41b09409b8f7793368ffbeed42d98ef6374c6b6b477d9beb8a4a9ac584df9e56725ec59ceceaa6ae2
)
-vcpkg_extract_source_archive_ex(
- OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
- PATCHES
- FunctionLevelLinkingOn.diff
- fix-crt-linkage.patch
-)
+if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ )
-set(ACTIVEMQCPP_MSVC_PROJ ${SOURCE_PATH}/vs2010-build/activemq-cpp.vcxproj)
+ vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+ OPTIONS
+ "--with-openssl=${CURRENT_INSTALLED_DIR}"
+ "--with-apr=${CURRENT_INSTALLED_DIR}/tools/apr"
+ )
-string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ACTIVEMQCPP_SHARED_LIB)
+ vcpkg_install_make()
+ file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/activemq" "${CURRENT_PACKAGES_DIR}/include/activemq")
+ file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/cms" "${CURRENT_PACKAGES_DIR}/include/cms")
+ file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/decaf" "${CURRENT_PACKAGES_DIR}/include/decaf")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}")
-if (ACTIVEMQCPP_SHARED_LIB)
- set(RELEASE_CONF "ReleaseDLL")
- set(DEBUG_CONF "DebugDLL")
-
- set(ACTIVEMQCPP_LIB_PREFFIX )
- set(ACTIVEMQCPP_LIB_SUFFIX d)
- vcpkg_replace_string(${ACTIVEMQCPP_MSVC_PROJ} ";apr-1.lib" ";libapr-1.lib")
+ vcpkg_copy_pdbs()
else()
- set(RELEASE_CONF "Release")
- set(DEBUG_CONF "Debug")
-
- set(ACTIVEMQCPP_LIB_PREFFIX lib)
- set(ACTIVEMQCPP_LIB_SUFFIX )
- vcpkg_replace_string(${ACTIVEMQCPP_MSVC_PROJ} ";libapr-1.lib" ";apr-1.lib")
-endif()
+ set(PATCHES FunctionLevelLinkingOn.diff)
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ list(APPEND PATCHES fix-crt-linkage.patch)
+ else()
+ list(APPEND PATCHES fix-crt-linkage-dyn.patch)
+ endif()
-if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
- set(BUILD_ARCH "Win32")
- set(OUTPUT_DIR "Win32")
-elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
- set(BUILD_ARCH "x64")
- set(OUTPUT_DIR "Win64")
-else()
- message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
-endif()
+ vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ PATCHES ${PATCHES}
+ )
-vcpkg_build_msbuild(
- PROJECT_PATH ${ACTIVEMQCPP_MSVC_PROJ}
- RELEASE_CONFIGURATION ${RELEASE_CONF}
- DEBUG_CONFIGURATION ${DEBUG_CONF}
- PLATFORM ${BUILD_ARCH}
- USE_VCPKG_INTEGRATION
-)
+ set(ACTIVEMQCPP_MSVC_PROJ "${SOURCE_PATH}/vs2010-build/activemq-cpp.vcxproj")
-vcpkg_copy_pdbs()
+ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ACTIVEMQCPP_SHARED_LIB)
-if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- file(COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib
- )
-
if (ACTIVEMQCPP_SHARED_LIB)
- file(COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- )
- file(COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- )
+ set(RELEASE_CONF "ReleaseDLL")
+ set(DEBUG_CONF "DebugDLL")
+
+ set(ACTIVEMQCPP_LIB_PREFFIX )
+ set(ACTIVEMQCPP_LIB_SUFFIX d)
+ vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" ";apr-1.lib" ";libapr-1.lib")
+ else()
+ set(RELEASE_CONF "Release")
+ set(DEBUG_CONF "Debug")
+
+ set(ACTIVEMQCPP_LIB_PREFFIX lib)
+ set(ACTIVEMQCPP_LIB_SUFFIX )
+ vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" ";libapr-1.lib" ";apr-1.lib")
endif()
-endif()
-if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- file(COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
+ if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
+ set(BUILD_ARCH "Win32")
+ elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
+ set(BUILD_ARCH "x64")
+ else()
+ message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+ endif()
+
+ string(REPLACE "/" "\\" WIN_SOURCE_PATH "${SOURCE_PATH}")
+ vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "ClCompile Include=\"..\\src" "ClCompile Include=\"${WIN_SOURCE_PATH}\\src")
+ vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "ClInclude Include=\"..\\src" "ClInclude Include=\"${WIN_SOURCE_PATH}\\src")
+ vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "../src/main" "${WIN_SOURCE_PATH}\\src\\main")
+ vcpkg_install_msbuild(
+ SOURCE_PATH "${SOURCE_PATH}/vs2010-build"
+ PROJECT_SUBPATH "activemq-cpp.vcxproj"
+ RELEASE_CONFIGURATION ${RELEASE_CONF}
+ DEBUG_CONFIGURATION ${DEBUG_CONF}
+ PLATFORM ${BUILD_ARCH}
+ USE_VCPKG_INTEGRATION
+ ALLOW_ROOT_INCLUDES
+ SKIP_CLEAN
)
-
- if (ACTIVEMQCPP_SHARED_LIB)
+
+ vcpkg_copy_pdbs()
+
+ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
file(COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp.lib"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/lib"
)
+
+ if (ACTIVEMQCPP_SHARED_LIB)
+ file(COPY
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.dll"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/bin"
+ )
+ file(COPY
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.pdb"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/bin"
+ )
+ endif()
+ endif()
+
+ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.lib"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib"
)
+
+ if (ACTIVEMQCPP_SHARED_LIB)
+ file(COPY
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.dll"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin"
+ )
+ file(COPY
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.pdb"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin"
+ )
+ endif()
endif()
-endif()
-file(COPY ${SOURCE_PATH}/src/main/activemq DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.h)
-file(COPY ${SOURCE_PATH}/src/main/cms DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.h)
-file(COPY ${SOURCE_PATH}/src/main/decaf DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.h)
+ file(COPY "${SOURCE_PATH}/src/main/activemq" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h)
+ file(COPY "${SOURCE_PATH}/src/main/cms" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h)
+ file(COPY "${SOURCE_PATH}/src/main/decaf" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h)
+ vcpkg_clean_msbuild()
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+file(INSTALL "${CURRENT_PORT_DIR}/activemq-cppConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/activemq-cpp")
+file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/ports/activemq-cpp/vcpkg.json b/ports/activemq-cpp/vcpkg.json index f950dba67..9a804bf4b 100644 --- a/ports/activemq-cpp/vcpkg.json +++ b/ports/activemq-cpp/vcpkg.json @@ -1,9 +1,9 @@ { "name": "activemq-cpp", - "version-string": "3.9.5", - "port-version": 4, + "version-semver": "3.9.5", + "port-version": 5, "description": "Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.", - "supports": "!(uwp | linux | osx)", + "supports": "!(uwp | osx)", "dependencies": [ "apr" ] diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index bc5452390..25c6ef1fe 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1697,7 +1697,6 @@ lapack-reference:arm-uwp=skip # failures for x64-windows-static-md ace:x64-windows-static-md=fail -activemq-cpp:x64-windows-static-md=fail akali:x64-windows-static-md=fail chromium-base:x64-windows-static-md=fail clockutils:x64-windows-static-md=fail diff --git a/versions/a-/activemq-cpp.json b/versions/a-/activemq-cpp.json index 2507ec7aa..e08320929 100644 --- a/versions/a-/activemq-cpp.json +++ b/versions/a-/activemq-cpp.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "bce9f87e7df6f4e8a9c3121018ffc032e3d2603e", + "version-semver": "3.9.5", + "port-version": 5 + }, + { "git-tree": "13f5f938c4d12bf4a62061f9891f77e7fc03fc23", "version-string": "3.9.5", "port-version": 4 diff --git a/versions/baseline.json b/versions/baseline.json index 80b99c5fa..eda7ee253 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -22,7 +22,7 @@ }, "activemq-cpp": { "baseline": "3.9.5", - "port-version": 4 + "port-version": 5 }, "ade": { "baseline": "0.1.1f", |
