diff options
| author | Hartmut Kaiser <hartmut.kaiser@gmail.com> | 2017-05-22 21:38:11 -0500 |
|---|---|---|
| committer | Hartmut Kaiser <hartmut.kaiser@gmail.com> | 2017-05-22 21:38:11 -0500 |
| commit | 91876e047a54526b4ea459eb4bd7e5cce9a51564 (patch) | |
| tree | 64a2f5aad3e3d9993fbf914d09e68fec3524d742 | |
| parent | 9f0a7173a21e8b036d0df467aae978fda74e4a05 (diff) | |
| download | vcpkg-91876e047a54526b4ea459eb4bd7e5cce9a51564.tar.gz vcpkg-91876e047a54526b4ea459eb4bd7e5cce9a51564.zip | |
Add support for installing binary distributions of HWLOC
- this depends on #1144
- this fixes #1124
| -rw-r--r-- | ports/hwloc/CONTROL | 4 | ||||
| -rw-r--r-- | ports/hwloc/portfile.cmake | 53 |
2 files changed, 57 insertions, 0 deletions
diff --git a/ports/hwloc/CONTROL b/ports/hwloc/CONTROL new file mode 100644 index 000000000..f79c957e5 --- /dev/null +++ b/ports/hwloc/CONTROL @@ -0,0 +1,4 @@ +Source: hwloc +Version: 1.11.7 +Description: Portable Hardware Locality (hwloc) + The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. diff --git a/ports/hwloc/portfile.cmake b/ports/hwloc/portfile.cmake new file mode 100644 index 000000000..785061158 --- /dev/null +++ b/ports/hwloc/portfile.cmake @@ -0,0 +1,53 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# + +include(vcpkg_common_functions) + +if(TRIPLET_SYSTEM_ARCH MATCHES "x86") + vcpkg_download_distfile(ARCHIVE + URLS "https://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-win32-build-1.11.7.zip" + FILENAME "hwloc-win32-build-1.11.7.zip" + SHA512 c474f2400b207bbad3da94d201d03eb711df6a87aacb8429c489591ed47393eb499d99da5737a22d0745194296db11bf9e8ebbabd4bf2ecfd2d2878a773195d8 + ) + set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hwloc-win32-build-1.11.7) +elseif(TRIPLET_SYSTEM_ARCH MATCHES "x64") + vcpkg_download_distfile(ARCHIVE + URLS "https://www.open-mpi.org/software/hwloc/v1.11/downloads/hwloc-win64-build-1.11.7.zip" + FILENAME "hwloc-win64-build-1.11.7.zip" + SHA512 1373107f75f372fa519a7c3f686fbb6ff89e14c3750e1d64755c768daf77a01a1d962b5e7ecadc65f9917b56f45193e637db3958a0bede08cfe2dd983a335d9b + ) + set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/hwloc-win64-build-1.11.7) +else() + message(FATAL_ERROR " HWLOC is not available for download for the ARM platform") +endif() +vcpkg_extract_source_archive(${ARCHIVE}) + +message(STATUS "Installing") + +# copy include files +file(COPY ${SOURCE_PATH}/include/hwloc.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/include/hwloc DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# copy binaries +file(COPY ${SOURCE_PATH}/bin/libhwloc-5.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) +file(COPY ${SOURCE_PATH}/lib/libhwloc.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + +file(COPY ${SOURCE_PATH}/bin/libhwloc-5.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +file(COPY ${SOURCE_PATH}/lib/libhwloc.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + +message(STATUS "Installing done") + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/hwloc) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/hwloc/COPYING.txt ${CURRENT_PACKAGES_DIR}/share/hwloc/copyright) + +set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) |
