Skip to content

Commit

Permalink
Add FindJasper.cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
DusanJovic-NOAA committed Aug 13, 2024
1 parent 113c602 commit ad48a6b
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
3 changes: 3 additions & 0 deletions libs/ufslibs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ find_package(MPI REQUIRED C CXX Fortran)

set(install_prefix ${CMAKE_INSTALL_PREFIX})

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

##
## zstd
##
Expand Down Expand Up @@ -321,6 +323,7 @@ foreach(lib_name bacio g2 g2tmpl ip sp w3emc)
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${install_prefix}/${lib_name}
-DCMAKE_INSTALL_LIBDIR=lib
-DCMAKE_PREFIX_PATH=${install_prefix}/netcdf,${install_prefix}/jasper,${install_prefix}/libpng,${install_prefix}/zlib
-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}
-Dbacio_ROOT=${install_prefix}/bacio
-Dg2_ROOT=${install_prefix}/g2
-Dg2tmpl_ROOT=${install_prefix}/g2tmpl
Expand Down
90 changes: 90 additions & 0 deletions libs/ufslibs/cmake/FindJasper.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

#[=======================================================================[.rst:
FindJasper
----------
Find the Jasper JPEG2000 library.
IMPORTED Targets
^^^^^^^^^^^^^^^^
``Jasper::Jasper``
The jasper library, if found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``JASPER_FOUND``
system has Jasper
``JASPER_INCLUDE_DIRS``
.. versionadded:: 3.22
the Jasper include directory
``JASPER_LIBRARIES``
the libraries needed to use Jasper
``JASPER_VERSION_STRING``
the version of Jasper found
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``JASPER_INCLUDE_DIR``
where to find jasper/jasper.h, etc.
``JASPER_LIBRARY_RELEASE``
where to find the Jasper library (optimized).
``JASPER_LIBARRY_DEBUG``
where to find the Jasper library (debug).
#]=======================================================================]

find_path(JASPER_INCLUDE_DIR jasper/jasper.h)
mark_as_advanced(JASPER_INCLUDE_DIR)

if(NOT JASPER_LIBRARIES)
find_library(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
find_library(JASPER_LIBRARY_DEBUG NAMES jasperd)
include(SelectLibraryConfigurations)
select_library_configurations(JASPER)
endif()

if(JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
file(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
string(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Jasper
REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR
VERSION_VAR JASPER_VERSION_STRING)

if(JASPER_FOUND)
set(JASPER_LIBRARIES ${JASPER_LIBRARIES})
set(JASPER_INCLUDE_DIRS ${JASPER_INCLUDE_DIR})
if(NOT TARGET Jasper::Jasper)
add_library(Jasper::Jasper UNKNOWN IMPORTED)
if(JASPER_INCLUDE_DIRS)
set_target_properties(Jasper::Jasper PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${JASPER_INCLUDE_DIRS}")
endif()
if(EXISTS "${JASPER_LIBRARY_RELEASE}")
set_property(TARGET Jasper::Jasper APPEND PROPERTY
IMPORTED CONFIGURATION RELEASE)
set_target_properties(Jasper::Jasper PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION "${JASPER_LIBRARY_RELEASE}")
endif()
if(EXISTS "${JASPER_LIBRARY_DEBUG}")
set_property(TARGET Jasper::Jasper APPEND PROPERTY
IMPORTED CONFIGURATION DEBUG)
set_target_properties(Jasper::Jasper PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
IMPORTED_LOCATION "${JASPER_LIBRARY_DEBUG}")
endif()
endif()
endif()

0 comments on commit ad48a6b

Please sign in to comment.