@@ -299,35 +299,52 @@ endif()
299299
300300
301301#######################################
302- # Get OpenJPH
302+ # Find or download OpenJPH
303303#######################################
304304
305- message (STATUS "Fetching OpenJPH" )
306-
307- include (FetchContent)
308- FetchContent_Declare(
309- openjph
310- GIT_REPOSITORY https://github.com/aous72/OpenJPH
311- GIT_TAG supporting_differing_components
312- )
313-
314- set (OJPH_BUILD_TESTS OFF CACHE BOOL "" FORCE)
315- set (OJPH_ENABLE_TIFF_SUPPORT OFF CACHE BOOL "" FORCE)
316- set (OJPH_BUILD_EXECUTABLES OFF CACHE BOOL "" FORCE)
317- FetchContent_MakeAvailable(openjph)
318- install (
319- TARGETS openjph
320- EXPORT ${PROJECT_NAME}
321- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
322- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
323- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
324- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
325- PUBLIC_HEADER
326- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${OPENEXR_OUTPUT_SUBDIR}
327- )
328- set_target_properties (openjph PROPERTIES
329- RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin"
330- )
305+ message (STATUS "Locating OpenJPH" )
306+
307+ option (OPENEXR_OJPH_USE_FINDPACKAGE "Use find_package instead of downloading OpenJPH from a git repo" OFF )
308+ set (OPENEXR_OJPH_REPO "https://github.com/aous72/OpenJPH.git" CACHE STRING "OpenJPH Git repo URI" )
309+ set (OPENEXR_OJPH_TAG "supporting_differing_components" CACHE STRING "OpenJPH Git repo tag" )
310+
311+ if (NOT (OPENJPH_INCLUDE_DIRS AND OPENJPH_LIBRARIES))
312+ if (OPENEXR_OJPH_USE_FINDPACKAGE)
313+ find_package (openjph 0.19)
314+ else ()
315+ include (FetchContent)
316+ FetchContent_Declare(
317+ openjph
318+ GIT_REPOSITORY ${OPENEXR_OJPH_REPO}
319+ GIT_TAG ${OPENEXR_OJPH_TAG}
320+ )
321+
322+ set (OJPH_BUILD_TESTS OFF CACHE BOOL "" FORCE)
323+ set (OJPH_ENABLE_TIFF_SUPPORT OFF CACHE BOOL "" FORCE)
324+ set (OJPH_BUILD_EXECUTABLES OFF CACHE BOOL "" FORCE)
325+ FetchContent_MakeAvailable(openjph)
326+ install (
327+ TARGETS openjph
328+ EXPORT ${PROJECT_NAME}
329+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
330+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
331+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
332+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
333+ PUBLIC_HEADER
334+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${OPENEXR_OUTPUT_SUBDIR}
335+ )
336+ set_target_properties (openjph PROPERTIES
337+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin"
338+ )
339+
340+ set (OPENJPH_INCLUDE_DIRS "${openjph_SOURCE_DIR} /src/core/common" )
341+ set (OPENJPH_LIBRARIES openjph)
342+ endif ()
343+ endif ()
344+
345+ if (NOT (OPENJPH_INCLUDE_DIRS AND OPENJPH_LIBRARIES))
346+ message (SEND_ERROR "OpenJPH could not be found." )
347+ endif ()
331348
332349#######################################
333350# Find or install Imath
0 commit comments