Skip to content

Commit 403350a

Browse files
committed
CMake: use imported targets where possible
1 parent b9b40e5 commit 403350a

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
@@ -110,6 +110,7 @@ endif()
110110

111111

112112
if(WITH_THREADS)
113+
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
113114
find_package(Threads)
114115
endif()
115116

@@ -189,11 +190,13 @@ check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
189190
check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
190191

191192
if(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)
193195
endif()
194196
if(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)
197200
endif()
198201
if(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()
210213
endif()
211214
if(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)
213217
endif()
214218
if(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})
369372
else()
370373
set(LIBVNCCLIENT_SOURCES
371374
${LIBVNCCLIENT_SOURCES}
@@ -386,7 +389,6 @@ endif()
386389

387390
if(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

456458
target_link_libraries(vncclient
457459
${ADDITIONAL_LIBS}
460+
${ADDITIONAL_TARGETS}
458461
)
459462
target_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)
540544
endforeach(e ${LIBVNCSERVER_EXAMPLES})
541545

542546
foreach(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})
547551
endforeach(e ${LIBVNCCLIENT_EXAMPLES})
548552

549553

@@ -639,9 +643,9 @@ function(get_link_libraries OUT EXTRA_LIBS)
639643
endfunction()
640644

641645
if(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)
646650
endif()
647651

0 commit comments

Comments
 (0)