diff options
| author | Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> | 2020-06-24 04:18:04 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-23 13:18:04 -0700 |
| commit | 7e18ac0d8bbb4bcb75fd58e6f4a97fd573d92801 (patch) | |
| tree | c42ccae223fb390ec7f9a675f1f8bd2608a15cc6 | |
| parent | 088963227e7babc3537b804224dc234143b5ad1c (diff) | |
| download | vcpkg-7e18ac0d8bbb4bcb75fd58e6f4a97fd573d92801.tar.gz vcpkg-7e18ac0d8bbb4bcb75fd58e6f4a97fd573d92801.zip | |
[activemq-cpp] Fix static build (#12005)
* [activemq-cpp] Fix static build
* update baseline
| -rw-r--r-- | ports/activemq-cpp/CONTROL | 2 | ||||
| -rw-r--r-- | ports/activemq-cpp/fix-crt-linkage.patch | 36 | ||||
| -rw-r--r-- | ports/activemq-cpp/portfile.cmake | 95 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 1 |
4 files changed, 96 insertions, 38 deletions
diff --git a/ports/activemq-cpp/CONTROL b/ports/activemq-cpp/CONTROL index 85a7cff7d..3d06d9715 100644 --- a/ports/activemq-cpp/CONTROL +++ b/ports/activemq-cpp/CONTROL @@ -1,5 +1,5 @@ Source: activemq-cpp
-Version: 3.9.5-2
+Version: 3.9.5-3
Build-Depends: apr
Description: Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.
Supports: !(uwp|linux|osx)
diff --git a/ports/activemq-cpp/fix-crt-linkage.patch b/ports/activemq-cpp/fix-crt-linkage.patch new file mode 100644 index 000000000..fcb74fda7 --- /dev/null +++ b/ports/activemq-cpp/fix-crt-linkage.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>MultiThreadedDebug</RuntimeLibrary> + <RuntimeTypeInfo>true</RuntimeTypeInfo> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> +@@ -2687,6 +2688,7 @@ + <FunctionLevelLinking>true</FunctionLevelLinking> + <CreateHotpatchableImage>false</CreateHotpatchableImage> + <RuntimeTypeInfo>true</RuntimeTypeInfo> ++ <RuntimeLibrary>MultiThreadedDebug</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>MultiThreaded</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>MultiThreaded</RuntimeLibrary> + <PrecompiledHeaderFile> + </PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile> diff --git a/ports/activemq-cpp/portfile.cmake b/ports/activemq-cpp/portfile.cmake index 1b83fd1e3..6afa95b79 100644 --- a/ports/activemq-cpp/portfile.cmake +++ b/ports/activemq-cpp/portfile.cmake @@ -11,11 +11,30 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
- PATCHES ${CMAKE_CURRENT_LIST_DIR}/FunctionLevelLinkingOn.diff
+ PATCHES
+ FunctionLevelLinkingOn.diff
+ fix-crt-linkage.patch
)
-set(RELEASE_CONF "ReleaseDLL")
-set(DEBUG_CONF "DebugDLL")
+set(ACTIVEMQCPP_MSVC_PROJ ${SOURCE_PATH}/vs2010-build/activemq-cpp.vcxproj)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ACTIVEMQCPP_SHARED_LIB)
+
+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")
+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()
if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86")
set(BUILD_ARCH "Win32")
@@ -27,9 +46,8 @@ else() message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}")
endif()
-
vcpkg_build_msbuild(
- PROJECT_PATH ${SOURCE_PATH}/vs2010-build/activemq-cpp.vcxproj
+ PROJECT_PATH ${ACTIVEMQCPP_MSVC_PROJ}
RELEASE_CONFIGURATION ${RELEASE_CONF}
DEBUG_CONFIGURATION ${DEBUG_CONF}
PLATFORM ${BUILD_ARCH}
@@ -38,39 +56,44 @@ vcpkg_build_msbuild( vcpkg_copy_pdbs()
-file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+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
+ )
+ endif()
+endif()
-file(
- COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/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
-)
-file(
- COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cppd.lib
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
-)
-file(
- COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cppd.dll
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
-)
-file(
- COPY
- ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cppd.pdb
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
-)
+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 (ACTIVEMQCPP_SHARED_LIB)
+ file(COPY
+ ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.dll
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ file(COPY
+ ${SOURCE_PATH}/vs2010-build/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.pdb
+ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+ )
+ 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(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 6a1415c2d..587823f41 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -44,7 +44,6 @@ 7zip:x64-linux=fail
7zip:x64-osx=fail
7zip:x64-uwp=fail
-activemq-cpp:x64-windows-static=fail
activemq-cpp:x64-linux=fail
activemq-cpp:x64-osx=fail
akali:x64-uwp=fail
|
