Skip to content

Commit a792655

Browse files
committed
CMake: use imported targets where possible
1 parent df487a0 commit a792655

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

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

195196
if(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)
197199
endif()
198200
if(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)
201204
endif()
202205
if(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()
214217
endif()
215218
if(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)
217221
endif()
218222
if(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})
372375
else()
373376
set(LIBVNCCLIENT_SOURCES
374377
${LIBVNCCLIENT_SOURCES}
@@ -389,7 +392,6 @@ endif()
389392

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

459461
target_link_libraries(vncclient
460462
${ADDITIONAL_LIBS}
463+
${ADDITIONAL_TARGETS}
461464
)
462465
target_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)
543547
endforeach(e ${LIBVNCSERVER_EXAMPLES})
544548

545549
foreach(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})
550554
endforeach(e ${LIBVNCCLIENT_EXAMPLES})
551555

552556

@@ -642,9 +646,9 @@ function(get_link_libraries OUT EXTRA_LIBS)
642646
endfunction()
643647

644648
if(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)
649653
endif()
650654

0 commit comments

Comments
 (0)