Skip to content

Commit a1e1945

Browse files
fix Cmake/compile without KDU, enable exrconv, add docker
1 parent 8068615 commit a1e1945

File tree

5 files changed

+66
-29
lines changed

5 files changed

+66
-29
lines changed

Dockerfile

+4-25
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# docker build --rm -f ./openexr-ht/Dockerfile -t openexr:latest .
2-
# docker run -it --rm -v C:\\temp:/tmp/ openexr:latest
1+
# docker build --rm -f Dockerfile -t openexr-ht:latest .
2+
# docker run -it --rm -v C:\\temp:/tmp/ openexr-ht:latest
33
FROM ubuntu:jammy
44

55
RUN apt-get update
@@ -18,32 +18,11 @@ RUN apt-get -y install python3
1818
# install developement debugging tools
1919
RUN apt-get -y install valgrind
2020

21-
# set Kakadu distribution version and unique serial number
22-
ARG KDU_SOURCE_NAME=v8_4_1-00462N
23-
# set path to location of source zip, in this case its here ./v8_2_1-00462N.zip
24-
ARG KDU_SOURCE_ZIP_DIRECTORY=./
25-
WORKDIR /usr/src/kakadu
26-
COPY $KDU_SOURCE_ZIP_DIRECTORY/$KDU_SOURCE_NAME.zip $KDU_SOURCE_NAME.zip
27-
#COPY v8_4_1-00462N.zip /usr/src/kakadu.zip
28-
RUN unzip $KDU_SOURCE_NAME.zip
29-
RUN rm -f $KDU_SOURCE_NAME.zip
30-
# enable HTJ2K
31-
WORKDIR /usr/src/kakadu/$KDU_SOURCE_NAME/
32-
RUN mv srclib_ht srclib_ht_noopt; cp -r altlib_ht_opt srclib_ht
33-
# compile Kakadu SDK and demo apps with HTJ2K enabled (#define FBC_ENABLED)
34-
WORKDIR /usr/src/kakadu/$KDU_SOURCE_NAME/make
35-
RUN make CXXFLAGS=-DFBC_ENABLED -f Makefile-Linux-x86-64-gcc all_but_jni
36-
# set environment variables
37-
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/src/kakadu/$KDU_SOURCE_NAME/lib/Linux-x86-64-gcc
38-
ENV PATH=$PATH:/usr/src/kakadu/$KDU_SOURCE_NAME/bin/Linux-x86-64-gcc
39-
ENV KDU_INCLUDE_DIR=/usr/src/kakadu/$KDU_SOURCE_NAME/managed/all_includes
40-
ENV KDU_LIBRARY=/usr/src/kakadu/$KDU_SOURCE_NAME/lib/Linux-x86-64-gcc/libkdu_a84R.so
41-
4221
# build OpenEXR
4322
WORKDIR /usr/src/OpenEXR
44-
COPY ./openexr-ht .
23+
COPY . .
4524
WORKDIR /usr/src/OpenEXR/build
46-
RUN cmake .. -DKDU_INCLUDE_DIR=$KDU_INCLUDE_DIR -DKDU_LIBRARY=$KDU_LIBRARY
25+
RUN cmake ..
4726
RUN make
4827
RUN make install
4928

Dockerfile_KDU

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# run this docker file outside the openexr-ht folder so Kakadu SDK ZIP is not included in the git repo
2+
# docker build --rm -f ./openexr-ht/Dockerfile_KDU -t openexr-ht-kdu:latest .
3+
# docker run -it --rm -v C:\\temp:/tmp/ openexr-ht-kdu:latest
4+
FROM ubuntu:jammy
5+
6+
RUN apt-get update
7+
8+
# disable interactive install
9+
ENV DEBIAN_FRONTEND noninteractive
10+
11+
# install developement tools
12+
RUN apt-get -y install cmake
13+
RUN apt-get -y install g++
14+
RUN apt-get -y install git
15+
RUN apt-get -y install unzip
16+
RUN apt-get -y install libnuma-dev
17+
RUN apt-get -y install python3
18+
19+
# install developement debugging tools
20+
RUN apt-get -y install valgrind
21+
22+
# set Kakadu distribution version and unique serial number
23+
ARG KDU_SOURCE_NAME=v8_4_1-00462N
24+
# set path to location of source zip, in this case its here ./v8_2_1-00462N.zip
25+
ARG KDU_SOURCE_ZIP_DIRECTORY=./
26+
WORKDIR /usr/src/kakadu
27+
COPY $KDU_SOURCE_ZIP_DIRECTORY/$KDU_SOURCE_NAME.zip $KDU_SOURCE_NAME.zip
28+
RUN unzip $KDU_SOURCE_NAME.zip
29+
RUN rm -f $KDU_SOURCE_NAME.zip
30+
# enable HTJ2K
31+
WORKDIR /usr/src/kakadu/$KDU_SOURCE_NAME/
32+
RUN mv srclib_ht srclib_ht_noopt; cp -r altlib_ht_opt srclib_ht
33+
# compile Kakadu SDK and demo apps with HTJ2K enabled (#define FBC_ENABLED)
34+
WORKDIR /usr/src/kakadu/$KDU_SOURCE_NAME/make
35+
RUN make CXXFLAGS=-DFBC_ENABLED -f Makefile-Linux-x86-64-gcc all_but_jni
36+
# set environment variables
37+
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/src/kakadu/$KDU_SOURCE_NAME/lib/Linux-x86-64-gcc
38+
ENV PATH=$PATH:/usr/src/kakadu/$KDU_SOURCE_NAME/bin/Linux-x86-64-gcc
39+
ENV KDU_INCLUDE_DIR=/usr/src/kakadu/$KDU_SOURCE_NAME/managed/all_includes
40+
ENV KDU_LIBRARY=/usr/src/kakadu/$KDU_SOURCE_NAME/lib/Linux-x86-64-gcc/libkdu_a84R.so
41+
42+
# build OpenEXR
43+
WORKDIR /usr/src/OpenEXR
44+
COPY ./openexr-ht .
45+
WORKDIR /usr/src/OpenEXR/build
46+
RUN cmake .. -DKDU_INCLUDE_DIR=$KDU_INCLUDE_DIR -DKDU_LIBRARY=$KDU_LIBRARY
47+
RUN make
48+
RUN make install
49+
50+
# finalize docker environment
51+
52+
53+

cmake/LibraryDefine.cmake

+8-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ function(OPENEXR_DEFINE_LIBRARY libname)
2828
target_include_directories(${objlib} PRIVATE ${openjph_SOURCE_DIR}/src/core/common)
2929

3030
# we are including KDU
31-
target_include_directories(${objlib} PRIVATE ${KDU_INCLUDE_DIR})
31+
if( KDU_INCLUDE_DIR )
32+
target_include_directories(${objlib} PRIVATE ${KDU_INCLUDE_DIR})
33+
endif()
3234

3335
# we are embedding libdeflate
3436
target_include_directories(${objlib} PRIVATE ${EXR_DEFLATE_INCLUDE_DIR})
@@ -51,7 +53,11 @@ function(OPENEXR_DEFINE_LIBRARY libname)
5153
target_compile_definitions(${objlib} PRIVATE KDU_AVAILABLE=1)
5254
endif()
5355

54-
target_link_libraries(${objlib} PUBLIC ${PROJECT_NAME}::Config ${OPENEXR_CURLIB_DEPENDENCIES} ${KDU_LIBRARY} ${CMAKE_DL_LIBS} openjph)
56+
if(KDU_LIBRARY)
57+
target_link_libraries(${objlib} PUBLIC ${PROJECT_NAME}::Config ${OPENEXR_CURLIB_DEPENDENCIES} ${KDU_LIBRARY} ${CMAKE_DL_LIBS} openjph)
58+
else()
59+
target_link_libraries(${objlib} PUBLIC ${PROJECT_NAME}::Config ${OPENEXR_CURLIB_DEPENDENCIES} ${CMAKE_DL_LIBS} openjph)
60+
endif()
5561
if(OPENEXR_CURLIB_PRIVATE_DEPS)
5662
target_link_libraries(${objlib} PRIVATE ${OPENEXR_CURLIB_PRIVATE_DEPS})
5763
endif()

src/bin/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ add_subdirectory( exrmultipart )
2020
add_subdirectory( exrcheck )
2121
add_subdirectory( exrmanifest )
2222
add_subdirectory( exrperf )
23+
add_subdirectory( exrconv )

src/lib/OpenEXRCore/internal_htk.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,6 @@ internal_exr_apply_htk (exr_encode_pipeline_t* encode)
221221

222222
#else
223223

224-
#error
225-
226224
extern "C" exr_result_t
227225
internal_exr_undo_htk (
228226
exr_decode_pipeline_t* decode,

0 commit comments

Comments
 (0)