Skip to content

Commit e6f3d60

Browse files
committed
Set LINKER_LANGUAGE for C targets with C++ deps
When C and C++ code are being linked together, a C++ compiler has to be used. In my experience, this doesn't always cause problems, but it tends to when doing static builds. Without this change, I got build failures when I had lerc enabled: cd /build/source/build/tools && /nix/store/6941y72hx1k8rxiygm4iin16i4zhcdqr-cmake-3.30.5/bin/cmake -E cmake_link_script CMakeFiles/fax2ps.dir/link.txt --verbose=1 /nix/store/gb7zjcg4fh1mnd5qp4pkrlib55w6j42l-aarch64-unknown-linux-musl-gcc-wrapper-13.3.0/bin/aarch64-unknown-linux-musl-gcc -Wall -Winline -Wformat-security -Wpointer-arith -Wdisabled-optimization -Wno-unknown-pragmas -fstrict-aliasing -O3 -DNDEBUG CMakeFiles/fax2ps.dir/fax2ps.c.o -o fax2ps ../libtiff/libtiff.a -Wl,-Bdynamic /nix/store/n49vspyhaga9pabpqqcwm9rlam7r4152-zlib-static-aarch64-unknown-linux-musl-1.3.1/lib/libz.a /nix/store/k71jx85iin8bvgqs1viq263qp186nb9h-libdeflate-static-aarch64-unknown-linux-musl-1.22/lib/libdeflate.a /nix/store/kp6hkjfjdmd94crz6claldi5hg9z8r87-libjpeg-turbo-static-aarch64-unknown-linux-musl-3.0.4/lib/libjpeg.a /nix/store/h2f1h8bri9d0mvdrvn5ad94hy31dan2s-lerc-static-aarch64-unknown-linux-musl-4.0.0/lib/libLerc.a /nix/store/hjf3h5prgfdadv3wsj4172sdxrnycgba-xz-static-aarch64-unknown-linux-musl-5.6.3/lib/liblzma.a /nix/store/qh8h4fdsvhj75xliiqb71qrynnng51p2-zstd-static-aarch64-unknown-linux-musl-1.5.6/lib/libzstd.a /nix/store/002ykljzr16pfxnijq7x8hr4nbicg745-libwebp-static-aarch64-unknown-linux-musl-1.4.0/lib/libwebp.a /nix/store/002ykljzr16pfxnijq7x8hr4nbicg745-libwebp-static-aarch64-unknown-linux-musl-1.4.0/lib/libsharpyuv.a /nix/store/dnm541qbzfanx6r0kqbc2p4xfjiwl4sf-musl-static-aarch64-unknown-linux-musl-1.2.5/lib/libm.a -Wl,-Bstatic /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: /nix/store/h2f1h8bri9d0mvdrvn5ad94hy31dan2s-lerc-static-aarch64-unknown-linux-musl-4.0.0/lib/libLerc.a(Lerc.cpp.o): in function `std::vector<unsigned char, std::allocator<unsigned char> >::operator=(std::vector<unsigned char, std::allocator<unsigned char> > const&) [clone .isra.0]': (.text+0x140): undefined reference to `operator new(unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: (.text+0x16c): undefined reference to `operator delete(void*, unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: (.text+0x26c): undefined reference to `std::__throw_bad_alloc()' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: /nix/store/h2f1h8bri9d0mvdrvn5ad94hy31dan2s-lerc-static-aarch64-unknown-linux-musl-4.0.0/lib/libLerc.a(Lerc.cpp.o): in function `LercNS::Lerc::GetRanges(unsigned char const*, unsigned int, int, LercNS::Lerc2::HeaderInfo const&, double*, double*, unsigned long)': (.text+0x10a0): undefined reference to `operator delete(void*, unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: (.text+0x10b4): undefined reference to `operator delete(void*, unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: (.text+0x10c8): undefined reference to `operator delete(void*, unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: (.text+0x10ec): undefined reference to `operator delete(void*, unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: (.text+0x1100): undefined reference to `operator delete(void*, unsigned long)' /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: /nix/store/h2f1h8bri9d0mvdrvn5ad94hy31dan2s-lerc-static-aarch64-unknown-linux-musl-4.0.0/lib/libLerc.a(Lerc.cpp.o):(.text+0x1114): more undefined references to `operator delete(void*, unsigned long)' follow /nix/store/ncvpwrpay6vvh9wwc6fq28lb9hip7chc-aarch64-unknown-linux-musl-binutils-2.43.1/bin/aarch64-unknown-linux-musl-ld: /nix/store/h2f1h8bri9d0mvdrvn5ad94hy31dan2s-lerc-static-aarch64-unknown-linux-musl-4.0.0/lib/libLerc.a(Lerc.cpp.o): in function `bool LercNS::Lerc::Convert<signed char>(LercNS::CntZImage const&, signed char*, unsigned char*, bool)': [1808 more lines of this ommitted] collect2: error: ld returned 1 exit status
1 parent c474fb8 commit e6f3d60

File tree

8 files changed

+50
-0
lines changed

8 files changed

+50
-0
lines changed

build/test_cmake/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ project(test)
44
find_package(Tiff CONFIG REQUIRED)
55

66
add_executable(test test.c)
7+
set_target_properties(test PROPERTIES LINKER_LANGUAGE CXX)
78
target_link_libraries(test PRIVATE TIFF::tiff)

build/test_cmake_no_target/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ find_package(Tiff CONFIG REQUIRED)
55

66
add_executable(test test.c)
77
target_include_directories(test PRIVATE ${TIFF_INCLUDE_DIR})
8+
set_target_properties(test PROPERTIES LINKER_LANGUAGE CXX)
89
target_link_libraries(test PRIVATE ${TIFF_LIBRARIES})

contrib/addtiffo/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
# OF THIS SOFTWARE.
2424

2525
add_executable(addtiffo addtiffo.c tif_overview.c tif_ovrcache.c tif_ovrcache.h)
26+
set_target_properties(addtiffo PROPERTIES LINKER_LANGUAGE CXX)
2627
target_link_libraries(addtiffo tiff tiff_port)
2728

2829
if(WEBP_SUPPORT AND EMSCRIPTEN)

contrib/dbs/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,19 @@
2323
# OF THIS SOFTWARE.
2424

2525
add_executable(tiff-bi tiff-bi.c)
26+
set_target_properties(tiff-bi PROPERTIES LINKER_LANGUAGE CXX)
2627
target_link_libraries(tiff-bi tiff tiff_port)
2728

2829
add_executable(tiff-grayscale tiff-grayscale.c)
30+
set_target_properties(tiff-grayscale PROPERTIES LINKER_LANGUAGE CXX)
2931
target_link_libraries(tiff-grayscale tiff tiff_port CMath::CMath)
3032

3133
add_executable(tiff-palette tiff-palette.c)
34+
set_target_properties(tiff-palette PROPERTIES LINKER_LANGUAGE CXX)
3235
target_link_libraries(tiff-palette tiff tiff_port)
3336

3437
add_executable(tiff-rgb tiff-rgb.c)
38+
set_target_properties(tiff-rgb PROPERTIES LINKER_LANGUAGE CXX)
3539
target_link_libraries(tiff-rgb tiff tiff_port CMath::CMath)
3640

3741
if(WEBP_SUPPORT AND EMSCRIPTEN)

contrib/iptcutil/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@
2323
# OF THIS SOFTWARE.
2424

2525
add_executable(iptcutil iptcutil.c)
26+
set_target_properties(iptcutil PROPERTIES LINKER_LANGUAGE CXX)
2627
target_link_libraries(iptcutil tiff tiff_port)

libtiff/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ endif()
284284
if(NOT CMAKE_CROSSCOMPILING)
285285
add_executable(tiff_mkg3states ../placeholder.h)
286286
target_sources(tiff_mkg3states PRIVATE mkg3states.c tif_fax3.h)
287+
set_target_properties(tiff_mkg3states PROPERTIES LINKER_LANGUAGE CXX)
287288
target_link_libraries(tiff_mkg3states tiff tiff_port)
288289

289290
add_custom_target(tiff_faxtable

test/CMakeLists.txt

+20
Original file line numberDiff line numberDiff line change
@@ -107,106 +107,126 @@ set(simple_tests)
107107
# Test programs
108108
add_executable(test_signed_tags ../placeholder.h)
109109
target_sources(test_signed_tags PRIVATE test_signed_tags.c)
110+
set_target_properties(test_signed_tags PROPERTIES LINKER_LANGUAGE CXX)
110111
target_link_libraries(test_signed_tags PRIVATE tiff tiff_port)
111112
list(APPEND simple_tests test_signed_tags)
112113

113114
add_executable(ascii_tag ../placeholder.h)
114115
target_sources(ascii_tag PRIVATE ascii_tag.c)
116+
set_target_properties(ascii_tag PROPERTIES LINKER_LANGUAGE CXX)
115117
target_link_libraries(ascii_tag PRIVATE tiff tiff_port)
116118
list(APPEND simple_tests ascii_tag)
117119

118120
add_executable(long_tag ../placeholder.h)
119121
target_sources(long_tag PRIVATE long_tag.c check_tag.c)
122+
set_target_properties(long_tag PROPERTIES LINKER_LANGUAGE CXX)
120123
target_link_libraries(long_tag PRIVATE tiff tiff_port)
121124
list(APPEND simple_tests long_tag)
122125

123126
add_executable(short_tag ../placeholder.h)
124127
target_sources(short_tag PRIVATE short_tag.c check_tag.c)
128+
set_target_properties(short_tag PROPERTIES LINKER_LANGUAGE CXX)
125129
target_link_libraries(short_tag PRIVATE tiff tiff_port)
126130
list(APPEND simple_tests short_tag)
127131

128132
add_executable(strip_rw ../placeholder.h)
129133
target_sources(strip_rw PRIVATE strip_rw.c strip.c test_arrays.c test_arrays.h)
134+
set_target_properties(strip_rw PROPERTIES LINKER_LANGUAGE CXX)
130135
target_link_libraries(strip_rw PRIVATE tiff tiff_port)
131136
list(APPEND simple_tests strip_rw)
132137

133138
add_executable(rewrite ../placeholder.h)
134139
target_sources(rewrite PRIVATE rewrite_tag.c)
140+
set_target_properties(rewrite PROPERTIES LINKER_LANGUAGE CXX)
135141
target_link_libraries(rewrite PRIVATE tiff tiff_port)
136142
list(APPEND simple_tests rewrite)
137143

138144
if(JPEG_SUPPORT)
139145
add_executable(raw_decode ../placeholder.h)
140146
target_sources(raw_decode PRIVATE raw_decode.c)
147+
set_target_properties(raw_decode PROPERTIES LINKER_LANGUAGE CXX)
141148
target_link_libraries(raw_decode PRIVATE tiff tiff_port JPEG::JPEG)
142149
list(APPEND simple_tests raw_decode)
143150
endif()
144151

145152
add_executable(custom_dir ../placeholder.h)
146153
target_sources(custom_dir PRIVATE custom_dir.c)
154+
set_target_properties(custom_dir PROPERTIES LINKER_LANGUAGE CXX)
147155
target_link_libraries(custom_dir PRIVATE tiff tiff_port)
148156
list(APPEND simple_tests custom_dir)
149157

150158
# Uses private functions from static library
151159
if(NOT BUILD_SHARED_LIBS)
152160
add_executable(rational_precision2double ../placeholder.h)
153161
target_sources(rational_precision2double PRIVATE rational_precision2double.c)
162+
set_target_properties(rational_precision2double PROPERTIES LINKER_LANGUAGE CXX)
154163
target_link_libraries(rational_precision2double PRIVATE tiff tiff_port)
155164
list(APPEND simple_tests rational_precision2double)
156165

157166
add_executable(test_write_read_tags ../placeholder.h)
158167
target_sources(test_write_read_tags PRIVATE test_write_read_tags.c)
168+
set_target_properties(test_write_read_tags PROPERTIES LINKER_LANGUAGE CXX)
159169
target_link_libraries(test_write_read_tags PRIVATE tiff)
160170
list(APPEND simple_tests test_write_read_tags)
161171

162172
add_executable(test_transferfunction_write_read ../placeholder.h)
163173
target_sources(test_transferfunction_write_read PRIVATE test_transferfunction_write_read.c)
174+
set_target_properties(test_transferfunction_write_read PROPERTIES LINKER_LANGUAGE CXX)
164175
target_link_libraries(test_transferfunction_write_read PRIVATE tiff)
165176
list(APPEND simple_tests test_transferfunction_write_read)
166177
endif()
167178

168179
add_executable(custom_dir_EXIF_231 ../placeholder.h)
169180
target_sources(custom_dir_EXIF_231 PRIVATE custom_dir_EXIF_231.c)
181+
set_target_properties(custom_dir_EXIF_231 PROPERTIES LINKER_LANGUAGE CXX)
170182
target_link_libraries(custom_dir_EXIF_231 PRIVATE tiff tiff_port)
171183
list(APPEND simple_tests custom_dir_EXIF_231)
172184

173185
add_executable(defer_strile_loading ../placeholder.h)
174186
target_sources(defer_strile_loading PRIVATE defer_strile_loading.c)
187+
set_target_properties(defer_strile_loading PROPERTIES LINKER_LANGUAGE CXX)
175188
target_link_libraries(defer_strile_loading PRIVATE tiff tiff_port)
176189
list(APPEND simple_tests defer_strile_loading)
177190

178191
add_executable(defer_strile_writing ../placeholder.h)
179192
target_sources(defer_strile_writing PRIVATE defer_strile_writing.c)
193+
set_target_properties(defer_strile_writing PROPERTIES LINKER_LANGUAGE CXX)
180194
target_link_libraries(defer_strile_writing PRIVATE tiff tiff_port)
181195
list(APPEND simple_tests defer_strile_writing)
182196

183197
add_executable(test_directory ../placeholder.h)
184198
target_sources(test_directory PRIVATE test_directory.c)
199+
set_target_properties(test_directory PROPERTIES LINKER_LANGUAGE CXX)
185200
target_link_libraries(test_directory PRIVATE tiff tiff_port)
186201
list(APPEND simple_tests test_directory)
187202

188203
add_executable(test_IFD_enlargement ../placeholder.h)
189204
target_sources(test_IFD_enlargement PRIVATE test_IFD_enlargement.c)
205+
set_target_properties(test_IFD_enlargement PROPERTIES LINKER_LANGUAGE CXX)
190206
target_link_libraries(test_IFD_enlargement PRIVATE tiff tiff_port)
191207
list(APPEND simple_tests test_IFD_enlargement)
192208

193209
add_executable(testtypes ../placeholder.h)
194210
target_sources(testtypes PRIVATE testtypes.c)
211+
set_target_properties(testtypes PROPERTIES LINKER_LANGUAGE CXX)
195212
target_link_libraries(testtypes PRIVATE tiff tiff_port)
196213
list(APPEND simple_tests testtypes)
197214

198215
add_executable(test_open_options ../placeholder.h)
199216
target_sources(test_open_options PRIVATE test_open_options.c)
217+
set_target_properties(test_open_options PROPERTIES LINKER_LANGUAGE CXX)
200218
target_link_libraries(test_open_options PRIVATE tiff tiff_port)
201219
list(APPEND simple_tests test_open_options)
202220

203221
add_executable(test_append_to_strip ../placeholder.h)
204222
target_sources(test_append_to_strip PRIVATE test_append_to_strip.c)
223+
set_target_properties(test_append_to_strip PROPERTIES LINKER_LANGUAGE CXX)
205224
target_link_libraries(test_append_to_strip PRIVATE tiff tiff_port)
206225
list(APPEND simple_tests test_append_to_strip)
207226

208227
add_executable(test_ifd_loop_detection ../placeholder.h)
209228
target_sources(test_ifd_loop_detection PRIVATE test_ifd_loop_detection.c)
229+
set_target_properties(test_ifd_loop_detection PROPERTIES LINKER_LANGUAGE CXX)
210230
target_link_libraries(test_ifd_loop_detection PRIVATE tiff tiff_port)
211231
target_compile_definitions(test_ifd_loop_detection PRIVATE SOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}\")
212232
list(APPEND simple_tests test_ifd_loop_detection)

tools/CMakeLists.txt

+21
Original file line numberDiff line numberDiff line change
@@ -32,82 +32,102 @@ endif ()
3232

3333
add_executable(fax2ps ../placeholder.h)
3434
target_sources(fax2ps PRIVATE fax2ps.c ${MSVC_RESOURCE_FILE})
35+
set_target_properties(fax2ps PROPERTIES LINKER_LANGUAGE CXX)
3536
target_link_libraries(fax2ps PRIVATE tiff tiff_port)
3637

3738
add_executable(fax2tiff ../placeholder.h)
3839
target_sources(fax2tiff PRIVATE fax2tiff.c ${MSVC_RESOURCE_FILE})
40+
set_target_properties(fax2tiff PROPERTIES LINKER_LANGUAGE CXX)
3941
target_link_libraries(fax2tiff PRIVATE tiff tiff_port)
4042

4143
add_executable(pal2rgb ../placeholder.h)
4244
target_sources(pal2rgb PRIVATE pal2rgb.c ${MSVC_RESOURCE_FILE})
45+
set_target_properties(pal2rgb PROPERTIES LINKER_LANGUAGE CXX)
4346
target_link_libraries(pal2rgb PRIVATE tiff tiff_port)
4447

4548
add_executable(ppm2tiff ../placeholder.h)
4649
target_sources(ppm2tiff PRIVATE ppm2tiff.c ${MSVC_RESOURCE_FILE})
50+
set_target_properties(ppm2tiff PROPERTIES LINKER_LANGUAGE CXX)
4751
target_link_libraries(ppm2tiff PRIVATE tiff tiff_port)
4852

4953
add_executable(raw2tiff ../placeholder.h)
5054
target_sources(raw2tiff PRIVATE raw2tiff.c ${MSVC_RESOURCE_FILE})
55+
set_target_properties(raw2tiff PROPERTIES LINKER_LANGUAGE CXX)
5156
target_link_libraries(raw2tiff PRIVATE tiff tiff_port CMath::CMath)
5257

5358
add_executable(rgb2ycbcr ../placeholder.h)
5459
target_sources(rgb2ycbcr PRIVATE rgb2ycbcr.c ${MSVC_RESOURCE_FILE})
60+
set_target_properties(rgb2ycbcr PROPERTIES LINKER_LANGUAGE CXX)
5561
target_link_libraries(rgb2ycbcr PRIVATE tiff tiff_port)
5662

5763
add_executable(thumbnail ../placeholder.h)
5864
target_sources(thumbnail PRIVATE thumbnail.c ${MSVC_RESOURCE_FILE})
65+
set_target_properties(thumbnail PROPERTIES LINKER_LANGUAGE CXX)
5966
target_link_libraries(thumbnail PRIVATE tiff tiff_port CMath::CMath)
6067

6168
add_executable(tiff2bw ../placeholder.h)
6269
target_sources(tiff2bw PRIVATE tiff2bw.c ${MSVC_RESOURCE_FILE})
70+
set_target_properties(tiff2bw PROPERTIES LINKER_LANGUAGE CXX)
6371
target_link_libraries(tiff2bw PRIVATE tiff tiff_port)
6472

6573
add_executable(tiff2pdf ../placeholder.h)
6674
target_sources(tiff2pdf PRIVATE tiff2pdf.c ${MSVC_RESOURCE_FILE})
75+
set_target_properties(tiff2pdf PROPERTIES LINKER_LANGUAGE CXX)
6776
target_link_libraries(tiff2pdf PRIVATE tiff tiff_port)
6877

6978
add_executable(tiff2ps ../placeholder.h)
7079
target_sources(tiff2ps PRIVATE tiff2ps.c ${MSVC_RESOURCE_FILE})
80+
set_target_properties(tiff2ps PROPERTIES LINKER_LANGUAGE CXX)
7181
target_link_libraries(tiff2ps PRIVATE tiff tiff_port CMath::CMath)
7282

7383
add_executable(tiff2rgba ../placeholder.h)
7484
target_sources(tiff2rgba PRIVATE tiff2rgba.c ${MSVC_RESOURCE_FILE})
85+
set_target_properties(tiff2rgba PROPERTIES LINKER_LANGUAGE CXX)
7586
target_link_libraries(tiff2rgba PRIVATE tiff tiff_port)
7687

7788
add_executable(tiffcmp ../placeholder.h)
7889
target_sources(tiffcmp PRIVATE tiffcmp.c ${MSVC_RESOURCE_FILE})
90+
set_target_properties(tiffcmp PROPERTIES LINKER_LANGUAGE CXX)
7991
target_link_libraries(tiffcmp PRIVATE tiff tiff_port)
8092

8193
add_executable(tiffcp ../placeholder.h)
8294
target_sources(tiffcp PRIVATE tiffcp.c ${MSVC_RESOURCE_FILE})
95+
set_target_properties(tiffcp PROPERTIES LINKER_LANGUAGE CXX)
8396
target_link_libraries(tiffcp PRIVATE tiff tiff_port)
8497

8598
add_executable(tiffcrop ../placeholder.h)
8699
target_sources(tiffcrop PRIVATE tiffcrop.c ${MSVC_RESOURCE_FILE})
100+
set_target_properties(tiffcrop PROPERTIES LINKER_LANGUAGE CXX)
87101
target_link_libraries(tiffcrop PRIVATE tiff tiff_port CMath::CMath)
88102

89103
add_executable(tiffdither ../placeholder.h)
90104
target_sources(tiffdither PRIVATE tiffdither.c ${MSVC_RESOURCE_FILE})
105+
set_target_properties(tiffdither PROPERTIES LINKER_LANGUAGE CXX)
91106
target_link_libraries(tiffdither PRIVATE tiff tiff_port)
92107

93108
add_executable(tiffdump ../placeholder.h)
94109
target_sources(tiffdump PRIVATE tiffdump.c ${MSVC_RESOURCE_FILE})
110+
set_target_properties(tiffdump PROPERTIES LINKER_LANGUAGE CXX)
95111
target_link_libraries(tiffdump PRIVATE tiff tiff_port)
96112

97113
add_executable(tiffinfo ../placeholder.h)
98114
target_sources(tiffinfo PRIVATE tiffinfo.c ${MSVC_RESOURCE_FILE})
115+
set_target_properties(tiffinfo PROPERTIES LINKER_LANGUAGE CXX)
99116
target_link_libraries(tiffinfo PRIVATE tiff tiff_port)
100117

101118
add_executable(tiffmedian ../placeholder.h)
102119
target_sources(tiffmedian PRIVATE tiffmedian.c ${MSVC_RESOURCE_FILE})
120+
set_target_properties(tiffmedian PROPERTIES LINKER_LANGUAGE CXX)
103121
target_link_libraries(tiffmedian PRIVATE tiff tiff_port)
104122

105123
add_executable(tiffset ../placeholder.h)
106124
target_sources(tiffset PRIVATE tiffset.c ${MSVC_RESOURCE_FILE})
125+
set_target_properties(tiffset PROPERTIES LINKER_LANGUAGE CXX)
107126
target_link_libraries(tiffset PRIVATE tiff tiff_port)
108127

109128
add_executable(tiffsplit ../placeholder.h)
110129
target_sources(tiffsplit PRIVATE tiffsplit.c ${MSVC_RESOURCE_FILE})
130+
set_target_properties(tiffsplit PROPERTIES LINKER_LANGUAGE CXX)
111131
target_link_libraries(tiffsplit PRIVATE tiff tiff_port)
112132

113133
# rgb2ycbcr and thumbnail are intended to *NOT* be installed. They are for
@@ -135,6 +155,7 @@ install(TARGETS fax2ps
135155
if(OPENGL_SUPPORT)
136156
add_executable(tiffgt ../placeholder.h)
137157
target_sources(tiffgt PRIVATE tiffgt.c)
158+
set_target_properties(tiffgt PROPERTIES LINKER_LANGUAGE CXX)
138159
target_link_libraries(tiffgt PRIVATE tiff tiff_port)
139160
target_link_libraries(tiffgt PRIVATE OpenGL::GL GLUT::GLUT)
140161

0 commit comments

Comments
 (0)