aboutsummaryrefslogtreecommitdiff
path: root/ports/activemq-cpp/portfile.cmake
diff options
context:
space:
mode:
authorMichael Heyman <mheyman@gmail.com>2021-10-11 13:19:49 -0400
committerGitHub <noreply@github.com>2021-10-11 10:19:49 -0700
commit4ce045cdc24d31a38d2a9b02b5e16b30d4d9947b (patch)
treed26852b3e20aa01d3720514c1a19e6f4914bb926 /ports/activemq-cpp/portfile.cmake
parent6ff166cc3e7242a4be699d9c847a834c0d981223 (diff)
downloadvcpkg-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
Diffstat (limited to 'ports/activemq-cpp/portfile.cmake')
-rw-r--r--ports/activemq-cpp/portfile.cmake177
1 files changed, 106 insertions, 71 deletions
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)