aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/gloo/portfile.cmake32
-rw-r--r--ports/gloo/vcpkg.json28
2 files changed, 60 insertions, 0 deletions
diff --git a/ports/gloo/portfile.cmake b/ports/gloo/portfile.cmake
new file mode 100644
index 000000000..cc168af4a
--- /dev/null
+++ b/ports/gloo/portfile.cmake
@@ -0,0 +1,32 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO facebookincubator/gloo
+ REF 1da21174054eaabbbd189b7f657ea24842d821e2
+ SHA512 ebd8369e413aee739a3928f8e6738c15708f009e0cd5a3763b8cadbe6f6d0a9d758585a7a2b0f7dd6d39a12882ff2f9497ab2d4edcebd4eb2a7237ab857f317e
+ HEAD_REF master
+ )
+
+# Determine which backend to build via specified feature
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS GLOO_FEATURE_OPTIONS
+ FEATURES
+ mpi USE_MPI
+ redis USE_REDIS
+ )
+
+if ("cuda" IN_LIST FEATURES)
+ list(APPEND GLOO_FEATURE_OPTIONS "-DUSE_CUDA=1" "-DUSE_NCCL=1")
+endif()
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS ${GLOO_FEATURE_OPTIONS}
+ )
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/Gloo)
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/gloo/vcpkg.json b/ports/gloo/vcpkg.json
new file mode 100644
index 000000000..15c4593c1
--- /dev/null
+++ b/ports/gloo/vcpkg.json
@@ -0,0 +1,28 @@
+{
+ "name": "gloo",
+ "version-string": "20201203",
+ "description": "Collective communications library with various primitives for multi-machine training.",
+ "homepage": "https://github.com/facebookincubator/gloo",
+ "supports": "x64 & linux",
+ "features": {
+ "cuda": {
+ "description": "for CUDA aware algorithms",
+ "dependencies": [
+ "cuda",
+ "nccl"
+ ]
+ },
+ "mpi": {
+ "description": "for coordinating machine rendezvous through MPI",
+ "dependencies": [
+ "openmpi"
+ ]
+ },
+ "redis": {
+ "description": "for coordinating machine rendezvous through Redis",
+ "dependencies": [
+ "hiredis"
+ ]
+ }
+ }
+}