[openmama] Feature use cmake for openmama (#13034)

This commit is contained in:
fquinner 2020-08-21 23:42:42 +01:00 committed by GitHub
parent 1999412506
commit fc7bab58e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 66 deletions

View File

@ -1,5 +1,7 @@
Source: openmama
Version: 6.3.0
Port-Version: 1
Build-Depends: libevent, apr, qpid-proton
Supports: windows&(x64|x86)
Homepage: https://github.com/OpenMAMA/OpenMAMA
Description: OpenMAMA is a high performance vendor neutral lightweight wrapper that provides a common API interface to different middleware and messaging solutions across a variety of platforms and languages.

View File

@ -11,74 +11,43 @@ vcpkg_from_github(
HEAD_REF next
)
set(OPENMAMA_TARGET_ARCH ${TRIPLET_SYSTEM_ARCH})
if(${TRIPLET_SYSTEM_ARCH} STREQUAL x64)
set(OPENMAMA_TARGET_ARCH x86_64)
endif()
# Clean from any previous builds
vcpkg_execute_required_process(
COMMAND ${SCONS}
-c
target_arch=${OPENMAMA_TARGET_ARCH}
libevent_home=${CURRENT_INSTALLED_DIR}
apr_home=${CURRENT_INSTALLED_DIR}
qpid_home=${CURRENT_INSTALLED_DIR}
vcpkg_build=y
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME clean-${TARGET_TRIPLET}.log
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DPROTON_ROOT=${CURRENT_INSTALLED_DIR}
-DAPR_ROOT=${CURRENT_INSTALLED_DIR}
-DINSTALL_RUNTIME_DEPENDENCIES=OFF
-DFLEX_EXECUTABLE=${FLEX}
-DWITH_EXAMPLES=OFF
-DWITH_TESTTOOLS=OFF
)
# This build
vcpkg_execute_required_process(
COMMAND ${SCONS}
with_unittest=False
with_examples=False
product=mamda
lex=${FLEX}
middleware=qpid
buildtype=dynamic,dynamic-debug
prefix=\#install
with_dependency_runtimes=False
target_arch=${OPENMAMA_TARGET_ARCH}
libevent_home=${CURRENT_INSTALLED_DIR}
apr_home=${CURRENT_INSTALLED_DIR}
qpid_home=${CURRENT_INSTALLED_DIR}
vcpkg_build=y
WORKING_DIRECTORY ${SOURCE_PATH}
LOGNAME build-${TARGET_TRIPLET}.log
)
# Remove dependency files which build system creates for convenience
file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/libapr-1.dll)
file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/libapr-1.pdb)
file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/libapr-1.dll)
file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/libapr-1.pdb)
file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/qpid-proton.dll)
file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/qpid-protond.dll)
# Custom install target - the build system doesn't really
# do prefixes properly and it has a different directory
# structure than vcpkg expects so reorganizing here
file(COPY ${SOURCE_PATH}/install/include
DESTINATION ${CURRENT_PACKAGES_DIR})
file(COPY ${SOURCE_PATH}/install/lib/dynamic/
DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(COPY ${SOURCE_PATH}/install/lib/dynamic-debug/
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(COPY ${SOURCE_PATH}/install/bin/dynamic/
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
FILES_MATCHING PATTERN "*.dll")
file(COPY ${SOURCE_PATH}/install/bin/dynamic-debug/
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
FILES_MATCHING PATTERN "*.dll")
vcpkg_install_cmake()
# Copy across license files and copyright
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/openmama)
file(COPY ${SOURCE_PATH}/install/LICENSE.md
${SOURCE_PATH}/install/LICENSE-3RD-PARTY.txt
file(COPY ${SOURCE_PATH}/LICENSE.md
${SOURCE_PATH}/LICENSE-3RD-PARTY.txt
DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmama/)
file(COPY ${SOURCE_PATH}/install/LICENSE.md
file(COPY ${SOURCE_PATH}/LICENSE.md
DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmama/copyright)
# Clean up LICENSE file - vcpkg doesn't expect it to be there
file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE.MD ${CURRENT_PACKAGES_DIR}/debug/LICENSE.MD)
# Temporary workaround until upstream project puts dll in right place
if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/libmamaplugindqstrategymd.dll")
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libmamaplugindqstrategymd.dll ${CURRENT_PACKAGES_DIR}/bin/libmamaplugindqstrategymd.dll)
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/libmamaplugindqstrategymd.dll")
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmamaplugindqstrategymd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmamaplugindqstrategymd.dll)
endif()
# Vcpkg does not expect include files to be in the debug directory
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
# Vcpkg does not like this header name and shouldn't be required anyway, so remove it
file(REMOVE "${CURRENT_PACKAGES_DIR}/include/platform.h")
vcpkg_copy_pdbs()

View File

@ -1214,10 +1214,6 @@ openexr:arm-uwp=fail
openexr:x64-uwp=fail
opengl:arm64-windows=fail
opengl:arm-uwp=fail
openmama:x64-windows=fail
openmama:x86-windows=fail
openmama:x64-linux=fail
openmama:x64-osx=fail
openmesh:arm64-windows=fail
openmesh:arm-uwp=fail
openmesh:x64-uwp=fail