Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[netcdf-c] Fix dependency libmath #12434

Merged
merged 6 commits into from
Aug 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ports/netcdf-c/CONTROL
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Source: netcdf-c
Version: 4.7.3
Port-Version: 3
Build-Depends: hdf5, curl, embree3(linux|osx)
Port-Version: 4
Build-Depends: hdf5, curl
JackBoosY marked this conversation as resolved.
Show resolved Hide resolved
Homepage: https://github.com/Unidata/netcdf-c
Description: a set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.
13 changes: 13 additions & 0 deletions ports/netcdf-c/fix-dependency-libmath.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 35c694f..e2c03e5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -839,7 +839,7 @@ ENDIF()

# Check for the math library so it can be explicitly linked.
IF(NOT WIN32)
- FIND_LIBRARY(HAVE_LIBM NAMES math m libm)
+ FIND_LIBRARY(HAVE_LIBM NAMES m libm math)
MESSAGE(STATUS "Found Math library: ${HAVE_LIBM}")
IF(NOT HAVE_LIBM)
MESSAGE(FATAL_ERROR "Unable to find the math library.")
1 change: 1 addition & 0 deletions ports/netcdf-c/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ vcpkg_from_github(
config-pkg-location.patch
use_targets.patch
mpi.patch
fix-dependency-libmath.patch
)

#Remove outdated find modules
Expand Down
2 changes: 1 addition & 1 deletion ports/netcdf-c/usage
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
The package netcdf-c provides CMake targets:

find_package(netCDF CONFIG REQUIRED)
target_link_libraries(main PRIVATE netcdf)
target_link_libraries(main PRIVATE netcdf)
1 change: 1 addition & 0 deletions ports/netcdf-cxx4/CONTROL
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Source: netcdf-cxx4
Version: 4.3.1
Port-Version: 1
Build-Depends: hdf5, netcdf-c
Homepage: https://github.com/Unidata/netcdf-cxx4
Description: a set of machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.
43 changes: 26 additions & 17 deletions ports/netcdf-cxx4/fix-dependecy-hdf5.patch
Original file line number Diff line number Diff line change
@@ -1,32 +1,41 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 60c699d..6bd7822 100644
index 60c699d..f06fcc0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -402,7 +402,7 @@ ELSE(MSVC)
FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED)
ENDIF(MSVC)

-CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5free_memory "" HAVE_H5FREE_MEMORY)
+set(HAVE_H5FREE_MEMORY ON)
IF(NOT HAVE_H5FREE_MEMORY)
MESSAGE(STATUS "Plugin support requires libhdf5 with H5Free support. Your libhdf5 install does not provide H5Free. Please install a newer version of libhdf5 if you require plugin compression support.")
SET(NC_HAS_DEF_VAR_FILTER "")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a48709..79de128 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -399,7 +399,13 @@ IF(MSVC)
@@ -395,14 +395,20 @@ ENDIF(NC_HAS_DEF_VAR_FILTER)
###
# Find HDF5
###
-IF(MSVC)
+IF(0)
SET(SEARCH_PACKAGE_NAME ${HDF5_PACKAGE_NAME})
FIND_PACKAGE(HDF5 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS C HL NO_MODULES REQUIRED ${NC_HDF5_LINK_TYPE})
ELSE(MSVC)
- FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED)
+ FIND_PACKAGE(hdf5 CONFIG REQUIRED)
+ set(HDF5_FOUND ${hdf5_FOUND})
+ if (BUILD_SHARED_LIBS)
+ if (NOT HDF5_USE_STATIC_LIBRARIES)
+ set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-shared hdf5::hdf5_hl-shared)
+ else()
+ set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-static hdf5::hdf5_hl-static)
+ endif()
ENDIF(MSVC)

set(HAVE_H5FREE_MEMORY ON)
-CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5free_memory "" HAVE_H5FREE_MEMORY)
+set(HAVE_H5FREE_MEMORY ON)
IF(NOT HAVE_H5FREE_MEMORY)
MESSAGE(STATUS "Plugin support requires libhdf5 with H5Free support. Your libhdf5 install does not provide H5Free. Please install a newer version of libhdf5 if you require plugin compression support.")
SET(NC_HAS_DEF_VAR_FILTER "")
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index 30a4a96..1809d29 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -23,7 +23,7 @@ SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES OUTPUT_NAME "bzip2")
SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES LIBRARY_OUTPUT_NAME "h5bzip2")
SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES ARCHIVE_OUTPUT_NAME "h5bzip2")
SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES RUNTIME_OUTPUT_NAME "h5bzip2")
-TARGET_LINK_LIBRARIES(test_bzip2 ${ALL_TLL_LIBS})
+TARGET_LINK_LIBRARIES(test_bzip2 ${ALL_TLL_LIBS} ${HDF5_C_LIBRARY_hdf5})

ADD_LIBRARY(misc MODULE ${libmisc_SOURCES})
SET_TARGET_PROPERTIES(misc PROPERTIES LIBRARY_OUTPUT_NAME "misc")
4 changes: 2 additions & 2 deletions ports/netcdf-cxx4/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" HDF5_USE_STATIC_LIBRARIES)

set(HDF5_USE_STATIC_LIBRARIES ON)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
Expand Down