Skip to content

Commit 9e2121b

Browse files
committed
CMake: use imported targets where possible
1 parent d2ad391 commit 9e2121b

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

CMakeLists.txt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ endif()
114114

115115

116116
if(WITH_THREADS)
117+
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
117118
find_package(Threads)
118119
endif()
119120

@@ -194,11 +195,13 @@ check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
194195
check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
195196

196197
if(Threads_FOUND)
197-
set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
198+
list(APPEND ADDITIONAL_RAW_LIBS ${CMAKE_THREAD_LIBS_INIT})
199+
list(APPEND ADDITIONAL_TARGETS Threads::Threads)
198200
endif()
199201
if(ZLIB_FOUND)
200202
set(LIBVNCSERVER_HAVE_LIBZ 1)
201-
list(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES})
203+
list(APPEND ADDITIONAL_RAW_LIBS ${ZLIB_LIBRARIES})
204+
list(APPEND ADDITIONAL_TARGETS ZLIB::ZLIB)
202205
endif()
203206
if(LZO_FOUND)
204207
set(LIBVNCSERVER_HAVE_LZO 1)
@@ -214,7 +217,8 @@ else()
214217
unset(PNG_LIBRARIES) # would otherwise contain -NOTFOUND, confusing target_link_libraries()
215218
endif()
216219
if(OPENSSL_FOUND)
217-
list(APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES})
220+
list(APPEND ADDITIONAL_RAW_LIBS ${OPENSSL_LIBRARIES})
221+
list(APPEND ADDITIONAL_TARGETS OpenSSL::SSL OpenSSL::Crypto)
218222
endif()
219223
if(SYSTEMD_FOUND)
220224
add_definitions(-DLIBVNCSERVER_WITH_SYSTEMD)
@@ -369,7 +373,6 @@ elseif(OPENSSL_FOUND)
369373
${LIBVNCSERVER_SOURCES}
370374
${LIBVNCSERVER_DIR}/rfbssl_openssl.c
371375
)
372-
include_directories(${OPENSSL_INCLUDE_DIR})
373376
else()
374377
set(LIBVNCCLIENT_SOURCES
375378
${LIBVNCCLIENT_SOURCES}
@@ -390,7 +393,6 @@ endif()
390393

391394
if(ZLIB_FOUND)
392395
add_definitions(-DLIBVNCSERVER_HAVE_LIBZ)
393-
include_directories(${ZLIB_INCLUDE_DIR})
394396
set(LIBVNCSERVER_SOURCES
395397
${LIBVNCSERVER_SOURCES}
396398
${LIBVNCSERVER_DIR}/zlib.c
@@ -459,9 +461,11 @@ endif()
459461

460462
target_link_libraries(vncclient
461463
${ADDITIONAL_LIBS}
464+
${ADDITIONAL_TARGETS}
462465
)
463466
target_link_libraries(vncserver
464467
${ADDITIONAL_LIBS}
468+
${ADDITIONAL_TARGETS}
465469
${PNG_LIBRARIES}
466470
)
467471

@@ -540,14 +544,14 @@ foreach(e ${LIBVNCSERVER_EXAMPLES})
540544
add_executable(examples_${e} ${LIBVNCSRVEXAMPLE_DIR}/${e}.c)
541545
set_target_properties(examples_${e} PROPERTIES OUTPUT_NAME ${e})
542546
set_target_properties(examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/examples)
543-
target_link_libraries(examples_${e} vncserver ${CMAKE_THREAD_LIBS_INIT})
547+
target_link_libraries(examples_${e} vncserver Threads::Threads)
544548
endforeach(e ${LIBVNCSERVER_EXAMPLES})
545549

546550
foreach(e ${LIBVNCCLIENT_EXAMPLES})
547551
add_executable(client_examples_${e} ${LIBVNCCLIEXAMPLE_DIR}/${e}.c ${LIBVNCCLIEXAMPLE_DIR}/${${e}_EXTRA_SOURCES} )
548552
set_target_properties(client_examples_${e} PROPERTIES OUTPUT_NAME ${e})
549553
set_target_properties(client_examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/client_examples)
550-
target_link_libraries(client_examples_${e} vncclient ${CMAKE_THREAD_LIBS_INIT} ${SDL2_LIBRARY} ${FFMPEG_LIBRARIES})
554+
target_link_libraries(client_examples_${e} vncclient Threads::Threads ${SDL2_LIBRARY} ${FFMPEG_LIBRARIES})
551555
endforeach(e ${LIBVNCCLIENT_EXAMPLES})
552556

553557

@@ -643,9 +647,9 @@ function(get_link_libraries OUT EXTRA_LIBS)
643647
endfunction()
644648

645649
if(NOT WIN32)
646-
get_link_libraries(PRIVATE_LIBS "${PNG_LIBRARIES}")
650+
get_link_libraries(PRIVATE_LIBS "${PNG_LIBRARIES};${ADDITIONAL_RAW_LIBS}")
647651
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libvncserver.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libvncserver.pc @ONLY)
648-
get_link_libraries(PRIVATE_LIBS "")
652+
get_link_libraries(PRIVATE_LIBS "${ADDITIONAL_RAW_LIBS}")
649653
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libvncclient.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libvncclient.pc @ONLY)
650654
endif()
651655

0 commit comments

Comments
 (0)