diff options
| -rw-r--r-- | ports/comms/portfile.cmake | 24 | ||||
| -rw-r--r-- | ports/comms/vcpkg.json | 7 | ||||
| -rw-r--r-- | ports/commsdsl/fix-libxml2.patch | 64 | ||||
| -rw-r--r-- | ports/commsdsl/portfile.cmake | 37 | ||||
| -rw-r--r-- | ports/commsdsl/use-FindPackage.patch | 21 | ||||
| -rw-r--r-- | ports/commsdsl/vcpkg.json | 13 |
6 files changed, 166 insertions, 0 deletions
diff --git a/ports/comms/portfile.cmake b/ports/comms/portfile.cmake new file mode 100644 index 000000000..bca5f8524 --- /dev/null +++ b/ports/comms/portfile.cmake @@ -0,0 +1,24 @@ +#header-only library
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO mathisloge/comms_champion
+ REF v3.1.1
+ SHA512 167838aec1d42ce60e373aaa1c3b3f0093735e54b80c12229624fa5617b713462609b46585dbe9a1637404e88bd051eda2e619d21bff60056693e79dd9e53878
+ HEAD_REF master
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCC_COMMS_LIB_ONLY=ON
+ -DCC_NO_UNIT_TESTS=ON
+)
+vcpkg_install_cmake()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
\ No newline at end of file diff --git a/ports/comms/vcpkg.json b/ports/comms/vcpkg.json new file mode 100644 index 000000000..6c3668de0 --- /dev/null +++ b/ports/comms/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "comms", + "version-string": "3.1.1", + "description": "COMMS is the C++(11) headers only, platform independent library, which makes the implementation of a communication protocol to be an easy and relatively quick process.", + "homepage": "https://commschamp.github.io/", + "documentation": "https://github.com/commschamp/comms_champion" +} diff --git a/ports/commsdsl/fix-libxml2.patch b/ports/commsdsl/fix-libxml2.patch new file mode 100644 index 000000000..426f0ac9f --- /dev/null +++ b/ports/commsdsl/fix-libxml2.patch @@ -0,0 +1,64 @@ +diff --git a/lib/src/CMakeLists.txt b/lib/src/CMakeLists.txt
+index 9fb4718..fec7712 100644
+--- a/lib/src/CMakeLists.txt
++++ b/lib/src/CMakeLists.txt
+@@ -1,57 +1,6 @@
+ set (INTERNAL_LIBXML_TGT)
+-while (TRUE)
+- if (UNIX)
+- # Use libxml2 from system repositories
+- break()
+- endif ()
+-
+- if ((NOT "${LIBXML2_INCLUDE_DIR}" STREQUAL "") AND (NOT "${LIBXML2_LIBRARIES}" STREQUAL ""))
+- # External build of libxml2 is provided
+- break()
+- endif ()
+-
+- if (NOT MSVC)
+- message (FATAL_ERROR "At this moment only MSVC compiler is supported for windows builds")
+- endif ()
+-
+- set (INTERNAL_LIBXML_TGT "libxml2_tgt")
+- set (LIBXML2_DIR "${CMAKE_CURRENT_BINARY_DIR}/libxml2")
+- set (LIBXML2_SRC_DIR "${LIBXML2_DIR}/src")
+- set (LIBXML2_BIN_DIR "${LIBXML2_SRC_DIR}/win32")
+-
+- set (LIBXML2_CRUNTIME)
+- if (("${CMAKE_BUILD_TYPE}" STREQUAL "") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "None") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug"))
+- set (LIBXML2_CRUNTIME "cruntime=/MDd")
+- endif ()
+-
+- include(ExternalProject)
+- ExternalProject_Add(
+- ${INTERNAL_LIBXML_TGT}
+- PREFIX "${LIBXML2_DIR}"
+- STAMP_DIR "${LIBXML2_DIR}/stamp"
+- GIT_REPOSITORY "https://github.com/GNOME/libxml2.git"
+- GIT_TAG "v2.9.7"
+- UPDATE_DISCONNECTED 1
+- CONFIGURE_COMMAND
+- cscript ${LIBXML2_BIN_DIR}/configure.js ftp=no html=no iconv=no compiler=msvc static=yes ${LIBXML2_CRUNTIME} bindir=install\\bin incdir=install\\include libdir=install\\lib sodir=install\\bin
+- SOURCE_DIR "${LIBXML2_SRC_DIR}"
+- BINARY_DIR "${LIBXML2_BIN_DIR}"
+- BUILD_COMMAND
+- nmake /f Makefile.msvc
+- INSTALL_COMMAND
+- nmake /f Makefile.msvc install
+- )
+-
+- set (LIBXML2_FOUND TRUE)
+- set (LIBXML2_INCLUDE_DIR "${LIBXML2_BIN_DIR}/install/include/libxml2")
+- set (LIBXML2_LIBRARIES "${LIBXML2_BIN_DIR}/install/lib/libxml2_a.lib")
+- set (LIBXML2_DEFINITIONS "/DLIBXML_STATIC")
+- break()
+-endwhile ()
+-
+-if (NOT LIBXML2_FOUND)
+- find_package(LibXml2 REQUIRED)
+-endif ()
++
++find_package(LibXml2 REQUIRED)
+
+ set (
+ src
diff --git a/ports/commsdsl/portfile.cmake b/ports/commsdsl/portfile.cmake new file mode 100644 index 000000000..db5fee1c5 --- /dev/null +++ b/ports/commsdsl/portfile.cmake @@ -0,0 +1,37 @@ +vcpkg_fail_port_install(ON_TARGET "uwp")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO commschamp/commsdsl
+ REF v3.5.2
+ SHA512 cc763420e84faa7f0c6bf6c7e89e21cbf4e61eeed9916273a5117786a4d54ccc58356904266b6f8e1643fdb7715deabcea868e6a7af574a44ca0363574602aa2
+ HEAD_REF master
+ PATCHES
+ "use-FindPackage.patch"
+ "fix-libxml2.patch"
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCOMMSDSL_TEST_BUILD_CC_PLUGIN=OFF
+ -DCOMMSDSL_NO_TESTS=ON
+ -DBUILD_TESTING=OFF
+ -DCOMMSDSL_NO_WARN_AS_ERR=ON # remove on next version or on next version of boost
+)
+vcpkg_install_cmake()
+
+vcpkg_copy_tools(
+ TOOL_NAMES commsdsl2comms
+ SEARCH_DIR ${CURRENT_PACKAGES_DIR}/bin
+ AUTO_CLEAN
+)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+endif()
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/commsdsl/use-FindPackage.patch b/ports/commsdsl/use-FindPackage.patch new file mode 100644 index 000000000..f062bf956 --- /dev/null +++ b/ports/commsdsl/use-FindPackage.patch @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d6608b5..f545a00 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -29,14 +29,8 @@ if (NOT COMMSDSL_EXTERNALS_DIR)
+ set (COMMSDSL_EXTERNALS_DIR "${PROJECT_SOURCE_DIR}/externals")
+ endif ()
+
+-if (COMMS_INSTALL_DIR)
+- set (CC_CMAKE_DIR ${COMMS_INSTALL_DIR}/lib/LibComms/cmake)
+-else ()
+- set (CC_SRC_DIR "${COMMSDSL_EXTERNALS_DIR}/comms_champion")
+- include (${CMAKE_SCIPTS_DIR}/CC_Prefetch.cmake)
+- cc_prefetch(SRC_DIR ${CC_SRC_DIR} TAG ${CC_TAG})
+- set (CC_CMAKE_DIR ${CC_SRC_DIR}/cmake)
+-endif ()
++find_package(LibComms CONFIG REQUIRED)
++set(CC_CMAKE_DIR ${LibComms_DIR})
+
+ ################################################
+ # Compiler options
diff --git a/ports/commsdsl/vcpkg.json b/ports/commsdsl/vcpkg.json new file mode 100644 index 000000000..a7f2e15fe --- /dev/null +++ b/ports/commsdsl/vcpkg.json @@ -0,0 +1,13 @@ +{ + "name": "commsdsl", + "version-string": "3.5.2", + "description": "DSL schemas parser and code generator for CommsChampion Ecosystem", + "homepage": "https://commschamp.github.io/", + "documentation": "https://github.com/commschamp/commsdsl", + "supports": "!uwp", + "dependencies": [ + "boost", + "comms", + "libxml2" + ] +} |
