~ubuntu-branches/ubuntu/trusty/openimageio/trusty

« back to all changes in this revision

Viewing changes to .pc/0099-as-needed-fix.patch/src/libOpenImageIO/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2013-12-19 19:06:30 UTC
  • Revision ID: package-import@ubuntu.com-20131219190630-u3j15p75s3nbnxrb
Tags: 1.2.3~dfsg0-1ubuntu1
* 0099-as-needed-fix.patch: Move -latomic to the right part of the link
  line to resolve FTBFS with as-needed on -latomic arches like powerpc.
* 0099-libOpenImageIO-underlinked.patch: Link libOpenImageIO with -ldl.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
set (libOpenImageIO_hdrs ../include/argparse.h
 
2
                         ../include/color.h
 
3
                         ../include/dassert.h
 
4
                         ../include/errorhandler.h
 
5
                         ../include/filesystem.h
 
6
                         ../include/filter.h
 
7
                         ../include/fmath.h
 
8
                         ../include/hash.h
 
9
                         ../include/imagebuf.h
 
10
                         ../include/imagecache.h
 
11
                         ../include/imageio.h
 
12
                         ../include/osdep.h
 
13
                         ../include/paramlist.h
 
14
                         ../include/plugin.h
 
15
                         ../include/SHA1.h
 
16
                         ../include/strutil.h
 
17
                         ../include/sysutil.h
 
18
                         ../include/texture.h
 
19
                         ../include/thread.h
 
20
                         ../include/timer.h
 
21
                         ../include/typedesc.h
 
22
                         ../include/ustring.h
 
23
                         ../include/varyingref.h    
 
24
                         )
 
25
 
 
26
if (NOT USE_EXTERNAL_PUGIXML)
 
27
    list (APPEND libOpenImageIO_hdrs
 
28
          ../include/pugiconfig.hpp
 
29
          ../include/pugixml.hpp
 
30
          ../include/pugixml.cpp
 
31
    )
 
32
endif()
 
33
 
 
34
set (libOpenImageIO_srcs exif.cpp formatspec.cpp imagebuf.cpp
 
35
                          imageinput.cpp imageio.cpp imageioplugin.cpp
 
36
                          imageoutput.cpp iptc.cpp xmp.cpp
 
37
                          color_ocio.cpp
 
38
                          imagebufalgo.cpp
 
39
                          imagebufalgo_compare.cpp
 
40
                          imagebufalgo_copy.cpp
 
41
                          imagebufalgo_pixelmath.cpp
 
42
                          imagebufalgo_yee.cpp imagebufalgo_opencv.cpp
 
43
                          maketexture.cpp
 
44
                          ../libutil/argparse.cpp
 
45
                          ../libutil/errorhandler.cpp 
 
46
                          ../libutil/filesystem.cpp 
 
47
                          ../libutil/filter.cpp 
 
48
                          ../libutil/hashes.cpp 
 
49
                          ../libutil/paramlist.cpp 
 
50
                          ../libutil/plugin.cpp 
 
51
                          ../libutil/pystring.cpp
 
52
                          ../libutil/SHA1.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}
 
63
                         )
 
64
 
 
65
#if (NOT USE_EXTERNAL_PUGIXML)
 
66
#    list (APPEND libOpenImageIO_srcs ../libutil/pugixml.cpp)
 
67
#endif ()
 
68
 
 
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)
 
78
endif ()
 
79
 
 
80
# If the 'EMBEDPLUGINS' option is set, we want to compile the source for
 
81
# all the plugins into libOpenImageIO.
 
82
if (EMBEDPLUGINS)
 
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
 
133
        )
 
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
 
140
            )
 
141
        add_definitions ("-DUSE_BOOST_ASIO=1")
 
142
    endif ()
 
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})
 
149
 
 
150
    add_definitions ("-DEMBED_PLUGINS=1")
 
151
 
 
152
    if (FIELD3D_FOUND AND USE_FIELD3D)
 
153
        set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
 
154
             ../field3d.imageio/field3dinput.cpp
 
155
             ../field3d.imageio/field3doutput.cpp
 
156
            )
 
157
        include_directories (${FIELD3D_INCLUDE_DIR})
 
158
    else ()
 
159
        message (STATUS "Field3D plugin will not be built")
 
160
        set (FIELD3D_LIBRARY "")
 
161
        set (HDF5_LIBRARY "")
 
162
    endif ()
 
163
 
 
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")
 
169
    else()
 
170
        message (STATUS "Jpeg-2000 plugin will not be built")
 
171
    endif()
 
172
 
 
173
    if (WEBP_FOUND)
 
174
        set (libOpenImageIO_srcs ${libOpenImageIO_srcs}
 
175
             ../webp.imageio/webpinput.cpp
 
176
             ../webp.imageio/webpoutput.cpp
 
177
            )
 
178
        include_directories (${WEBP_INCLUDE_DIR})
 
179
        add_definitions ("-DUSE_WEBP=1")
 
180
    else ()
 
181
        message (STATUS "WebP plugin will not be built")
 
182
        set (WEBP_LIBRARY "")
 
183
    endif ()
 
184
 
 
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})
 
190
        endif ()
 
191
    endforeach ()
 
192
    list (REMOVE_DUPLICATES plugin_types)
 
193
    foreach (plugin ${plugin_types})
 
194
        source_group ("Plugins\\${plugin}"
 
195
                      REGULAR_EXPRESSION "^.+/${plugin}\\.imageio/.+$"
 
196
                     )
 
197
    endforeach ()
 
198
else()
 
199
    find_package (TIFF REQUIRED)
 
200
    include_directories (${TIFF_INCLUDE_DIR})
 
201
endif ()
 
202
 
 
203
# Source groups for libutil and libtexture
 
204
source_group ("libutil"    REGULAR_EXPRESSION ".+/libutil/.+")
 
205
source_group ("libtexture" REGULAR_EXPRESSION ".+/libtexture/.+")
 
206
 
 
207
if (BUILDSTATIC)
 
208
    add_library (OpenImageIO STATIC ${libOpenImageIO_srcs})
 
209
else ()
 
210
    add_library (OpenImageIO SHARED ${libOpenImageIO_srcs})
 
211
endif ()
 
212
target_link_libraries (OpenImageIO
 
213
                           ${VISIBILITY_COMMAND} ${VISIBILITY_MAP_COMMAND}
 
214
                           ${Boost_LIBRARIES})
 
215
 
 
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})
 
220
endif ()
 
221
 
 
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})
 
226
endif ()
 
227
 
 
228
 
 
229
# Include OpenCV if using it
 
230
if (OpenCV_FOUND)
 
231
    include_directories (${OpenCV_INCLUDE_DIR})
 
232
    target_link_libraries (OpenImageIO opencv_core opencv_highgui)
 
233
endif ()
 
234
 
 
235
# Include OpenSSL if using it
 
236
if (OPENSSL_FOUND)
 
237
    include_directories (${OPENSSL_INCLUDE_DIR})
 
238
    target_link_libraries (OpenImageIO ${OPENSSL_LIBRARIES})
 
239
endif ()
 
240
 
 
241
# Include Freetype if using it
 
242
if (FREETYPE_FOUND)
 
243
    include_directories (${FREETYPE_INCLUDE_DIRS})
 
244
    target_link_libraries (OpenImageIO ${FREETYPE_LIBRARIES})
 
245
endif ()
 
246
 
 
247
 
 
248
 
 
249
if (WIN32)
 
250
    target_link_libraries (OpenImageIO psapi.lib)
 
251
endif ()
 
252
link_ilmbase (OpenImageIO)
 
253
add_dependencies (OpenImageIO ${CMAKE_CURRENT_SOURCE_DIR}/libOpenImageIO.map)
 
254
 
 
255
if (EMBEDPLUGINS)
 
256
    target_link_libraries (OpenImageIO ${PNG_LIBRARIES} ${TIFF_LIBRARIES}
 
257
                               ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}
 
258
                               ${FIELD3D_LIBRARY}
 
259
                               ${HDF5_LIBRARY}
 
260
                               ${OPENJPEG_LIBRARIES}
 
261
                               ${WEBP_LIBRARY}
 
262
                          )
 
263
    link_openexr (OpenImageIO)
 
264
endif ()
 
265
 
 
266
if (USE_EXTERNAL_PUGIXML)
 
267
    target_link_libraries (OpenImageIO ${PUGIXML_LIBRARIES})
 
268
endif ()
 
269
 
 
270
message(STATUS "Setting SOVERSION to: ${SOVERSION}")
 
271
set_target_properties(OpenImageIO
 
272
                         PROPERTIES
 
273
                         VERSION ${OIIO_VERSION_MAJOR}.${OIIO_VERSION_MINOR}.${OIIO_VERSION_PATCH}
 
274
                         SOVERSION ${SOVERSION}
 
275
                     )
 
276
 
 
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
 
282
                           PROPERTIES
 
283
                           SUFFIX ${OVERRIDE_SHARED_LIBRARY_SUFFIX}
 
284
                       )
 
285
endif(DEFINED OVERRIDE_SHARED_LIBRARY_SUFFIX)
 
286
 
 
287
oiio_install_targets (OpenImageIO)
 
288
 
 
289
 
 
290
# Testing
 
291
 
 
292
# Definition needed by boost_unit_test_framework library
 
293
# and by PTEX DLL
 
294
if (NOT LINKSTATIC)
 
295
    add_definitions (-DBOOST_TEST_DYN_LINK)
 
296
    add_definitions (-DPTEX_EXPORTS)
 
297
endif ()
 
298
 
 
299
 
 
300
if (OIIO_BUILD_TESTS)
 
301
 
 
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)
 
307
 
 
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)
 
313
 
 
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)
 
318
 
 
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)
 
323
 
 
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)
 
328
 
 
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)
 
333
 
 
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)
 
338
 
 
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)
 
343
 
 
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)
 
348
 
 
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)
 
353
 
 
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)
 
358
 
 
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)
 
363
 
 
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)
 
368
 
 
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)
 
373
 
 
374
endif (OIIO_BUILD_TESTS)