diff options
author | Christian Beier <dontmind@freeshell.org> | 2017-01-02 20:07:57 +0100 |
---|---|---|
committer | Christian Beier <dontmind@freeshell.org> | 2017-01-02 20:07:57 +0100 |
commit | cc835fa938a8a4d3dd13a4f71ecd38ed9a2b82e9 (patch) | |
tree | 1bd9e8dc9c840782136dd3065c754ced59e7c315 /CMakeLists.txt | |
parent | 2f54d3ef628e814c52126de026c976048af6dd78 (diff) | |
download | libtdevnc-cc835fa938a8a4d3dd13a4f71ecd38ed9a2b82e9.tar.gz libtdevnc-cc835fa938a8a4d3dd13a4f71ecd38ed9a2b82e9.zip |
CMake: generate and install pkgconfig files.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 87c7856..744e0e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,6 +97,7 @@ endif(NOT HAVE_B64_IN_LIBC) if(Threads_FOUND) option(TIGHTVNC_FILETRANSFER "Enable filetransfer" ON) + set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) endif(Threads_FOUND) if(ZLIB_FOUND) set(LIBVNCSERVER_HAVE_LIBZ 1) @@ -399,6 +400,28 @@ foreach(test ${LIBVNCCLIENT_TESTS}) target_link_libraries(client_examples_${test} vncclient ${CMAKE_THREAD_LIBS_INIT} ${X11_LIBRARIES} ${SDL_LIBRARY} ${FFMPEG_LIBRARIES}) endforeach(test ${LIBVNCCLIENT_TESTS}) +# this gets the libraries needed by TARGET in "-libx -liby ..." form +function(get_link_libraries OUT TARGET) + set(RESULT "") + get_target_property(LIBRARIES ${TARGET} INTERFACE_LINK_LIBRARIES) + foreach(LIB ${LIBRARIES}) + string(REGEX REPLACE "^.*/lib" "" LIB ${LIB}) # remove leading path and "lib" name prefix + string(REGEX REPLACE "-l" "" LIB ${LIB}) # remove leading -l + string(REGEX REPLACE "\\.so$" "" LIB ${LIB}) # remove trailing .so + list(APPEND RESULT "-l${LIB}") + endforeach() + list(REMOVE_DUPLICATES RESULT) + string(CONCAT RESULT ${RESULT}) # back to string + string(REPLACE "-l" " -l" RESULT ${RESULT}) # re-add separators + set(${OUT} ${RESULT} PARENT_SCOPE) +endfunction() + +get_link_libraries(PRIVATE_LIBS vncserver) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libvncserver.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libvncserver.pc @ONLY) +get_link_libraries(PRIVATE_LIBS vncclient) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libvncclient.pc.cmakein ${CMAKE_CURRENT_BINARY_DIR}/libvncclient.pc @ONLY) + + install_targets(/lib vncserver) install_targets(/lib vncclient) install_files(/include/rfb FILES @@ -409,3 +432,8 @@ install_files(/include/rfb FILES rfb/rfbproto.h rfb/rfbregion.h ) + +install_files(/lib/pkgconfig FILES + libvncserver.pc + libvncclient.pc +) |