aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-06-29 14:47:42 -0700
committerGitHub <noreply@github.com>2017-06-29 14:47:42 -0700
commit3bd42a4dd047a2dc28ecdacf6c60544ce0459fed (patch)
tree1176dff4e427e7695dbab4a1c881941a4f21ede8
parent4f3d6b46261ed1d85b0606e282e6e0e246bf5688 (diff)
parent61d9cf34cde4ba658b9150bafc47da00b1e69abd (diff)
downloadvcpkg-3bd42a4dd047a2dc28ecdacf6c60544ce0459fed.tar.gz
vcpkg-3bd42a4dd047a2dc28ecdacf6c60544ce0459fed.zip
Merge pull request #1336 from sigman78/sobj
[SObjectizer] New port
-rw-r--r--ports/sobjectizer/001-cmake.patch36
-rw-r--r--ports/sobjectizer/CONTROL3
-rw-r--r--ports/sobjectizer/portfile.cmake51
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)