HPCW 3.0
Loading...
Searching...
No Matches
szip.cmake
Go to the documentation of this file.
1# Copyright (c) 2019 - 2024 David Guibert
2# Copyright (c) 2024 Antoine Morvan
3# All rights reserved.
4#
5# SPDX-License-Identifier: Apache-2.0
6
7set_property(GLOBAL PROPERTY szip_can_use_system TRUE)
8
9set(szip_configure_args "" CACHE STRING "Custom configure arguments for szip")
10set(szip_build_args "" CACHE STRING "Custom Make arguments for szip")
11
12if(szip_enabled)
13 if(USE_SYSTEM_szip)
14 message(STATUS "SZIP: enabled (system installed)")
15 set(FIND_SZIP_DEBUG ON)
16 find_package(SZIP REQUIRED)
17
18 set_if_not_present(ENV{CPATH} "$ENV{CPATH}" "${SZIP_INCLUDE_DIR}")
19
20 get_filename_component(SZIP_DIR "${SZIP_LIBRARIES}" PATH)
21 get_filename_component(SZIP_DIR "${SZIP_DIR}" PATH)
22 set_if_not_present(ENV{CPATH} "$ENV{CPATH}" "${SZIP_DIR}/include")
23 set_if_not_present(ENV{LIBRARY_PATH} "$ENV{LIBRARY_PATH}" "${SZIP_DIR}/lib")
24 set_if_not_present(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}"
25 "${SZIP_DIR}/lib")
26 else()
27 if(NOT TARGET szip)
28 message(STATUS "SZIP: enabled (internally built)")
29
30 ExternalProject_Data_Add(
31 szip
32 ${szip_revision}
33 CONFIGURE_COMMAND env
34 CPATH=$ENV{CPATH} C_INCLUDE_PATH=$ENV{C_INCLUDE_PATH}
35 LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH} LIBRARY_PATH=$ENV{LIBRARY_PATH}
36 CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
37 FC=${CMAKE_Fortran_COMPILER} ./configure --enable-shared
38 --enable-static --enable-production --enable-encoding
39 --prefix=<INSTALL_DIR> ${default_configure_args} ${szip_configure_args}
40 BUILD_COMMAND env
41 CPATH=$ENV{CPATH} C_INCLUDE_PATH=$ENV{C_INCLUDE_PATH}
42 LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH} LIBRARY_PATH=$ENV{LIBRARY_PATH}
43 ${CMAKE_MAKE_PROGRAM} -j${BUILD_PARALLEL_LEVEL} ${default_build_args} ${szip_build_args})
44
45 ExternalProject_Get_Property(szip INSTALL_DIR)
46 set(SZIP_DIR ${INSTALL_DIR})
47
48 set(SZIP_LIBRARIES ${SZIP_DIR}/lib/libsz.so)
49 set(SZIP_INCLUDE_DIRS ${SZIP_DIR}/include)
50 if(NOT TARGET SZIP::SZIP)
51 add_library(SZIP::SZIP UNKNOWN IMPORTED)
52 set_target_properties(
53 SZIP::SZIP PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
54 ${SZIP_INCLUDE_DIRS})
55 if(SZIP_VERSION)
56 set_target_properties(SZIP::SZIP PROPERTIES VERSION "${SZIP_VERSION}")
57 endif()
58 # if(SZIP_LIBRARY_RELEASE)
59 set_target_properties(
60 SZIP::SZIP PROPERTIES IMPORTED_LOCATION ${SZIP_LIBRARIES}
61 LINK_LIBRARIES ${SZIP_LIBRARIES})
62 # endif() if(SZIP_LIBRARY_DEBUG) # libsz_d libszip_d
63 # set_target_properties(SZIP::SZIP PROPERTIES IMPORTED_LOCATION_DEBUG
64 # ${SZIP_LIBRARY_DEBUG}) endif()
65 add_dependencies(SZIP::SZIP szip)
66 endif()
67
68 set_if_not_present(ENV{CPATH} "$ENV{CPATH}" "${SZIP_DIR}/include")
69 set_if_not_present(ENV{LIBRARY_PATH} "$ENV{LIBRARY_PATH}"
70 "${SZIP_DIR}/lib")
71 set_if_not_present(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}"
72 "${SZIP_DIR}/lib")
73
74 endif()
75 endif()
76endif()