diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c81632001..e3a3f0c5b3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,7 +76,7 @@ jobs: brew install gnutls nettle gmp brew link fltk@1.3 - name: Configure - run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build + run: cmake -DCMAKE_BUILD_TYPE=Debug -S . -B build -DCMAKE_VERBOSE_MAKEFILE=TRUE - name: Build working-directory: build run: make diff --git a/.gitignore b/.gitignore index 85ba95f53b..0bc6f4590e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ +build*/ *.[ao] *.mo *.la *.lo +*.user .deps .libs diff --git a/CMakeLists.txt b/CMakeLists.txt index 77990d04a1..b16bdf25a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,9 @@ include(CheckTypeSize) include(CheckCSourceCompiles) include(CheckCXXSourceCompiles) include(CheckCSourceRuns) +include(CMakePackageConfigHelpers) +include(CMakeParseArguments) +include(GenerateExportHeader) include(CMakeMacroLibtoolFile) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 96b4e6b744..82a1b97e0b 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -12,3 +12,49 @@ if(NOT WIN32) set_target_properties(core rdr network rfb PROPERTIES COMPILE_FLAGS -fPIC) endif() + +add_library(tigervnc STATIC + $ + $ + $ + $) +target_link_libraries(tigervnc PUBLIC core rdr network rfb) + +# cmake version configure file +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/tigervncConfigVersion.cmake" + VERSION ${VERSION} + COMPATIBILITY AnyNewerVersion) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tigervncConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tigervnc" + COMPONENT Development + ) + +# Generate an export header file, which is required when generating DLLs using msvc +GENERATE_EXPORT_HEADER(tigervnc) +file(COPY ${CMAKE_CURRENT_BINARY_DIR}/tigervnc_export.h + DESTINATION ${CMAKE_BINARY_DIR}) +list(APPEND INSTALL_HEAD_FILES ${CMAKE_CURRENT_BINARY_DIR}/tigervnc_export.h) +set_target_properties(tigervnc PROPERTIES + PUBLIC_HEADER "${INSTALL_HEAD_FILES}" # Install head files + ) + +# Install head files and library +INSTALL(TARGETS tigervnc + EXPORT tigervncConfig + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tigervnc + COMPONENT Development + INCLUDES DESTINATION tigervnc + ) +# Export cmake configure file +export(TARGETS tigervnc + APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/tigervncConfig.cmake + ) +install(EXPORT tigervncConfig + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tigervnc" + COMPONENT Development + ) + +if(UNIX) + libtool_create_control_file(tigervnc) +endif() diff --git a/common/core/CMakeLists.txt b/common/core/CMakeLists.txt index 1932e5db5b..234248483b 100644 --- a/common/core/CMakeLists.txt +++ b/common/core/CMakeLists.txt @@ -1,4 +1,21 @@ -add_library(core STATIC +set(INSTALL_HEAD_FILES + Configuration.h + Exception.h + Logger.h + Mutex.h + Region.h + Timer.h + Thread.h + string.h + time.h + xdgdirs.h) +set(HEAD_FILES + ${INSTALL_HEAD_FILES} + Logger_file.h + Logger_stdio.h + LogWriter.h) +add_library(core OBJECT + ${HEAD_FILES} Configuration.cxx Exception.cxx Logger.cxx @@ -13,8 +30,10 @@ add_library(core STATIC time.cxx xdgdirs.cxx) -target_include_directories(core PUBLIC ${CMAKE_SOURCE_DIR}/common) -target_include_directories(core SYSTEM PUBLIC ${PIXMAN_INCLUDE_DIRS}) +target_include_directories(core PRIVATE + $ + $) +target_include_directories(core PRIVATE ${PIXMAN_INCLUDE_DIRS}) target_link_libraries(core ${PIXMAN_LIBRARIES}) target_link_directories(core PUBLIC ${PIXMAN_LIBRARY_DIRS}) @@ -34,3 +53,22 @@ endif() if(UNIX) libtool_create_control_file(core) endif() + +# Set install head files +set_target_properties(core PROPERTIES + PUBLIC_HEADER "${INSTALL_HEAD_FILES}") +# Install head files +INSTALL(TARGETS core + EXPORT coreConfig + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tigervnc/core + COMPONENT Development + INCLUDES DESTINATION tigervnc + ) +# Export cmake configure file +export(TARGETS core + APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/coreConfig.cmake + ) +install(EXPORT coreConfig + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tigervnc" + COMPONENT Development + ) diff --git a/common/network/CMakeLists.txt b/common/network/CMakeLists.txt index 42472b8dd6..05b4533d60 100644 --- a/common/network/CMakeLists.txt +++ b/common/network/CMakeLists.txt @@ -1,4 +1,9 @@ -add_library(network STATIC +set(INSTALL_HEAD_FILES + Socket.h + TcpSocket.h) + +add_library(network OBJECT + ${INSTALL_HEAD_FILES} Socket.cxx TcpSocket.cxx) @@ -6,7 +11,9 @@ if(NOT WIN32) target_sources(network PRIVATE UnixSocket.cxx) endif() -target_include_directories(network PUBLIC ${CMAKE_SOURCE_DIR}/common) +target_include_directories(network PRIVATE + $ + $) target_link_libraries(network core rdr) if(WIN32) @@ -16,3 +23,22 @@ endif() if(UNIX) libtool_create_control_file(network) endif() + +# Set install head files +set_target_properties(network PROPERTIES + PUBLIC_HEADER "${INSTALL_HEAD_FILES}") +# Install head files +INSTALL(TARGETS network + EXPORT networkConfig + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tigervnc/network + COMPONENT Development + INCLUDES DESTINATION tigervnc + ) +# Export cmake configure file +export(TARGETS network + APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/networkConfig.cmake + ) +install(EXPORT networkConfig + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tigervnc" + COMPONENT Development + ) diff --git a/common/rdr/CMakeLists.txt b/common/rdr/CMakeLists.txt index 55c691321a..a93de8a353 100644 --- a/common/rdr/CMakeLists.txt +++ b/common/rdr/CMakeLists.txt @@ -1,4 +1,21 @@ -add_library(rdr STATIC +set(INSTALL_HEAD_FILES + AESInStream.h + AESOutStream.h + BufferedInStream.h + BufferedOutStream.h + FdInStream.h + FdOutStream.h + FileInStream.h + HexInStream.h + HexOutStream.h + RandomStream.h + TLSException.h + TLSInStream.h + TLSOutStream.h + ZlibInStream.h + ZlibOutStream.h) +add_library(rdr OBJECT + ${INSTALL_HEAD_FILES} AESInStream.cxx AESOutStream.cxx BufferedInStream.cxx @@ -15,19 +32,21 @@ add_library(rdr STATIC ZlibInStream.cxx ZlibOutStream.cxx) -target_include_directories(rdr PUBLIC ${CMAKE_SOURCE_DIR}/common) -target_include_directories(rdr SYSTEM PUBLIC ${ZLIB_INCLUDE_DIRS}) +target_include_directories(rdr PRIVATE + $ + $) +target_include_directories(rdr SYSTEM PRIVATE ${ZLIB_INCLUDE_DIRS}) target_link_libraries(rdr core) target_link_libraries(rdr ${ZLIB_LIBRARIES}) if(GNUTLS_FOUND) - target_include_directories(rdr SYSTEM PUBLIC ${GNUTLS_INCLUDE_DIR}) + target_include_directories(rdr SYSTEM PRIVATE ${GNUTLS_INCLUDE_DIR}) target_link_libraries(rdr ${GNUTLS_LIBRARIES}) endif() if (NETTLE_FOUND) - target_include_directories(rdr SYSTEM PUBLIC ${NETTLE_INCLUDE_DIRS}) + target_include_directories(rdr SYSTEM PRIVATE ${NETTLE_INCLUDE_DIRS}) target_link_libraries(rdr ${NETTLE_LIBRARIES}) - target_link_directories(rdr PUBLIC ${NETTLE_LIBRARY_DIRS}) + target_link_directories(rdr PRIVATE ${NETTLE_LIBRARY_DIRS}) endif() if(WIN32) target_link_libraries(rdr ws2_32) @@ -36,3 +55,22 @@ endif() if(UNIX) libtool_create_control_file(rdr) endif() + +# Set install head files +set_target_properties(rdr PROPERTIES + PUBLIC_HEADER "${INSTALL_HEAD_FILES}") +# Install head files +INSTALL(TARGETS rdr + EXPORT rdrConfig + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tigervnc/rdr + COMPONENT Development + INCLUDES DESTINATION tigervnc + ) +# Export cmake configure file +export(TARGETS rdr + APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/rdrConfig.cmake + ) +install(EXPORT rdrConfig + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tigervnc" + COMPONENT Development + ) diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt index 2b5eea68bd..04357c83cb 100644 --- a/common/rfb/CMakeLists.txt +++ b/common/rfb/CMakeLists.txt @@ -1,4 +1,65 @@ -add_library(rfb STATIC +set(INSTALL_HEAD_FILES + AccessRights.h + Blacklist.h + Congestion.h + CConnection.h + CMsgHandler.h + CMsgReader.h + CMsgWriter.h + CSecurityPlain.h + CSecurityStack.h + CSecurityVeNCrypt.h + CSecurityVncAuth.h + ClientParams.h + ComparingUpdateTracker.h + CopyRectDecoder.h + Cursor.h + DecodeManager.h + Decoder.h + d3des.h + EncodeManager.h + Encoder.h + HextileDecoder.h + HextileEncoder.h + JpegCompressor.h + JpegDecompressor.h + KeyRemapper.h + KeysymStr.h + PixelBuffer.h + PixelFormat.h + RREEncoder.h + RREDecoder.h + RawDecoder.h + RawEncoder.h + SConnection.h + SMsgHandler.h + SMsgReader.h + SMsgWriter.h + ServerCore.h + ServerParams.h + Security.h + SecurityServer.h + SecurityClient.h + SSecurityPlain.h + SSecurityStack.h + SSecurityVncAuth.h + SSecurityVeNCrypt.h + TightDecoder.h + TightEncoder.h + TightJPEGEncoder.h + UpdateTracker.h + VNCSConnectionST.h + VNCServerST.h + ZRLEEncoder.h + ZRLEDecoder.h + encodings.h + obfuscate.h + ) +set(HEAD_FILES + ${INSTALL_HEAD_FILES} + ) +add_library(rfb OBJECT + ${HEAD_FILES} AccessRights.cxx Blacklist.cxx Congestion.cxx @@ -55,8 +116,10 @@ add_library(rfb STATIC encodings.cxx obfuscate.cxx) -target_include_directories(rfb PUBLIC ${CMAKE_SOURCE_DIR}/common) -target_include_directories(rfb SYSTEM PUBLIC ${JPEG_INCLUDE_DIR}) +target_include_directories(rfb PRIVATE + $ + $) +target_include_directories(rfb SYSTEM PRIVATE ${JPEG_INCLUDE_DIR}) target_link_libraries(rfb core rdr network) target_link_libraries(rfb ${JPEG_LIBRARIES} ${PIXMAN_LIBRARIES}) @@ -67,13 +130,13 @@ if(ENABLE_H264 AND NOT H264_LIBS STREQUAL "NONE") elseif(H264_LIBS STREQUAL "WIN") target_sources(rfb PRIVATE H264WinDecoderContext.cxx) endif() - target_include_directories(rfb SYSTEM PUBLIC ${H264_INCLUDE_DIRS}) + target_include_directories(rfb SYSTEM PRIVATE ${H264_INCLUDE_DIRS}) target_link_libraries(rfb ${H264_LIBRARIES}) - target_link_directories(rfb PUBLIC ${H264_LIBRARY_DIRS}) + target_link_directories(rfb PRIVATE ${H264_LIBRARY_DIRS}) endif() if(WIN32) - target_include_directories(rfb PUBLIC ${CMAKE_SOURCE_DIR}/win) + target_include_directories(rfb PUBLIC $) target_sources(rfb PRIVATE WinPasswdValidator.cxx) endif(WIN32) @@ -84,7 +147,7 @@ endif() if(GNUTLS_FOUND) target_sources(rfb PRIVATE CSecurityTLS.cxx SSecurityTLS.cxx) - target_include_directories(rfb SYSTEM PUBLIC ${GNUTLS_INCLUDE_DIR}) + target_include_directories(rfb SYSTEM PRIVATE ${GNUTLS_INCLUDE_DIR}) target_link_libraries(rfb ${GNUTLS_LIBRARIES}) # FIXME: Hack to block it marking gnutls_free() as dllimport if(WIN32 AND BUILD_STATIC) @@ -95,14 +158,33 @@ endif() if (NETTLE_FOUND) target_sources(rfb PRIVATE CSecurityDH.cxx CSecurityMSLogonII.cxx CSecurityRSAAES.cxx SSecurityRSAAES.cxx) - target_include_directories(rfb SYSTEM PUBLIC ${NETTLE_INCLUDE_DIRS} + target_include_directories(rfb SYSTEM PRIVATE ${NETTLE_INCLUDE_DIRS} ${GMP_INCLUDE_DIRS}) target_link_libraries(rfb ${HOGWEED_LIBRARIES} ${NETTLE_LIBRARIES} ${GMP_LIBRARIES}) - target_link_directories(rfb PUBLIC ${HOGWEED_LIBRARY_DIRS} + target_link_directories(rfb PRIVATE ${HOGWEED_LIBRARY_DIRS} ${NETTLE_LIBRARY_DIRS} ${GMP_LIBRARY_DIRS}) endif() if(UNIX) libtool_create_control_file(rfb) endif() + +# Set install head files +set_target_properties(rfb PROPERTIES + PUBLIC_HEADER "${INSTALL_HEAD_FILES}") +# Install head files +INSTALL(TARGETS rfb + EXPORT rfbConfig + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tigervnc/rfb + COMPONENT Development + INCLUDES DESTINATION tigervnc + ) +# Export cmake configure file +export(TARGETS rfb + APPEND FILE ${CMAKE_CURRENT_BINARY_DIR}/rfbConfig.cmake + ) +install(EXPORT rfbConfig + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/tigervnc" + COMPONENT Development + ) diff --git a/tests/perf/CMakeLists.txt b/tests/perf/CMakeLists.txt index 38f874d498..d2655c26b1 100644 --- a/tests/perf/CMakeLists.txt +++ b/tests/perf/CMakeLists.txt @@ -3,13 +3,13 @@ include_directories(${CMAKE_SOURCE_DIR}/common) add_library(test_util STATIC util.cxx) add_executable(convperf convperf.cxx) -target_link_libraries(convperf test_util rfb) +target_link_libraries(convperf test_util tigervnc) add_executable(decperf decperf.cxx) -target_link_libraries(decperf test_util rdr rfb) +target_link_libraries(decperf test_util tigervnc) add_executable(encperf encperf.cxx) -target_link_libraries(encperf test_util core rdr rfb) +target_link_libraries(encperf test_util tigervnc) if (BUILD_VIEWER) add_executable(fbperf @@ -28,7 +28,7 @@ if (BUILD_VIEWER) endif() target_include_directories(fbperf SYSTEM PUBLIC ${FLTK_INCLUDE_DIR}) target_include_directories(fbperf SYSTEM PUBLIC ${GETTEXT_INCLUDE_DIR}) - target_link_libraries(fbperf test_util core rfb ${FLTK_LIBRARIES} ${GETTEXT_LIBRARIES}) + target_link_libraries(fbperf test_util tigervnc ${FLTK_LIBRARIES} ${GETTEXT_LIBRARIES}) if(WIN32) target_link_libraries(fbperf msimg32) endif() diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt index 12ba56992a..37c26494df 100644 --- a/tests/unit/CMakeLists.txt +++ b/tests/unit/CMakeLists.txt @@ -2,10 +2,10 @@ include_directories(${CMAKE_SOURCE_DIR}/common) include_directories(${CMAKE_SOURCE_DIR}/vncviewer) add_executable(configargs configargs.cxx) -target_link_libraries(configargs rfb) +target_link_libraries(configargs tigervnc) add_executable(conv conv.cxx) -target_link_libraries(conv rfb) +target_link_libraries(conv tigervnc) add_executable(convertlf convertlf.cxx) target_link_libraries(convertlf core) @@ -14,10 +14,10 @@ add_executable(gesturehandler gesturehandler.cxx ../../vncviewer/GestureHandler. target_link_libraries(gesturehandler core) add_executable(hostport hostport.cxx) -target_link_libraries(hostport network) +target_link_libraries(hostport tigervnc) add_executable(pixelformat pixelformat.cxx) -target_link_libraries(pixelformat rfb) +target_link_libraries(pixelformat tigervnc) add_executable(unicode unicode.cxx) target_link_libraries(unicode core) diff --git a/unix/tx/CMakeLists.txt b/unix/tx/CMakeLists.txt index 4967f1bcf2..eb0ef469ab 100644 --- a/unix/tx/CMakeLists.txt +++ b/unix/tx/CMakeLists.txt @@ -6,4 +6,4 @@ target_include_directories(tx SYSTEM PUBLIC ${X11_INCLUDE_DIR}) target_include_directories(tx PUBLIC ${CMAKE_SOURCE_DIR}/common) target_include_directories(tx PUBLIC ${CMAKE_SOURCE_DIR}/common/rfb) -target_link_libraries(tx core ${X11_LIBRARIES}) +target_link_libraries(tx tigervnc ${X11_LIBRARIES}) diff --git a/unix/vncconfig/CMakeLists.txt b/unix/vncconfig/CMakeLists.txt index 4882dc7162..333f17dbbe 100644 --- a/unix/vncconfig/CMakeLists.txt +++ b/unix/vncconfig/CMakeLists.txt @@ -9,7 +9,12 @@ target_include_directories(vncconfig SYSTEM PUBLIC ${X11_INCLUDE_DIR}) target_include_directories(vncconfig PUBLIC ${CMAKE_SOURCE_DIR}/common) target_include_directories(vncconfig PUBLIC ${CMAKE_SOURCE_DIR}/unix/tx) -target_link_libraries(vncconfig core tx rfb ${X11_LIBRARIES}) +target_link_libraries(vncconfig tigervnc tx ${X11_LIBRARIES}) -install(TARGETS vncconfig DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) -install(FILES vncconfig.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 RENAME vncconfig.1) +install(TARGETS vncconfig + DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} + COMPONENT Runtime) +install(FILES vncconfig.man + DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 + RENAME vncconfig.1 + COMPONENT Runtime) diff --git a/unix/vncpasswd/CMakeLists.txt b/unix/vncpasswd/CMakeLists.txt index 6ed4adaf05..ac76720968 100644 --- a/unix/vncpasswd/CMakeLists.txt +++ b/unix/vncpasswd/CMakeLists.txt @@ -2,11 +2,16 @@ add_executable(vncpasswd vncpasswd.cxx) target_include_directories(vncpasswd PUBLIC ${CMAKE_SOURCE_DIR}/common) -target_link_libraries(vncpasswd core tx rfb) +target_link_libraries(vncpasswd tx tigervnc) if(PWQUALITY_FOUND) target_link_libraries(vncpasswd pwquality) endif() -install(TARGETS vncpasswd DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) -install(FILES vncpasswd.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 RENAME vncpasswd.1) +install(TARGETS vncpasswd + DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} + COMPONENT Runtime) +install(FILES vncpasswd.man + DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 + RENAME vncpasswd.1 + COMPONENT Runtime) diff --git a/unix/vncserver/CMakeLists.txt b/unix/vncserver/CMakeLists.txt index ae69dc0983..67884bca13 100644 --- a/unix/vncserver/CMakeLists.txt +++ b/unix/vncserver/CMakeLists.txt @@ -6,18 +6,18 @@ configure_file(vncsession-start.in vncsession-start @ONLY) configure_file(vncserver.in vncserver @ONLY) configure_file(vncsession.man.in vncsession.man @ONLY) -install(TARGETS vncsession DESTINATION ${CMAKE_INSTALL_FULL_SBINDIR}) -install(FILES tigervnc.pam DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/pam.d RENAME tigervnc) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncsession.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man8 RENAME vncsession.8) -install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vncserver DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR}) -install(FILES vncserver.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man8 RENAME vncserver.8) -install(FILES vncserver-config-defaults vncserver-config-mandatory DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/tigervnc) +install(TARGETS vncsession DESTINATION ${CMAKE_INSTALL_FULL_SBINDIR} COMPONENT Runtime) +install(FILES tigervnc.pam DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/pam.d RENAME tigervnc COMPONENT Runtime) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncsession.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man8 RENAME vncsession.8 COMPONENT Runtime) +install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vncserver DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR} COMPONENT Runtime) +install(FILES vncserver.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man8 RENAME vncserver.8 COMPONENT Runtime) +install(FILES vncserver-config-defaults vncserver-config-mandatory DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/tigervnc COMPONENT Runtime) -install(FILES vncserver.users DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/tigervnc) +install(FILES vncserver.users DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/tigervnc COMPONENT Runtime) -install(FILES HOWTO.md DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR}) +install(FILES HOWTO.md DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} COMPONENT Runtime) if(INSTALL_SYSTEMD_UNITS) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncserver@.service DESTINATION ${CMAKE_INSTALL_FULL_UNITDIR}) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vncsession-start DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncserver@.service DESTINATION ${CMAKE_INSTALL_FULL_UNITDIR} COMPONENT Runtime) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vncsession-start DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR} COMPONENT Runtime) endif() diff --git a/unix/x0vncserver/CMakeLists.txt b/unix/x0vncserver/CMakeLists.txt index 763f2de235..10232a1601 100644 --- a/unix/x0vncserver/CMakeLists.txt +++ b/unix/x0vncserver/CMakeLists.txt @@ -53,5 +53,5 @@ endif() target_link_libraries(x0vncserver ${X11_LIBRARIES}) -install(TARGETS x0vncserver DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) -install(FILES x0vncserver.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 RENAME x0vncserver.1) +install(TARGETS x0vncserver DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT Runtime) +install(FILES x0vncserver.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 RENAME x0vncserver.1 COMPONENT Runtime) diff --git a/vncviewer/CMakeLists.txt b/vncviewer/CMakeLists.txt index d32ad2ea57..9bc7d681b0 100644 --- a/vncviewer/CMakeLists.txt +++ b/vncviewer/CMakeLists.txt @@ -51,7 +51,7 @@ endif() target_include_directories(vncviewer SYSTEM PUBLIC ${FLTK_INCLUDE_DIR}) target_include_directories(vncviewer SYSTEM PUBLIC ${GETTEXT_INCLUDE_DIR}) target_include_directories(vncviewer PUBLIC ${CMAKE_SOURCE_DIR}/common) -target_link_libraries(vncviewer core rfb network rdr) +target_link_libraries(vncviewer tigervnc) target_link_libraries(vncviewer ${FLTK_LIBRARIES} ${GETTEXT_LIBRARIES}) if(WIN32) @@ -68,9 +68,14 @@ else() endif() endif() -install(TARGETS vncviewer DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) +install(TARGETS vncviewer + DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} + COMPONENT Runtime) if(UNIX) - install(FILES vncviewer.man DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 RENAME vncviewer.1) + install(FILES vncviewer.man + DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 + RENAME vncviewer.1 + COMPONENT Runtime) file(STRINGS ${CMAKE_SOURCE_DIR}/po/LINGUAS LINGUAS) set(po_FILES "") @@ -107,7 +112,9 @@ if(UNIX) ) endif() add_custom_target(desktop ALL DEPENDS vncviewer.desktop) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/applications) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop + DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/applications + COMPONENT Runtime) if("${GETTEXT_VERSION_STRING}" VERSION_GREATER 0.19.6) add_custom_command(OUTPUT org.tigervnc.vncviewer.metainfo.xml @@ -137,10 +144,17 @@ if(UNIX) ) endif() add_custom_target(appstream ALL DEPENDS org.tigervnc.vncviewer.metainfo.xml) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.tigervnc.vncviewer.metainfo.xml DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/metainfo) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.tigervnc.vncviewer.metainfo.xml + DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/metainfo + COMPONENT Runtime) foreach(res 16 22 24 32 48 64 128) - install(FILES ../media/icons/tigervnc_${res}.png DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/icons/hicolor/${res}x${res}/apps RENAME tigervnc.png) + install(FILES ../media/icons/tigervnc_${res}.png + DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/icons/hicolor/${res}x${res}/apps + RENAME tigervnc.png + COMPONENT Runtime) endforeach() - install(FILES ../media/icons/tigervnc.svg DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/icons/hicolor/scalable/apps) + install(FILES ../media/icons/tigervnc.svg + DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/icons/hicolor/scalable/apps + COMPONENT Runtime) endif() diff --git a/win/vncconfig/CMakeLists.txt b/win/vncconfig/CMakeLists.txt index 157ee4c5ef..18e7ada229 100644 --- a/win/vncconfig/CMakeLists.txt +++ b/win/vncconfig/CMakeLists.txt @@ -5,8 +5,9 @@ add_executable(vncconfig WIN32 vncconfig.rc) target_include_directories(vncconfig PUBLIC ${CMAKE_BINARY_DIR}/win) -target_link_libraries(vncconfig rfb_win32 rfb network rdr ws2_32.lib) +target_link_libraries(vncconfig rfb_win32 tigervnc ws2_32.lib) install(TARGETS vncconfig RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} + COMPONENT Runtime ) diff --git a/win/winvnc/CMakeLists.txt b/win/winvnc/CMakeLists.txt index e7e1a4de0e..6697d65d5f 100644 --- a/win/winvnc/CMakeLists.txt +++ b/win/winvnc/CMakeLists.txt @@ -11,8 +11,9 @@ add_executable(winvnc4 WIN32 target_include_directories(winvnc4 PUBLIC ${CMAKE_BINARY_DIR}/win) target_include_directories(winvnc4 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(winvnc4 rfb rfb_win32 network rdr ws2_32.lib) +target_link_libraries(winvnc4 rfb_win32 tigervnc ws2_32.lib) install(TARGETS winvnc4 RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} + COMPONENT Runtime ) diff --git a/win/wm_hooks/CMakeLists.txt b/win/wm_hooks/CMakeLists.txt index 441d9bf9cb..e51d3819ac 100644 --- a/win/wm_hooks/CMakeLists.txt +++ b/win/wm_hooks/CMakeLists.txt @@ -10,4 +10,5 @@ target_include_directories(wm_hooks PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) install(TARGETS wm_hooks RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} + COMPONENT Runtime )