@@ -114,6 +114,7 @@ endif()
114114
115115
116116if (WITH_THREADS)
117+ set (THREADS_PREFER_PTHREAD_FLAG TRUE )
117118 find_package (Threads)
118119endif ()
119120
@@ -194,11 +195,13 @@ check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
194195check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
195196
196197if (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)
198200endif ()
199201if (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)
202205endif ()
203206if (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()
215218endif ()
216219if (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)
218222endif ()
219223if (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} )
373376else ()
374377 set (LIBVNCCLIENT_SOURCES
375378 ${LIBVNCCLIENT_SOURCES}
@@ -390,7 +393,6 @@ endif()
390393
391394if (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
460462target_link_libraries (vncclient
461463 ${ADDITIONAL_LIBS}
464+ ${ADDITIONAL_TARGETS}
462465)
463466target_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 )
544548endforeach (e ${LIBVNCSERVER_EXAMPLES} )
545549
546550foreach (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} )
551555endforeach (e ${LIBVNCCLIENT_EXAMPLES} )
552556
553557
@@ -643,9 +647,9 @@ function(get_link_libraries OUT EXTRA_LIBS)
643647endfunction ()
644648
645649if (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)
650654endif ()
651655
0 commit comments