Skip to content

Commit ee187eb

Browse files
committed
use gnuinstalldirs, unify packagin
1 parent 93ebaeb commit ee187eb

File tree

5 files changed

+24
-26
lines changed

5 files changed

+24
-26
lines changed

cmake/config.cmake.in

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ find_dependency(HDF5 COMPONENTS Fortran parallel)
88

99
find_dependency(MPI COMPONENTS C Fortran)
1010

11-
if(HDF5_FOUND AND MPI_FOUND)
12-
set(@PROJECT_NAME@_HAVE_PARALLEL true)
13-
endif()
11+
set(@PROJECT_NAME@_HAVE_PARALLEL @hdf5_parallel@)
1412

1513
include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake)
1614

cmake/hdf5.cmake

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# builds HDF5 library from scratch
22
# note: the use of "lib" vs. CMAKE_*_LIBRARY_PREFIX is deliberate based on HDF5
33
# across Intel Fortran on Windows (MSVC-like) vs. Gfortran on Windows vs. Linux.
4-
4+
include(GNUInstallDirs)
55
include(ExternalProject)
66

77
if(hdf5_parallel)
@@ -17,16 +17,16 @@ set(HDF5_LIBRARIES)
1717
foreach(_name hdf5_hl_fortran hdf5_hl_f90cstub hdf5_fortran hdf5_f90cstub hdf5_hl hdf5)
1818
if(BUILD_SHARED_LIBS)
1919
if(WIN32)
20-
list(APPEND HDF5_LIBRARIES ${CMAKE_INSTALL_PREFIX}/bin/lib${_name}${CMAKE_SHARED_LIBRARY_SUFFIX})
20+
list(APPEND HDF5_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/lib${_name}${CMAKE_SHARED_LIBRARY_SUFFIX})
2121
else()
22-
list(APPEND HDF5_LIBRARIES ${CMAKE_INSTALL_PREFIX}/lib/lib${_name}${CMAKE_SHARED_LIBRARY_SUFFIX})
22+
list(APPEND HDF5_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lib${_name}${CMAKE_SHARED_LIBRARY_SUFFIX})
2323
endif()
2424
else()
25-
list(APPEND HDF5_LIBRARIES ${CMAKE_INSTALL_PREFIX}/lib/lib${_name}${CMAKE_STATIC_LIBRARY_SUFFIX})
25+
list(APPEND HDF5_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/lib${_name}${CMAKE_STATIC_LIBRARY_SUFFIX})
2626
endif()
2727
endforeach()
2828

29-
set(HDF5_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include)
29+
set(HDF5_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
3030

3131
# --- Zlib
3232
if(NOT TARGET ZLIB::ZLIB)
@@ -75,6 +75,7 @@ GIT_SHALLOW true
7575
CMAKE_ARGS ${hdf5_cmake_args}
7676
BUILD_BYPRODUCTS ${HDF5_LIBRARIES}
7777
DEPENDS ZLIB::ZLIB
78+
TLS_VERIFY true
7879
CONFIGURE_HANDLED_BY_BUILD ON
7980
INACTIVITY_TIMEOUT 60
8081
)

cmake/install.cmake

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,19 @@ DESTINATION cmake
2525

2626
# --- CPack
2727

28-
set(CPACK_GENERATOR "TZST")
29-
set(CPACK_SOURCE_GENERATOR "TZST")
28+
set(CPACK_GENERATOR "TBZ2")
29+
set(CPACK_SOURCE_GENERATOR "TBZ2")
3030
set(CPACK_PACKAGE_VENDOR "Michael Hirsch")
3131
set(CPACK_PACKAGE_CONTACT "Michael Hirsch")
3232
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libhdf5-mpi-dev (>=1.10.2), mpi-default-dev, mpi-default-bin")
3333
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
3434
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
35-
set(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/package")
36-
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
3735

3836
# not .gitignore as its regex syntax is more advanced than CMake
39-
set(CPACK_SOURCE_IGNORE_FILES ".git/;.git*/;.vscode/;.mypy_cache/;_CPack_Packages/;${CMAKE_BINARY_DIR}/")
37+
set(CPACK_SOURCE_IGNORE_FILES .git/ .github/ .vscode/ .mypy_cache/ _CPack_Packages/
38+
${CMAKE_BINARY_DIR}/ ${PROJECT_BINARY_DIR}/
39+
archive/
40+
)
4041

4142
install(FILES ${CPACK_RESOURCE_FILE_README} ${CPACK_RESOURCE_FILE_LICENSE}
4243
DESTINATION share/docs/${PROJECT_NAME}

cmake/options.cmake

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include(GNUInstallDirs)
2+
13
message(STATUS "${PROJECT_NAME} ${PROJECT_VERSION} CMake ${CMAKE_VERSION}")
24

35
option(benchmark "Run benchmarks")
@@ -17,19 +19,13 @@ endif()
1719
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
1820

1921
# Rpath options necessary for shared library install to work correctly in user projects
20-
set(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib)
21-
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
22+
set(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
23+
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
2224
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)
2325

2426
# Necessary for shared library with Visual Studio / Windows oneAPI
2527
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS true)
2628

27-
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
28-
# will not take effect without FORCE
29-
# CMAKE_BINARY_DIR for use from FetchContent
30-
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR} CACHE PATH "Install top-level directory" FORCE)
31-
endif()
32-
3329
# allow CMAKE_PREFIX_PATH with ~ expand
3430
if(CMAKE_PREFIX_PATH)
3531
get_filename_component(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ABSOLUTE)

cmake/zlib.cmake

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# build Zlib to ensure compatibility.
22
# We use Zlib 2.x for speed and robustness.
3-
3+
include(GNUInstallDirs)
44
include(ExternalProject)
55

66
if(zlib_legacy)
@@ -16,15 +16,15 @@ set(ZLIB_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include)
1616

1717
if(BUILD_SHARED_LIBS)
1818
if(WIN32)
19-
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/bin/${CMAKE_SHARED_LIBRARY_PREFIX}zlib1${CMAKE_SHARED_LIBRARY_SUFFIX})
19+
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}zlib1${CMAKE_SHARED_LIBRARY_SUFFIX})
2020
else()
21-
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}z${CMAKE_SHARED_LIBRARY_SUFFIX})
21+
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}z${CMAKE_SHARED_LIBRARY_SUFFIX})
2222
endif()
2323
else()
2424
if(MSVC OR (WIN32 AND zlib_legacy))
25-
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}zlibstatic${CMAKE_STATIC_LIBRARY_SUFFIX})
25+
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}zlibstatic${CMAKE_STATIC_LIBRARY_SUFFIX})
2626
else()
27-
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}z${CMAKE_STATIC_LIBRARY_SUFFIX})
27+
set(ZLIB_LIBRARIES ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}z${CMAKE_STATIC_LIBRARY_SUFFIX})
2828
endif()
2929
endif()
3030

@@ -45,6 +45,7 @@ URL ${zlib_url}
4545
URL_HASH SHA256=${zlib_sha256}
4646
CMAKE_ARGS ${zlib_cmake_args}
4747
BUILD_BYPRODUCTS ${ZLIB_LIBRARIES}
48+
TLS_VERIFY true
4849
CONFIGURE_HANDLED_BY_BUILD ON
4950
INACTIVITY_TIMEOUT 60
5051
)
@@ -55,6 +56,7 @@ GIT_TAG ${zlib_tag}
5556
GIT_SHALLOW true
5657
CMAKE_ARGS ${zlib_cmake_args}
5758
BUILD_BYPRODUCTS ${ZLIB_LIBRARIES}
59+
TLS_VERIFY true
5860
CONFIGURE_HANDLED_BY_BUILD ON
5961
INACTIVITY_TIMEOUT 60
6062
)

0 commit comments

Comments
 (0)