From 076b4f1e8300ff79e08305b20941f38e9ddd5b85 Mon Sep 17 00:00:00 2001 From: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> Date: Mon, 16 Sep 2019 15:14:14 -0700 Subject: [zfp] Add new port (#7955) * [zfp] Add new port * Fix build static error * Add features and fix build error. * Remove unused patches * Update build error patch --- ports/zfp/CONTROL | 19 +++++++++++ ports/zfp/fix-build-error.patch | 11 ++++++ ports/zfp/fix-install-tools.patch | 72 +++++++++++++++++++++++++++++++++++++++ ports/zfp/portfile.cmake | 42 +++++++++++++++++++++++ 4 files changed, 144 insertions(+) create mode 100644 ports/zfp/CONTROL create mode 100644 ports/zfp/fix-build-error.patch create mode 100644 ports/zfp/fix-install-tools.patch create mode 100644 ports/zfp/portfile.cmake diff --git a/ports/zfp/CONTROL b/ports/zfp/CONTROL new file mode 100644 index 000000000..eb9505fa4 --- /dev/null +++ b/ports/zfp/CONTROL @@ -0,0 +1,19 @@ +Source: zfp +Version: 0.5.5-1 +Homepage: https://github.com/LLNL/zfp +Description: Zfp is an open source C/C++ library for compressed numerical arrays that support high throughput read and write random access. zfp also supports streaming compression of integer and floating-point data, e.g., for applications that read and write large data sets to and from disk. zfp is primarily written in C and C++ but also includes Python and Fortran bindings. + +Feature: all +Description: Build all components + +Feature: cfp +Description: cfp support for cfp + +Feature: test +Description: Build test + +Feature: example +Description: Build example + +Feature: utility +Description: Build utility \ No newline at end of file diff --git a/ports/zfp/fix-build-error.patch b/ports/zfp/fix-build-error.patch new file mode 100644 index 000000000..0c1e15763 --- /dev/null +++ b/ports/zfp/fix-build-error.patch @@ -0,0 +1,11 @@ +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index a960d2c..e6a492d 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -1,5 +1,5 @@ + add_executable(zfpcmd zfp.c) +-set_property(TARGET zfpcmd PROPERTY OUTPUT_NAME zfp) ++#set_property(TARGET zfpcmd PROPERTY OUTPUT_NAME zfp) + target_link_libraries(zfpcmd zfp) + if(HAVE_LIBM_MATH) + target_link_libraries(zfpcmd m) diff --git a/ports/zfp/fix-install-tools.patch b/ports/zfp/fix-install-tools.patch new file mode 100644 index 000000000..49a511d44 --- /dev/null +++ b/ports/zfp/fix-install-tools.patch @@ -0,0 +1,72 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 47179fd..96add54 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -220,8 +220,8 @@ add_subdirectory(src) + option(BUILD_ALL "Build all subdirectories" OFF) + if(BUILD_ALL) + set(BUILD_CFP ON CACHE BOOL "Build CFP arrays library" FORCE) +- set(BUILD_ZFORP ON CACHE BOOL "Build Fortran library" FORCE) +- set(BUILD_ZFPY ON CACHE BOOL "Build python bindings for zfp" FORCE) ++ set(BUILD_ZFORP OFF CACHE BOOL "Build Fortran library" FORCE) ++ set(BUILD_ZFPY OFF CACHE BOOL "Build python bindings for zfp" FORCE) + set(BUILD_UTILITIES ON CACHE BOOL "Build command line utilities for zfp" FORCE) + set(BUILD_EXAMPLES ON CACHE BOOL "Build Examples" FORCE) + endif() +diff --git a/cfp/src/CMakeLists.txt b/cfp/src/CMakeLists.txt +index 386698c..ecba525 100644 +--- a/cfp/src/CMakeLists.txt ++++ b/cfp/src/CMakeLists.txt +@@ -36,3 +36,5 @@ install(TARGETS cfp EXPORT cfp-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ ++install(DIRECTORY ${ZFP_SOURCE_DIR}/cfp/include DESTINATION include) +diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt +index 7cc7606..6ca1034 100644 +--- a/examples/CMakeLists.txt ++++ b/examples/CMakeLists.txt +@@ -34,3 +34,20 @@ if(HAVE_LIBM_MATH) + target_link_libraries(pgm m) + target_link_libraries(simple m) + endif() ++ ++install(TARGETS diffusion ++ RUNTIME DESTINATION tools) ++ if(BUILD_CFP) ++ install(TARGETS diffusionC ++ RUNTIME DESTINATION tools) ++ endif() ++install(TARGETS inplace ++ RUNTIME DESTINATION tools) ++install(TARGETS iterator ++ RUNTIME DESTINATION tools) ++install(TARGETS pgm ++ RUNTIME DESTINATION tools) ++install(TARGETS simple ++ RUNTIME DESTINATION tools) ++install(TARGETS speed ++ RUNTIME DESTINATION tools) +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index d15246e..7a6c6cb 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -19,3 +19,6 @@ if(ZFP_BUILD_TESTING_LARGE) + endforeach() + endforeach() + endif() ++ ++install(TARGETS testzfp ++ RUNTIME DESTINATION tools) +diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt +index a960d2c..5fcbf87 100644 +--- a/utils/CMakeLists.txt ++++ b/utils/CMakeLists.txt +@@ -4,3 +4,6 @@ target_link_libraries(zfpcmd zfp) + if(HAVE_LIBM_MATH) + target_link_libraries(zfpcmd m) + endif() ++ ++install(TARGETS zfpcmd ++ RUNTIME DESTINATION tools) diff --git a/ports/zfp/portfile.cmake b/ports/zfp/portfile.cmake new file mode 100644 index 000000000..7c9af2547 --- /dev/null +++ b/ports/zfp/portfile.cmake @@ -0,0 +1,42 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO LLNL/zfp + REF 0.5.5 + SHA512 c043cee73f6e972e047452552ab2ceb9247a6747fdb7e5f863aeab3a05208737c0bcabbe29f3c10e5c1aba961ec47aa6a0abdb395486fa0d5fb16a4ad45733c4 + HEAD_REF master + PATCHES + fix-build-error.patch + fix-install-tools.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + all BUILD_ALL + cfp BUILD_CFP + test BUILD_TESTING + example BUILD_EXAMPLES + utility BUILD_UTILITIES +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS ${FEATURE_OPTIONS} + -DBUILD_ZFPY=OFF + -DBUILD_ZFORP=OFF +) + +vcpkg_install_cmake() + +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() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT}) + +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file -- cgit v1.2.3