@@ -110,6 +110,7 @@ endif()
110110
111111
112112if (WITH_THREADS)
113+ set (THREADS_PREFER_PTHREAD_FLAG TRUE )
113114 find_package (Threads)
114115endif ()
115116
@@ -189,11 +190,13 @@ check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
189190check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
190191
191192if (Threads_FOUND)
192- set (ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT} )
193+ list (APPEND ADDITIONAL_RAW_LIBS ${CMAKE_THREAD_LIBS_INIT} )
194+ list (APPEND ADDITIONAL_TARGETS Threads::Threads)
193195endif ()
194196if (ZLIB_FOUND)
195197 set (LIBVNCSERVER_HAVE_LIBZ 1)
196- list (APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES} )
198+ list (APPEND ADDITIONAL_RAW_LIBS ${ZLIB_LIBRARIES} )
199+ list (APPEND ADDITIONAL_TARGETS ZLIB::ZLIB)
197200endif ()
198201if (LZO_FOUND)
199202 set (LIBVNCSERVER_HAVE_LZO 1)
@@ -209,7 +212,8 @@ else()
209212 unset (PNG_LIBRARIES) # would otherwise contain -NOTFOUND, confusing target_link_libraries()
210213endif ()
211214if (OPENSSL_FOUND)
212- list (APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES} )
215+ list (APPEND ADDITIONAL_RAW_LIBS ${OPENSSL_LIBRARIES} )
216+ list (APPEND ADDITIONAL_TARGETS OpenSSL::SSL OpenSSL::Crypto)
213217endif ()
214218if (SYSTEMD_FOUND)
215219 add_definitions (-DLIBVNCSERVER_WITH_SYSTEMD)
@@ -365,7 +369,6 @@ elseif(OPENSSL_FOUND)
365369 ${LIBVNCSERVER_SOURCES}
366370 ${LIBVNCSERVER_DIR} /rfbssl_openssl.c
367371 )
368- include_directories (${OPENSSL_INCLUDE_DIR} )
369372else ()
370373 set (LIBVNCCLIENT_SOURCES
371374 ${LIBVNCCLIENT_SOURCES}
@@ -386,7 +389,6 @@ endif()
386389
387390if (ZLIB_FOUND)
388391 add_definitions (-DLIBVNCSERVER_HAVE_LIBZ)
389- include_directories (${ZLIB_INCLUDE_DIR} )
390392 set (LIBVNCSERVER_SOURCES
391393 ${LIBVNCSERVER_SOURCES}
392394 ${LIBVNCSERVER_DIR} /zlib.c
@@ -455,9 +457,11 @@ endif()
455457
456458target_link_libraries (vncclient
457459 ${ADDITIONAL_LIBS}
460+ ${ADDITIONAL_TARGETS}
458461)
459462target_link_libraries (vncserver
460463 ${ADDITIONAL_LIBS}
464+ ${ADDITIONAL_TARGETS}
461465 ${PNG_LIBRARIES}
462466)
463467
@@ -536,14 +540,14 @@ foreach(e ${LIBVNCSERVER_EXAMPLES})
536540 add_executable (examples_${e} ${LIBVNCSRVEXAMPLE_DIR} /${e} .c)
537541 set_target_properties (examples_${e} PROPERTIES OUTPUT_NAME ${e} )
538542 set_target_properties (examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /examples)
539- target_link_libraries (examples_${e} vncserver ${CMAKE_THREAD_LIBS_INIT} )
543+ target_link_libraries (examples_${e} vncserver Threads::Threads )
540544endforeach (e ${LIBVNCSERVER_EXAMPLES} )
541545
542546foreach (e ${LIBVNCCLIENT_EXAMPLES} )
543547 add_executable (client_examples_${e} ${LIBVNCCLIEXAMPLE_DIR} /${e} .c ${LIBVNCCLIEXAMPLE_DIR} /${${e} _EXTRA_SOURCES} )
544548 set_target_properties (client_examples_${e} PROPERTIES OUTPUT_NAME ${e} )
545549 set_target_properties (client_examples_${e} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /client_examples)
546- target_link_libraries (client_examples_${e} vncclient ${CMAKE_THREAD_LIBS_INIT} ${SDL2_LIBRARY} ${FFMPEG_LIBRARIES} )
550+ target_link_libraries (client_examples_${e} vncclient Threads::Threads ${SDL2_LIBRARY} ${FFMPEG_LIBRARIES} )
547551endforeach (e ${LIBVNCCLIENT_EXAMPLES} )
548552
549553
@@ -639,9 +643,9 @@ function(get_link_libraries OUT EXTRA_LIBS)
639643endfunction ()
640644
641645if (NOT WIN32 )
642- get_link_libraries(PRIVATE_LIBS "${PNG_LIBRARIES} " )
646+ get_link_libraries(PRIVATE_LIBS "${PNG_LIBRARIES} ; ${ADDITIONAL_RAW_LIBS} " )
643647 configure_file (${CMAKE_CURRENT_SOURCE_DIR} /libvncserver.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR} /libvncserver.pc @ONLY)
644- get_link_libraries(PRIVATE_LIBS "" )
648+ get_link_libraries(PRIVATE_LIBS "${ADDITIONAL_RAW_LIBS} " )
645649 configure_file (${CMAKE_CURRENT_SOURCE_DIR} /libvncclient.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR} /libvncclient.pc @ONLY)
646650endif ()
647651
0 commit comments