1
set (libOpenImageIO_hdrs ../include/argparse.h
4
../include/errorhandler.h
5
../include/filesystem.h
10
../include/imagecache.h
13
../include/paramlist.h
23
../include/varyingref.h
26
if (NOT USE_EXTERNAL_PUGIXML)
27
list (APPEND libOpenImageIO_hdrs
28
../include/pugiconfig.hpp
29
../include/pugixml.hpp
30
../include/pugixml.cpp
34
set (libOpenImageIO_srcs exif.cpp formatspec.cpp imagebuf.cpp
35
imageinput.cpp imageio.cpp imageioplugin.cpp
36
imageoutput.cpp iptc.cpp xmp.cpp
39
imagebufalgo_compare.cpp
41
imagebufalgo_pixelmath.cpp
42
imagebufalgo_yee.cpp imagebufalgo_opencv.cpp
44
../libutil/argparse.cpp
45
../libutil/errorhandler.cpp
46
../libutil/filesystem.cpp
49
../libutil/paramlist.cpp
51
../libutil/pystring.cpp
53
../libutil/strutil.cpp
54
../libutil/sysutil.cpp
55
../libutil/typedesc.cpp
56
../libutil/ustring.cpp
57
../libtexture/texturesys.cpp
58
../libtexture/texture3d.cpp
59
../libtexture/environment.cpp
60
../libtexture/texoptions.cpp
61
../libtexture/imagecache.cpp
62
${libOpenImageIO_hdrs}
65
#if (NOT USE_EXTERNAL_PUGIXML)
66
# list (APPEND libOpenImageIO_srcs ../libutil/pugixml.cpp)
69
# Include our own TBB if using it
70
if (USE_TBB AND USE_EXTERNAL_TBB)
71
message (STATUS "System TBB library will be used.")
72
find_package (TBB REQUIRED)
73
include_directories (${TBB_INCLUDE_DIRS})
74
set (libOpenImageIO_srcs ${libOpenImageIO_srcs})
75
elseif (USE_TBB AND NOT USE_EXTERNAL_TBB)
76
message (STATUS "Built-in TBB library will be used.")
77
set (libOpenImageIO_srcs ${libOpenImageIO_srcs} ../libutil/tbb_misc.cpp)
80
# If the 'EMBEDPLUGINS' option is set, we want to compile the source for
81
# all the plugins into libOpenImageIO.
83
set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
84
../bmp.imageio/bmpinput.cpp ../bmp.imageio/bmpoutput.cpp
85
../bmp.imageio/bmp_pvt.cpp
86
../cineon.imageio/cineoninput.cpp ../cineon.imageio/cineonoutput.cpp
87
../cineon.imageio/libcineon/Cineon.cpp
88
../cineon.imageio/libcineon/Codec.cpp ../cineon.imageio/libcineon/Reader.cpp
89
../cineon.imageio/libcineon/Writer.cpp ../cineon.imageio/libcineon/CineonHeader.cpp
90
../cineon.imageio/libcineon/ElementReadStream.cpp ../cineon.imageio/libcineon/InStream.cpp
91
../dds.imageio/ddsinput.cpp ../dds.imageio/ddsoutput.cpp
92
../dds.imageio/squish/alpha.cpp ../dds.imageio/squish/clusterfit.cpp
93
../dds.imageio/squish/colourblock.cpp ../dds.imageio/squish/colourfit.cpp
94
../dds.imageio/squish/colourset.cpp ../dds.imageio/squish/maths.cpp
95
../dds.imageio/squish/rangefit.cpp ../dds.imageio/squish/singlecolourfit.cpp
96
../dds.imageio/squish/squish.cpp
97
../dpx.imageio/dpxinput.cpp ../dpx.imageio/dpxoutput.cpp
98
../dpx.imageio/libdpx/DPX.cpp ../dpx.imageio/libdpx/OutStream.cpp
99
../dpx.imageio/libdpx/RunLengthEncoding.cpp ../dpx.imageio/libdpx/Codec.cpp
100
../dpx.imageio/libdpx/Reader.cpp ../dpx.imageio/libdpx/Writer.cpp
101
../dpx.imageio/libdpx/DPXHeader.cpp ../dpx.imageio/libdpx/ElementReadStream.cpp
102
../dpx.imageio/libdpx/InStream.cpp ../dpx.imageio/libdpx/DPXColorConverter.cpp
103
../fits.imageio/fitsinput.cpp ../fits.imageio/fitsoutput.cpp
104
../fits.imageio/fits_pvt.cpp
105
../hdr.imageio/hdrinput.cpp ../hdr.imageio/hdroutput.cpp
106
../hdr.imageio/rgbe.cpp
107
../ico.imageio/icoinput.cpp ../ico.imageio/icooutput.cpp
108
../iff.imageio/iffinput.cpp
109
../iff.imageio/iffoutput.cpp
110
../iff.imageio/iff_pvt.cpp
111
../jpeg.imageio/jpeginput.cpp ../jpeg.imageio/jpegoutput.cpp
112
../png.imageio/pnginput.cpp ../png.imageio/pngoutput.cpp
113
../pnm.imageio/pnminput.cpp ../pnm.imageio/pnmoutput.cpp
114
../psd.imageio/psdinput.cpp ../psd.imageio/psdoutput.cpp
115
../psd.imageio/jpeg_memory_src.cpp
116
../ptex.imageio/ptexinput.cpp ../ptex.imageio/ptexoutput.cpp
117
../ptex.imageio/ptex/PtexCache.cpp ../ptex.imageio/ptex/PtexFilters.cpp
118
../ptex.imageio/ptex/PtexHalf.cpp ../ptex.imageio/ptex/PtexReader.cpp
119
../ptex.imageio/ptex/PtexSeparableFilter.cpp
120
../ptex.imageio/ptex/PtexSeparableKernel.cpp
121
../ptex.imageio/ptex/PtexTriangleFilter.cpp
122
../ptex.imageio/ptex/PtexTriangleKernel.cpp
123
../ptex.imageio/ptex/PtexUtils.cpp ../ptex.imageio/ptex/PtexWriter.cpp
124
../openexr.imageio/exrinput.cpp ../openexr.imageio/exroutput.cpp
125
../rla.imageio/rlainput.cpp ../rla.imageio/rlaoutput.cpp
126
../sgi.imageio/sgiinput.cpp ../sgi.imageio/sgioutput.cpp
127
../softimage.imageio/softimageinput.cpp
128
../softimage.imageio/softimageoutput.cpp
129
../softimage.imageio/softimage_pvt.cpp
130
../targa.imageio/targainput.cpp ../targa.imageio/targaoutput.cpp
131
../tiff.imageio/tiffinput.cpp ../tiff.imageio/tiffoutput.cpp
132
../zfile.imageio/zfile.cpp
134
if (NOT Boost_VERSION LESS "103500")
135
# Boost < 1.35 is too old to support asio that socket needs
136
set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
137
../socket.imageio/socketinput.cpp
138
../socket.imageio/socketoutput.cpp
139
../socket.imageio/socket_pvt.cpp
141
add_definitions ("-DUSE_BOOST_ASIO=1")
143
find_package (PNG REQUIRED)
144
find_package (JPEG REQUIRED)
145
find_package (TIFF REQUIRED)
146
find_package (ZLIB REQUIRED)
147
include_directories (${PNG_INCLUDE_DIR} ${JPEG_INCLUDE_DIR})
148
include_directories (${TIFF_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
150
add_definitions ("-DEMBED_PLUGINS=1")
152
if (FIELD3D_FOUND AND USE_FIELD3D)
153
set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
154
../field3d.imageio/field3dinput.cpp
155
../field3d.imageio/field3doutput.cpp
157
include_directories (${FIELD3D_INCLUDE_DIR})
159
message (STATUS "Field3D plugin will not be built")
160
set (FIELD3D_LIBRARY "")
161
set (HDF5_LIBRARY "")
164
if (OPENJPEG_FOUND AND USE_OPENJPEG)
165
set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
166
../jpeg2000.imageio/jpeg2000input.cpp ../jpeg2000.imageio/jpeg2000output.cpp)
167
include_directories (${OPENJPEG_INCLUDE_DIR})
168
add_definitions("-DUSE_OPENJPEG")
170
message (STATUS "Jpeg-2000 plugin will not be built")
174
set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
175
../webp.imageio/webpinput.cpp
176
../webp.imageio/webpoutput.cpp
178
include_directories (${WEBP_INCLUDE_DIR})
179
add_definitions ("-DUSE_WEBP=1")
181
message (STATUS "WebP plugin will not be built")
182
set (WEBP_LIBRARY "")
185
# Organize the embedded plugins into source folders
186
set (plugin_types "")
187
foreach (src ${libOpenImageIO_srcs})
188
if (src MATCHES "^.+/([^/]+)\\.imageio/.+$")
189
set (plugin_types ${plugin_types} ${CMAKE_MATCH_1})
192
list (REMOVE_DUPLICATES plugin_types)
193
foreach (plugin ${plugin_types})
194
source_group ("Plugins\\${plugin}"
195
REGULAR_EXPRESSION "^.+/${plugin}\\.imageio/.+$"
199
find_package (TIFF REQUIRED)
200
include_directories (${TIFF_INCLUDE_DIR})
203
# Source groups for libutil and libtexture
204
source_group ("libutil" REGULAR_EXPRESSION ".+/libutil/.+")
205
source_group ("libtexture" REGULAR_EXPRESSION ".+/libtexture/.+")
208
add_library (OpenImageIO STATIC ${libOpenImageIO_srcs})
210
add_library (OpenImageIO SHARED ${libOpenImageIO_srcs})
212
target_link_libraries (OpenImageIO
213
${VISIBILITY_COMMAND} ${VISIBILITY_MAP_COMMAND}
216
# Link against system TBB library if specified
217
if (USE_TBB AND USE_EXTERNAL_TBB)
218
message (STATUS "Linking TBB: ${TBB_LIBRARIES}")
219
target_link_libraries (OpenImageIO ${TBB_LIBRARIES})
222
# Include OpenColorIO if using it
223
if (USE_OCIO AND OCIO_FOUND)
224
message (STATUS "Linking OpenColorIO ${OCIO_LIBRARIES}")
225
target_link_libraries (OpenImageIO ${OCIO_LIBRARIES})
229
# Include OpenCV if using it
231
include_directories (${OpenCV_INCLUDE_DIR})
232
target_link_libraries (OpenImageIO opencv_core opencv_highgui)
235
# Include OpenSSL if using it
237
include_directories (${OPENSSL_INCLUDE_DIR})
238
target_link_libraries (OpenImageIO ${OPENSSL_LIBRARIES})
241
# Include Freetype if using it
243
include_directories (${FREETYPE_INCLUDE_DIRS})
244
target_link_libraries (OpenImageIO ${FREETYPE_LIBRARIES})
250
target_link_libraries (OpenImageIO psapi.lib)
252
link_ilmbase (OpenImageIO)
253
add_dependencies (OpenImageIO ${CMAKE_CURRENT_SOURCE_DIR}/libOpenImageIO.map)
256
target_link_libraries (OpenImageIO ${PNG_LIBRARIES} ${TIFF_LIBRARIES}
257
${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}
260
${OPENJPEG_LIBRARIES}
263
link_openexr (OpenImageIO)
266
if (USE_EXTERNAL_PUGIXML)
267
target_link_libraries (OpenImageIO ${PUGIXML_LIBRARIES})
270
message(STATUS "Setting SOVERSION to: ${SOVERSION}")
271
set_target_properties(OpenImageIO
273
VERSION ${OIIO_VERSION_MAJOR}.${OIIO_VERSION_MINOR}.${OIIO_VERSION_PATCH}
274
SOVERSION ${SOVERSION}
277
# For consistency with the linux SpComp2s, create Mac OS X SpComp2s
278
# with a .so suffix instead of a .dylib suffix.
279
if(DEFINED OVERRIDE_SHARED_LIBRARY_SUFFIX)
280
message(STATUS "Setting SUFFIX to: ${OVERRIDE_SHARED_LIBRARY_SUFFIX}")
281
set_target_properties(OpenImageIO
283
SUFFIX ${OVERRIDE_SHARED_LIBRARY_SUFFIX}
285
endif(DEFINED OVERRIDE_SHARED_LIBRARY_SUFFIX)
287
oiio_install_targets (OpenImageIO)
292
# Definition needed by boost_unit_test_framework library
295
add_definitions (-DBOOST_TEST_DYN_LINK)
296
add_definitions (-DPTEX_EXPORTS)
300
if (OIIO_BUILD_TESTS)
302
add_executable (imagebuf_test imagebuf_test.cpp)
303
link_ilmbase (imagebuf_test)
304
set_target_properties (imagebuf_test PROPERTIES FOLDER "Unit Tests")
305
target_link_libraries (imagebuf_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
306
add_test (unit_imagebuf imagebuf_test)
308
add_executable (imagebufalgo_test imagebufalgo_test.cpp)
309
link_ilmbase (imagebufalgo_test)
310
set_target_properties (imagebufalgo_test PROPERTIES FOLDER "Unit Tests")
311
target_link_libraries (imagebufalgo_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
312
add_test (unit_imagebufalgo imagebufalgo_test)
314
add_executable (atomic_test atomic_test.cpp)
315
set_target_properties (atomic_test PROPERTIES FOLDER "Unit Tests")
316
target_link_libraries (atomic_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
317
add_test (unit_atomic atomic_test)
319
add_executable (spinlock_test spinlock_test.cpp)
320
set_target_properties (spinlock_test PROPERTIES FOLDER "Unit Tests")
321
target_link_libraries (spinlock_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
322
add_test (unit_spinlock spinlock_test)
324
add_executable (spin_rw_test spin_rw_test.cpp)
325
set_target_properties (spin_rw_test PROPERTIES FOLDER "Unit Tests")
326
target_link_libraries (spin_rw_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
327
add_test (unit_spin_rw spin_rw_test)
329
add_executable (ustring_test ustring_test.cpp)
330
set_target_properties (ustring_test PROPERTIES FOLDER "Unit Tests")
331
target_link_libraries (ustring_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
332
add_test (unit_ustring ustring_test)
334
add_executable (imagespec_test imagespec_test.cpp)
335
set_target_properties (imagespec_test PROPERTIES FOLDER "Unit Tests")
336
target_link_libraries (imagespec_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
337
add_test (unit_imagespec imagespec_test)
339
add_executable (strutil_test strutil_test.cpp)
340
set_target_properties (strutil_test PROPERTIES FOLDER "Unit Tests")
341
target_link_libraries (strutil_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
342
add_test (unit_strutil strutil_test)
344
add_executable (fmath_test fmath_test.cpp)
345
set_target_properties (fmath_test PROPERTIES FOLDER "Unit Tests")
346
target_link_libraries (fmath_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
347
add_test (unit_fmath fmath_test)
349
add_executable (filesystem_test filesystem_test.cpp)
350
set_target_properties (filesystem_test PROPERTIES FOLDER "Unit Tests")
351
target_link_libraries (filesystem_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
352
add_test (unit_filesystem filesystem_test)
354
add_executable (optparser_test optparser_test.cpp)
355
set_target_properties (optparser_test PROPERTIES FOLDER "Unit Tests")
356
target_link_libraries (optparser_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
357
add_test (unit_optparser optparser_test)
359
add_executable (hash_test hash_test.cpp)
360
set_target_properties (hash_test PROPERTIES FOLDER "Unit Tests")
361
target_link_libraries (hash_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
362
add_test (unit_hash hash_test)
364
add_executable (imagespeed_test imagespeed_test.cpp)
365
set_target_properties (imagespeed_test PROPERTIES FOLDER "Unit Tests")
366
target_link_libraries (imagespeed_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
367
#add_test (imagespeed_test imagespeed_test)
369
add_executable (timer_test timer_test.cpp)
370
set_target_properties (timer_test PROPERTIES FOLDER "Unit Tests")
371
target_link_libraries (timer_test OpenImageIO ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
372
add_test (timer_test timer_test)
374
endif (OIIO_BUILD_TESTS)