Skip to content

Commit a17d8bf

Browse files
committed
Add KDU
1 parent ef8cfd2 commit a17d8bf

File tree

7 files changed

+632
-117
lines changed

7 files changed

+632
-117
lines changed

CMakePresets.json

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,36 @@
11
{
2-
"version": 3,
3-
"cmakeMinimumRequired": {
2+
"version": 3,
3+
"cmakeMinimumRequired": {
44
"major": 3,
5-
"minor": 15,
6-
"patch": 0
5+
"minor": 15,
6+
"patch": 0
7+
},
8+
"configurePresets": [
9+
{
10+
"name": "oss_fuzz",
11+
"cacheVariables": {
12+
"CMAKE_VERBOSE_MAKEFILE": "ON",
13+
"BUILD_SHARED_LIBS": "OFF",
14+
"OPENEXR_FORCE_INTERNAL_IMATH": "ON",
15+
"OPENEXR_FORCE_INTERNAL_DEFLATE": "ON",
16+
"OPENEXR_FORCE_INTERNAL_OPENJPH": "ON",
17+
"OPENEXR_BUILD_TOOLS": "OFF",
18+
"OPENEXR_BUILD_EXAMPLES": "OFF",
19+
"OPENEXR_BUILD_DOCS": "OFF",
20+
"OPENEXR_BUILD_OSS_FUZZ": "ON"
21+
}
722
},
8-
"configurePresets": [
9-
{
10-
"name": "oss_fuzz",
11-
"cacheVariables": {
12-
"CMAKE_VERBOSE_MAKEFILE": "ON",
13-
"BUILD_SHARED_LIBS": "OFF",
14-
"OPENEXR_FORCE_INTERNAL_IMATH": "ON",
15-
"OPENEXR_FORCE_INTERNAL_DEFLATE": "ON",
16-
"OPENEXR_FORCE_INTERNAL_OPENJPH": "ON",
17-
"OPENEXR_BUILD_TOOLS": "OFF",
18-
"OPENEXR_BUILD_EXAMPLES": "OFF",
19-
"OPENEXR_BUILD_DOCS": "OFF",
20-
"OPENEXR_BUILD_OSS_FUZZ": "ON"
21-
}
22-
}
23-
]
24-
}
23+
{
24+
"name": "GCC",
25+
"displayName": "GCC 9.4.0 x86_64-linux-gnu",
26+
"description": "Using compilers: C = /usr/bin/gcc, CXX = /usr/bin/g++",
27+
"binaryDir": "${sourceDir}/out/build/${presetName}",
28+
"cacheVariables": {
29+
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
30+
"CMAKE_C_COMPILER": "/usr/bin/gcc",
31+
"CMAKE_CXX_COMPILER": "/usr/bin/g++",
32+
"CMAKE_BUILD_TYPE": "Debug"
33+
}
34+
}
35+
]
36+
}

cmake/LibraryDefine.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@ function(OPENEXR_DEFINE_LIBRARY libname)
1717
${OPENEXR_CURLIB_HEADERS}
1818
${OPENEXR_CURLIB_SOURCES})
1919

20+
# KDU
21+
if(KDU_LIBRARY)
22+
message("Using Kakadu SDK instead of OpenJPH")
23+
target_include_directories(${objlib} PRIVATE ${KDU_INCLUDE_DIR})
24+
target_compile_definitions(${objlib} PRIVATE KDU_AVAILABLE=1)
25+
target_link_libraries(${objlib} PUBLIC ${PROJECT_NAME}::Config ${OPENEXR_CURLIB_DEPENDENCIES} ${KDU_LIBRARY} ${CMAKE_DL_LIBS} openjph)
26+
else()
27+
target_link_libraries(${objlib} PUBLIC ${PROJECT_NAME}::Config ${OPENEXR_CURLIB_DEPENDENCIES} ${CMAKE_DL_LIBS} openjph)
28+
endif()
29+
2030
# Use ${OPENEXR_CXX_STANDARD} to determine the standard we use to compile
2131
# OpenEXR itself. The headers will use string_view and such, so ensure
2232
# the user is at least 17, but could be higher

cmake/OpenEXRSetup.cmake

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,22 @@ else()
317317
endif()
318318

319319

320+
#######################################
321+
# Get KDU
322+
#######################################
323+
324+
message(STATUS "Fetching KDU")
325+
find_path(KDU_INCLUDE_DIR kdu_args.h PATH_SUFFIXES kakadu kdu)
326+
find_library(KDU_LIBRARY NAMES kdu_a84R PATH_SUFFIXES kakadu kdu)
327+
328+
if(NOT(KDU_INCLUDE_DIR) OR NOT(KDU_LIBRARY))
329+
message("Kakadu SDK not found: ${KDU_LIBRARY} and ${KDU_INCLUDE_DIR}.")
330+
set(KDU_INCLUDE_DIR CACHE PATH "" FORCE)
331+
set(KDU_LIBRARY CACHE PATH "" FORCE)
332+
else()
333+
message("Kakadu SDK found: ${KDU_LIBRARY} and ${KDU_INCLUDE_DIR}.")
334+
endif()
335+
320336
#######################################
321337
# Find or download OpenJPH
322338
#######################################

0 commit comments

Comments
 (0)