@@ -114,6 +114,7 @@ endif()
114114
115115
116116if (WITH_THREADS)
117+ set (THREADS_PREFER_PTHREAD_FLAG TRUE )
117118 find_package (Threads)
118119endif ()
119120
@@ -193,11 +194,13 @@ check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
193194check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
194195
195196if (Threads_FOUND)
196- set (ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT} )
197+ list (APPEND ADDITIONAL_RAW_LIBS ${CMAKE_THREAD_LIBS_INIT} )
198+ list (APPEND ADDITIONAL_TARGETS Threads::Threads)
197199endif ()
198200if (ZLIB_FOUND)
199201 set (LIBVNCSERVER_HAVE_LIBZ 1)
200- list (APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES} )
202+ list (APPEND ADDITIONAL_RAW_LIBS ${ZLIB_LIBRARIES} )
203+ list (APPEND ADDITIONAL_TARGETS ZLIB::ZLIB)
201204endif ()
202205if (LZO_FOUND)
203206 set (LIBVNCSERVER_HAVE_LZO 1)
@@ -213,7 +216,8 @@ else()
213216 unset (PNG_LIBRARIES) # would otherwise contain -NOTFOUND, confusing target_link_libraries()
214217endif ()
215218if (OPENSSL_FOUND)
216- list (APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES} )
219+ list (APPEND ADDITIONAL_RAW_LIBS ${OPENSSL_LIBRARIES} )
220+ list (APPEND ADDITIONAL_TARGETS OpenSSL::SSL OpenSSL::Crypto)
217221endif ()
218222if (SYSTEMD_FOUND)
219223 add_definitions (-DLIBVNCSERVER_WITH_SYSTEMD)
@@ -368,7 +372,6 @@ elseif(OPENSSL_FOUND)
368372 ${LIBVNCSERVER_SOURCES}
369373 ${LIBVNCSERVER_DIR} /rfbssl_openssl.c
370374 )
371- include_directories (${OPENSSL_INCLUDE_DIR} )
372375else ()
373376 set (LIBVNCCLIENT_SOURCES
374377 ${LIBVNCCLIENT_SOURCES}
@@ -389,7 +392,6 @@ endif()
389392
390393if (ZLIB_FOUND)
391394 add_definitions (-DLIBVNCSERVER_HAVE_LIBZ)
392- include_directories (${ZLIB_INCLUDE_DIR} )
393395 set (LIBVNCSERVER_SOURCES
394396 ${LIBVNCSERVER_SOURCES}
395397 ${LIBVNCSERVER_DIR} /zlib.c
@@ -458,9 +460,11 @@ endif()
458460
459461target_link_libraries (vncclient
460462 ${ADDITIONAL_LIBS}
463+ ${ADDITIONAL_TARGETS}
461464)
462465target_link_libraries (vncserver
463466 ${ADDITIONAL_LIBS}
467+ ${ADDITIONAL_TARGETS}
464468 ${PNG_LIBRARIES}
465469)
466470
@@ -539,14 +543,14 @@ foreach(e ${LIBVNCSERVER_EXAMPLES})
539543 add_executable (examples_${e} ${LIBVNCSRVEXAMPLE_DIR} /${e} .c)
540544 set_target_properties (examples_${e} PROPERTIES OUTPUT_NAME ${e} )
541545 set_target_properties (examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /examples)
542- target_link_libraries (examples_${e} vncserver ${CMAKE_THREAD_LIBS_INIT} )
546+ target_link_libraries (examples_${e} vncserver Threads::Threads )
543547endforeach (e ${LIBVNCSERVER_EXAMPLES} )
544548
545549foreach (e ${LIBVNCCLIENT_EXAMPLES} )
546550 add_executable (client_examples_${e} ${LIBVNCCLIEXAMPLE_DIR} /${e} .c ${LIBVNCCLIEXAMPLE_DIR} /${${e} _EXTRA_SOURCES} )
547551 set_target_properties (client_examples_${e} PROPERTIES OUTPUT_NAME ${e} )
548552 set_target_properties (client_examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /client_examples)
549- target_link_libraries (client_examples_${e} vncclient ${CMAKE_THREAD_LIBS_INIT} ${SDL2_LIBRARY} ${FFMPEG_LIBRARIES} )
553+ target_link_libraries (client_examples_${e} vncclient Threads::Threads ${SDL2_LIBRARY} ${FFMPEG_LIBRARIES} )
550554endforeach (e ${LIBVNCCLIENT_EXAMPLES} )
551555
552556
@@ -642,9 +646,9 @@ function(get_link_libraries OUT EXTRA_LIBS)
642646endfunction ()
643647
644648if (NOT WIN32 )
645- get_link_libraries(PRIVATE_LIBS "${PNG_LIBRARIES} " )
649+ get_link_libraries(PRIVATE_LIBS "${PNG_LIBRARIES} ; ${ADDITIONAL_RAW_LIBS} " )
646650 configure_file (${CMAKE_CURRENT_SOURCE_DIR} /libvncserver.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR} /libvncserver.pc @ONLY)
647- get_link_libraries(PRIVATE_LIBS "" )
651+ get_link_libraries(PRIVATE_LIBS "${ADDITIONAL_RAW_LIBS} " )
648652 configure_file (${CMAKE_CURRENT_SOURCE_DIR} /libvncclient.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR} /libvncclient.pc @ONLY)
649653endif ()
650654
0 commit comments