diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-06-29 14:47:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-29 14:47:42 -0700 |
| commit | 3bd42a4dd047a2dc28ecdacf6c60544ce0459fed (patch) | |
| tree | 1176dff4e427e7695dbab4a1c881941a4f21ede8 | |
| parent | 4f3d6b46261ed1d85b0606e282e6e0e246bf5688 (diff) | |
| parent | 61d9cf34cde4ba658b9150bafc47da00b1e69abd (diff) | |
| download | vcpkg-3bd42a4dd047a2dc28ecdacf6c60544ce0459fed.tar.gz vcpkg-3bd42a4dd047a2dc28ecdacf6c60544ce0459fed.zip | |
Merge pull request #1336 from sigman78/sobj
[SObjectizer] New port
| -rw-r--r-- | ports/sobjectizer/001-cmake.patch | 36 | ||||
| -rw-r--r-- | ports/sobjectizer/CONTROL | 3 | ||||
| -rw-r--r-- | ports/sobjectizer/portfile.cmake | 51 |
3 files changed, 90 insertions, 0 deletions
diff --git a/ports/sobjectizer/001-cmake.patch b/ports/sobjectizer/001-cmake.patch new file mode 100644 index 000000000..cb4285e91 --- /dev/null +++ b/ports/sobjectizer/001-cmake.patch @@ -0,0 +1,36 @@ +diff --git a/so_5/CMakeLists.txt b/so_5/CMakeLists.txt +index bd6f1d7..0e30831 100644 +--- a/so_5/CMakeLists.txt ++++ b/so_5/CMakeLists.txt +@@ -71,12 +71,17 @@ set(SO_5_SRC exception.cpp + disp/prio_dedicated_threads/one_per_prio/pub.cpp + ) + +-add_library(${SO_5_TARGET} SHARED ${SO_5_SRC}) ++if (SO_BUILD_STATIC) ++ message(STATUS "Building static.") ++ add_library(${SO_5_TARGET} STATIC ${SO_5_SRC}) ++ target_compile_definitions(${SO_5_TARGET} ++ PUBLIC -DSO_5_STATIC_LIB ++ ) ++else() ++ message(STATUS "Building dynamic.") ++ add_library(${SO_5_TARGET} SHARED ${SO_5_SRC}) ++endif() + +-add_library(${SO_5_S_TARGET} STATIC ${SO_5_SRC}) +-target_compile_definitions(${SO_5_S_TARGET} +- PUBLIC -DSO_5_STATIC_LIB +-) + + set(SO_5_EXT_LIBS ) + if( ANDROID ) +@@ -90,7 +95,7 @@ foreach(__extLibrary ${SO_5_EXT_LIBS}) + endforeach() + + install( +- TARGETS ${SO_5_TARGET} ${SO_5_S_TARGET} ++ TARGETS ${SO_5_TARGET} + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin diff --git a/ports/sobjectizer/CONTROL b/ports/sobjectizer/CONTROL new file mode 100644 index 000000000..09780452b --- /dev/null +++ b/ports/sobjectizer/CONTROL @@ -0,0 +1,3 @@ +Source: sobjectizer +Version: 5.5.19-2 +Description: SObjectizer is a C++ in-process message dispatching framework with implementation of Actor Model, Publish-Subscribe Model and CSP-like channels. diff --git a/ports/sobjectizer/portfile.cmake b/ports/sobjectizer/portfile.cmake new file mode 100644 index 000000000..7849817d8 --- /dev/null +++ b/ports/sobjectizer/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) + +set(VERSION 5.5.19) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/so-${VERSION}/dev) + +vcpkg_download_distfile(ARCHIVE + URLS "https://downloads.sourceforge.net/project/sobjectizer/sobjectizer/SObjectizer%20Core%20v.5.5/so-${VERSION}.zip" + FILENAME "so-${VERSION}.zip" + SHA512 1dd5167e3a04a169f0d192504e64b2d7f0ce82322f4388207f15de21e31bf0a75f7b84efa406f0f84bea18235861479a169358e3a1b3bad6c3f7ffe5d33c502e +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/001-cmake.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(SO_BUILD_STATIC ON) + set(SO_BUILD_SHARED OFF) +else() + set(SO_BUILD_STATIC OFF) + set(SO_BUILD_SHARED ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DSO_BUILD_STATIC=${SO_BUILD_STATIC} + -DSO_BUILD_SHARED=${SO_BUILD_SHARED} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# patch SO_5_STATIC_LIB in headers with actual value +set(DECLSPEC_FILE ${CURRENT_PACKAGES_DIR}/include/so_5/h/declspec.hpp) +file(READ ${DECLSPEC_FILE} DECLSPEC_H) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + string(REPLACE "defined( SO_5_STATIC_LIB )" "1" DECLSPEC_H "${DECLSPEC_H}") +else() + string(REPLACE "defined( SO_5_STATIC_LIB )" "0" DECLSPEC_H "${DECLSPEC_H}") +endif() +file(WRITE ${DECLSPEC_FILE} "${DECLSPEC_H}") + +# Handle copyright +file(COPY ${SOURCE_PATH}/../LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/sobjectizer) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/sobjectizer/LICENSE ${CURRENT_PACKAGES_DIR}/share/sobjectizer/copyright) |
