Skip to content

Commit 7a3730b

Browse files
committed
Proper compilation of the OpenJPH dependency of OpenEXR
1 parent c3746eb commit 7a3730b

2 files changed

Lines changed: 48 additions & 4 deletions

File tree

cmake/dependency.openexr.cmake

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
include(${CMAKE_SOURCE_DIR}/cmake/external_project_common.cmake)
99

10+
include(${CMAKE_SOURCE_DIR}/cmake/dependency.openjph.cmake)
11+
1012
find_package(Git REQUIRED) # needed by OpenEXR
1113

1214
ExternalProject_Add(EXR
@@ -21,11 +23,12 @@ ExternalProject_Add(EXR
2123
UPDATE_COMMAND ""
2224
PATCH_COMMAND ""
2325
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t OpenEXR
24-
CMAKE_ARGS ${CMAKE_BUILD_TYPE_ARG} "-DOPENEXR_FORCE_INTERNAL_IMATH=ON" "-DOPENEXR_FORCE_INTERNAL_DEFLATE=ON" "-DOPENEXR_INSTALL=ON" "-DOPENEXR_INSTALL_TOOLS=OFF"
25-
"-DOPENEXR_INSTALL_EXAMPLES=OFF" "-DOPENEXR_INSTALL_PKG_CONFIG=OFF" "-DOPENEXR_BUILD_TOOLS=OFF" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF"
26+
CMAKE_ARGS ${CMAKE_BUILD_TYPE_ARG} "-DOPENEXR_IS_SUBPROJECT=ON" "-DOPENEXR_FORCE_INTERNAL_IMATH=ON" "-DOPENEXR_FORCE_INTERNAL_DEFLATE=ON" "-DOPENEXR_INSTALL=ON"
27+
"-DOPENEXR_INSTALL_TOOLS=OFF" "-DOPENEXR_INSTALL_EXAMPLES=OFF" "-DOPENEXR_INSTALL_PKG_CONFIG=OFF" "-DOPENEXR_BUILD_TOOLS=OFF" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTING=OFF"
2628
"-DOPENEXR_LIB_SUFFIX=" "-DGIT_EXECUTABLE:PATH=${GIT_EXECUTABLE}" "-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG}" "-DCMAKE_CXX_FLAGS:STRING=${ZERO_WARNINGS_FLAG}"
27-
"-DIMATH_LIB_SUFFIX=" "-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/openexr/install"
29+
"-DIMATH_LIB_SUFFIX=" "-Dopenjph_ROOT=${OPENJPH_ROOT}" "-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/openexr/install"
2830
EXCLUDE_FROM_ALL
31+
DEPENDS OPENJPH
2932
)
3033

3134
ExternalProject_Get_Property(EXR INSTALL_DIR)
@@ -39,8 +42,8 @@ link_library_path2(LibOpenEXR ${INSTALL_DIR}/lib ${CMAKE_STATIC_LIBRARY_PREFIX}O
3942
link_library_path2(LibOpenEXR ${INSTALL_DIR}/lib ${CMAKE_STATIC_LIBRARY_PREFIX}Imath${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}Imath_d${CMAKE_STATIC_LIBRARY_SUFFIX})
4043
link_library_path2(LibOpenEXR ${INSTALL_DIR}/lib ${CMAKE_STATIC_LIBRARY_PREFIX}Iex${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}Iex_d${CMAKE_STATIC_LIBRARY_SUFFIX})
4144
link_library_path2(LibOpenEXR ${INSTALL_DIR}/lib ${CMAKE_STATIC_LIBRARY_PREFIX}IlmThread${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}IlmThread_d${CMAKE_STATIC_LIBRARY_SUFFIX})
42-
link_library_path2(LibOpenEXR ${INSTALL_DIR}/lib ${CMAKE_STATIC_LIBRARY_PREFIX}openjph${OPENJPH_VERSION_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}openjph${OPENJPH_VERSION_SUFFIX}_d${CMAKE_STATIC_LIBRARY_SUFFIX})
4345
target_include_directories(LibOpenEXR INTERFACE ${INSTALL_DIR}/include ${INSTALL_DIR}/include/Imath ${INSTALL_DIR}/include/OpenEXR)
46+
target_link_libraries(LibOpenEXR INTERFACE LibOpenJPH)
4447
set_property(TARGET EXR PROPERTY FOLDER "Dependencies")
4548

4649
unset(INSTALL_DIR)

cmake/dependency.openjph.cmake

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# OpenJPH dependency (JPEG 2000)
2+
#
3+
# Output target: LibOpenJPH
4+
#
5+
6+
include(${CMAKE_SOURCE_DIR}/cmake/external_project_common.cmake)
7+
8+
ExternalProject_Add(OPENJPH
9+
PREFIX ${CMAKE_BINARY_DIR}/openjph
10+
URL "https://github.com/aous72/OpenJPH/archive/refs/tags/0.26.0.zip"
11+
URL_MD5 "8a26d7e57e78b5e06c7a4737ace63b5b"
12+
DOWNLOAD_DIR "${CMAKE_SOURCE_DIR}/dependencies/openjph"
13+
SOURCE_DIR "${EXTERNALPROJECT_SOURCE_PREFIX}/dependencies/openjph/source"
14+
BINARY_DIR "${CMAKE_BINARY_DIR}/openjph/build"
15+
INSTALL_DIR "${CMAKE_BINARY_DIR}/openjph/install"
16+
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
17+
UPDATE_COMMAND ""
18+
PATCH_COMMAND ""
19+
BUILD_COMMAND ${BUILD_COMMAND_FOR_TARGET} -t openjph
20+
CMAKE_ARGS ${CMAKE_BUILD_TYPE_ARG} "-DBUILD_SHARED_LIBS=OFF" "-DOJPH_BUILD_TESTS=OFF" "-DOJPH_ENABLE_TIFF_SUPPORT=OFF" "-DOJPH_BUILD_EXECUTABLES=OFF"
21+
"-DCMAKE_C_FLAGS:STRING=${ZERO_WARNINGS_FLAG} -fPIC" "-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/openjph/install"
22+
EXCLUDE_FROM_ALL
23+
)
24+
25+
ExternalProject_Get_Property(OPENJPH SOURCE_DIR)
26+
ExternalProject_Get_Property(OPENJPH BINARY_DIR)
27+
ExternalProject_Get_Property(OPENJPH INSTALL_DIR)
28+
29+
add_library(LibOpenJPH INTERFACE)
30+
add_dependencies(LibOpenJPH OPENJPH)
31+
link_library_path2(LibOpenJPH ${INSTALL_DIR}/lib ${CMAKE_STATIC_LIBRARY_PREFIX}openjph.0.26${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}openjph.0.26d${CMAKE_STATIC_LIBRARY_SUFFIX})
32+
target_include_directories(LibOpenJPH INTERFACE ${INSTALL_DIR}/include)
33+
set_property(TARGET OPENJPH PROPERTY FOLDER "Dependencies")
34+
35+
36+
set(OPENJPH_ROOT ${INSTALL_DIR})
37+
38+
unset(SOURCE_DIR)
39+
unset(BINARY_DIR)
40+
unset(INSTALL_DIR)
41+

0 commit comments

Comments
 (0)