Skip to content

Commit 8b5d7fd

Browse files
committed
Do not dare linking an interface library in try_compile
1 parent 6217b11 commit 8b5d7fd

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

cmake/seqan3-config.cmake

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ set (THREADS_PREFER_PTHREAD_FLAG TRUE)
160160
find_package (Threads QUIET)
161161

162162
if (TARGET Threads::Threads)
163-
set (SEQAN3_LIBRARIES ${SEQAN3_LIBRARIES} Threads::Threads)
163+
list (APPEND SEQAN3_LIBRARIES Threads::Threads)
164164
if ("${CMAKE_THREAD_LIBS_INIT}" STREQUAL "")
165165
seqan3_config_print ("Thread support: builtin.")
166166
else ()
@@ -181,7 +181,7 @@ else ()
181181
endif ()
182182

183183
if (TARGET cereal::cereal)
184-
set (SEQAN3_LIBRARIES ${SEQAN3_LIBRARIES} cereal::cereal)
184+
list (APPEND SEQAN3_LIBRARIES cereal::cereal)
185185
seqan3_config_print ("Optional dependency: Cereal found.")
186186
else ()
187187
set (SEQAN3_DEFINITIONS ${SEQAN3_DEFINITIONS} "-DSEQAN3_HAS_CEREAL=0")
@@ -195,7 +195,7 @@ endif ()
195195
find_package (ZLIB QUIET)
196196

197197
if (TARGET ZLIB::ZLIB)
198-
set (SEQAN3_LIBRARIES ${SEQAN3_LIBRARIES} ZLIB::ZLIB)
198+
list (APPEND SEQAN3_LIBRARIES ZLIB::ZLIB)
199199
seqan3_config_print ("Optional dependency: ZLIB-${ZLIB_VERSION_STRING} found.")
200200
else ()
201201
set (SEQAN3_DEFINITIONS ${SEQAN3_DEFINITIONS} "-DSEQAN3_HAS_ZLIB=0")
@@ -209,7 +209,7 @@ endif ()
209209
find_package (BZip2 QUIET)
210210

211211
if (TARGET ZLIB::ZLIB AND TARGET BZip2::BZip2)
212-
set (SEQAN3_LIBRARIES ${SEQAN3_LIBRARIES} BZip2::BZip2)
212+
list (APPEND SEQAN3_LIBRARIES BZip2::BZip2)
213213
seqan3_config_print ("Optional dependency: BZip2-${BZIP2_VERSION_STRING} found.")
214214
else ()
215215
set (SEQAN3_DEFINITIONS ${SEQAN3_DEFINITIONS} "-DSEQAN3_HAS_BZIP2=0")
@@ -227,13 +227,13 @@ endif ()
227227
# librt
228228
find_library (SEQAN3_RT_LIB klrt)
229229
if (SEQAN3_RT_LIB)
230-
set (SEQAN3_LIBRARIES ${SEQAN3_LIBRARIES} ${SEQAN3_RT_LIB})
230+
list (APPEND SEQAN3_LIBRARIES ${SEQAN3_RT_LIB})
231231
endif ()
232232

233233
# libexecinfo -- implicit
234234
find_package (Backtrace QUIET)
235235
if (TARGET Backtrace::Backtrace)
236-
set (SEQAN3_LIBRARIES ${SEQAN3_LIBRARIES} Backtrace::Backtrace)
236+
list (APPEND SEQAN3_LIBRARIES Backtrace::Backtrace)
237237
seqan3_config_print ("Optional dependency: libexecinfo found.")
238238
else ()
239239
seqan3_config_print ("Optional dependency: libexecinfo not found.")
@@ -249,13 +249,17 @@ set (CXXSTD_TEST_SOURCE "#include <seqan3/core/platform.hpp>
249249
# using try_compile instead of check_cxx_source_compiles to capture output in case of failure
250250
file (WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "${CXXSTD_TEST_SOURCE}\n")
251251

252+
# cereal::cereal is an interface target and cannot be used in try_compile:
253+
# There is no shared or static library to link against.
254+
set (SEQAN3_TRYCOMPILE_LIBRARIES ${SEQAN3_LIBRARIES})
255+
list (REMOVE_ITEM SEQAN3_TRYCOMPILE_LIBRARIES cereal::cereal)
252256
# cmake-format: off
253257
try_compile (SEQAN3_PLATFORM_TEST
254258
${CMAKE_BINARY_DIR}
255259
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
256260
CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_INCLUDE_PATH};${SEQAN3_INCLUDE_DIR}"
257261
COMPILE_DEFINITIONS ${SEQAN3_DEFINITIONS}
258-
LINK_LIBRARIES ${SEQAN3_LIBRARIES}
262+
LINK_LIBRARIES ${SEQAN3_TRYCOMPILE_LIBRARIES}
259263
CXX_STANDARD 23
260264
CXX_STANDARD_REQUIRED ON
261265
CXX_EXTENSIONS OFF

0 commit comments

Comments
 (0)