File: CMakeLists.txt

package info (click to toggle)
gdal 3.11.3%2Bdfsg-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 89,016 kB
  • sloc: cpp: 1,165,048; ansic: 208,864; python: 26,958; java: 5,972; xml: 4,611; sh: 3,776; cs: 2,508; yacc: 1,306; makefile: 213
file content (159 lines) | stat: -rw-r--r-- 5,123 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
include(GdalDriverHelper)

add_library(
  libtiff OBJECT
  tif_dir.c
  tif_fax3.c
  tif_lzma.c
  tif_predict.h
  tif_vsi.c
  tiffiop.h
  t4.h
  tif_dir.h
  tif_fax3.h
  tif_lzw.c
  tif_print.c
  tif_warning.c
  tiffvers.h
  tif_aux.c
  tif_dirinfo.c
  tif_fax3sm.c
  tif_next.c
  tif_read.c
  tif_write.c
  uvcode.h
  tif_close.c
  tif_dirread.c
  tif_flush.c
  tif_strip.c
  tif_zip.c
  tif_codec.c
  tif_dirwrite.c
  tif_getimage.c
  tif_open.c
  tif_swab.c
  tif_zstd.c
  tif_webp.c
  tif_color.c
  tif_dumpmode.c
  tif_packbits.c
  tif_thunder.c
  tiff.h
  tif_compress.c
  tif_error.c
  tif_pixarlog.c
  tif_tile.c
  tiffconf.h
  tif_config.h
  tif_extension.c
  tif_luv.c
  tif_predict.c
  tif_version.c
  tif_lerc.c
  tif_hash_set.c
  tiffio.h)
target_include_directories(libtiff PRIVATE $<TARGET_PROPERTY:cpl,SOURCE_DIR> $<TARGET_PROPERTY:cpl,BINARY_DIR>)
target_compile_definitions(libtiff PRIVATE -DDONT_DEPRECATE_SPRINTF -DHOST_FILLORDER=FILLORDER_LSB2MSB)
target_compile_options(libtiff PRIVATE ${GDAL_C_WARNING_FLAGS})

if (MSVC)
  # Suppress '<unnamed-tag>': structure was padded due to alignment specifier in tif_jpeg.c
  target_compile_options(libtiff PRIVATE /wd4324)
endif ()

target_compile_definitions(libtiff PRIVATE -DPIXARLOG_SUPPORT -DZIP_SUPPORT)

if (GDAL_USE_JPEG_INTERNAL OR GDAL_USE_JPEG)
  target_compile_definitions(libtiff PRIVATE -DJPEG_SUPPORT -DOJPEG_SUPPORT)
endif ()

# Include first internal libraries
if (GDAL_USE_ZLIB_INTERNAL)
  gdal_add_vendored_lib(libtiff libz)
endif ()

if (GDAL_USE_JPEG_INTERNAL)
  target_sources(libtiff PRIVATE tif_jpeg.c tif_ojpeg.c)
  gdal_add_vendored_lib(libtiff libjpeg)
endif ()

if (GDAL_USE_LERC_INTERNAL)
  target_compile_definitions(libtiff PRIVATE -DLERC_SUPPORT)
  gdal_add_vendored_lib(libtiff lerc)
endif ()

# Now external libraries

# Include libjpeg first so that if we want to use jpeg-turbo on homebrew
# /usr/local/opt/jpeg-turbo gets included first, before /usr/local/opt
# that contains libjpeg 9e
if (GDAL_USE_JPEG AND NOT GDAL_USE_JPEG_INTERNAL)
  # Use a separate object library so that external libjpeg headers are only applied to tif_jpeg.c and tif_ojpeg.c, but
  # not tif_jpeg_12.c !
  add_library(libtiff_jpeg OBJECT tif_jpeg.c tif_ojpeg.c)
  target_sources(${GDAL_LIB_TARGET_NAME} PRIVATE $<TARGET_OBJECTS:libtiff_jpeg>)
  target_compile_options(libtiff_jpeg PRIVATE ${GDAL_C_WARNING_FLAGS})
  if (MSVC)
    # Suppress '<unnamed-tag>': structure was padded due to alignment specifier in tif_jpeg.c
    target_compile_options(libtiff_jpeg PRIVATE /wd4324)
  endif ()
  set_property(TARGET libtiff_jpeg PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE})
  target_compile_definitions(libtiff_jpeg PRIVATE -DJPEG_SUPPORT -DOJPEG_SUPPORT)
  target_include_directories(libtiff_jpeg PRIVATE $<TARGET_PROPERTY:cpl,SOURCE_DIR> $<TARGET_PROPERTY:cpl,BINARY_DIR>)
  gdal_target_link_libraries(libtiff_jpeg PRIVATE JPEG::JPEG)
  if (GDAL_USE_JPEG12_INTERNAL)
    target_compile_definitions(libtiff_jpeg PRIVATE -DJPEG_DUAL_MODE_8_12)
  elseif (HAVE_JPEGTURBO_DUAL_MODE_8_12)
    target_compile_definitions(libtiff_jpeg PRIVATE HAVE_JPEGTURBO_DUAL_MODE_8_12)
  endif ()
  if (RENAME_INTERNAL_TIFF_SYMBOLS)
    target_compile_definitions(libtiff_jpeg PRIVATE -DRENAME_INTERNAL_LIBTIFF_SYMBOLS)
  endif ()
endif ()

if (NOT GDAL_USE_ZLIB_INTERNAL)
  gdal_target_link_libraries(libtiff PRIVATE ZLIB::ZLIB)
endif ()

if (GDAL_USE_DEFLATE)
  target_compile_definitions(libtiff PRIVATE -DLIBDEFLATE_SUPPORT)
  gdal_target_link_libraries(libtiff PRIVATE Deflate::Deflate)
endif ()

if ((GDAL_USE_JPEG OR GDAL_USE_JPEG_INTERNAL) AND GDAL_USE_JPEG12_INTERNAL)
  target_sources(libtiff PRIVATE tif_jpeg_12.c)
  target_compile_definitions(libtiff PRIVATE -DJPEG_DUAL_MODE_8_12)
  target_include_directories(libtiff PRIVATE $<TARGET_PROPERTY:libjpeg12,BINARY_DIR>)
elseif (GDAL_USE_JPEG AND HAVE_JPEGTURBO_DUAL_MODE_8_12)
  target_sources(libtiff PRIVATE tif_jpeg_12.c)
  target_compile_definitions(libtiff PRIVATE HAVE_JPEGTURBO_DUAL_MODE_8_12)
  gdal_target_link_libraries(libtiff PRIVATE JPEG::JPEG)
endif ()

if (GDAL_USE_LIBLZMA)
  target_compile_definitions(libtiff PRIVATE -DLZMA_SUPPORT)
  gdal_target_link_libraries(libtiff PRIVATE LibLZMA::LibLZMA)
endif ()

if (GDAL_USE_ZSTD)
  target_compile_definitions(libtiff PRIVATE -DZSTD_SUPPORT)
  gdal_target_link_libraries(libtiff PRIVATE ${ZSTD_TARGET})
endif ()

if (GDAL_USE_WEBP)
  target_compile_definitions(libtiff PRIVATE -DWEBP_SUPPORT)
  gdal_target_link_libraries(libtiff PRIVATE WEBP::WebP)
endif ()

if (NOT GDAL_USE_LERC_INTERNAL AND GDAL_USE_LERC)
  target_compile_definitions(libtiff PRIVATE -DLERC_SUPPORT)
  gdal_target_link_libraries(libtiff PRIVATE LERC::LERC)
endif ()

if (RENAME_INTERNAL_TIFF_SYMBOLS)
  target_compile_definitions(libtiff PUBLIC -DRENAME_INTERNAL_LIBTIFF_SYMBOLS)
endif ()

set_target_properties(libtiff PROPERTIES CXX_STANDARD 11)
set_property(TARGET libtiff PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE})
target_sources(${GDAL_LIB_TARGET_NAME} PRIVATE $<TARGET_OBJECTS:libtiff>)