| include_directories(${FLTK_INCLUDE_DIR}) |
| include_directories(${GETTEXT_INCLUDE_DIR}) |
| |
| include_directories(${CMAKE_SOURCE_DIR}/common) |
| set(VNCVIEWER_SOURCES |
| menukey.cxx |
| CConn.cxx |
| DesktopWindow.cxx |
| UserDialog.cxx |
| ServerDialog.cxx |
| Surface.cxx |
| OptionsDialog.cxx |
| PlatformPixelBuffer.cxx |
| Viewport.cxx |
| parameters.cxx |
| keysym2ucs.c |
| vncviewer.cxx) |
| |
| if(WIN32) |
| # Since vncviewer.rc is generated, local includes will be looking |
| # in the wrong directory. We need to help it out. |
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}) |
| configure_file(vncviewer.rc.in vncviewer.rc) |
| set(VNCVIEWER_SOURCES |
| ${VNCVIEWER_SOURCES} |
| ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.rc) |
| endif() |
| |
| if(WIN32) |
| set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} win32.c) |
| elseif(APPLE) |
| set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} cocoa.mm osx_to_qnum.c) |
| else() |
| set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} xkb_to_qnum.c) |
| endif() |
| |
| if(WIN32) |
| set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} Surface_Win32.cxx) |
| elseif(APPLE) |
| set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} Surface_OSX.cxx) |
| else() |
| set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} Surface_X11.cxx) |
| endif() |
| |
| if(WIN32 AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug") |
| add_executable(vncviewer WIN32 ${VNCVIEWER_SOURCES}) |
| else() |
| add_executable(vncviewer ${VNCVIEWER_SOURCES}) |
| endif() |
| |
| target_link_libraries(vncviewer rfb network rdr os ${FLTK_LIBRARIES} ${GETTEXT_LIBRARIES}) |
| |
| if(WIN32) |
| target_link_libraries(vncviewer msimg32) |
| endif() |
| |
| if(APPLE) |
| target_link_libraries(vncviewer "-framework Cocoa") |
| target_link_libraries(vncviewer "-framework Carbon") |
| target_link_libraries(vncviewer "-framework IOKit") |
| endif() |
| |
| install(TARGETS vncviewer DESTINATION ${BIN_DIR}) |
| if(UNIX) |
| install(FILES vncviewer.man DESTINATION ${MAN_DIR}/man1 RENAME vncviewer.1) |
| |
| configure_file(vncviewer.desktop.in.in vncviewer.desktop.in) |
| find_program(INTLTOOL_MERGE_EXECUTABLE intltool-merge) |
| if("${GETTEXT_VERSION_STRING}" VERSION_GREATER 0.18.99) |
| add_custom_command(OUTPUT vncviewer.desktop |
| COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} |
| --desktop --template vncviewer.desktop.in |
| -d ${CMAKE_SOURCE_DIR}/po -o vncviewer.desktop |
| DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in |
| ) |
| elseif(INTLTOOL_MERGE_EXECUTABLE) |
| add_custom_command(OUTPUT vncviewer.desktop |
| COMMAND sed -e 's/^Name/_Name/' |
| -e 's/^GenericName/_GenericName/' |
| -e 's/^Comment/_Comment/' |
| vncviewer.desktop.in > vncviewer.desktop.intl |
| COMMAND ${INTLTOOL_MERGE_EXECUTABLE} |
| -d ${CMAKE_SOURCE_DIR}/po |
| vncviewer.desktop.intl vncviewer.desktop |
| DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in |
| ) |
| else() |
| add_custom_command(OUTPUT vncviewer.desktop |
| COMMAND cp vncviewer.desktop.in vncviewer.desktop |
| DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in |
| ) |
| endif() |
| add_custom_target(desktop ALL DEPENDS vncviewer.desktop) |
| install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop DESTINATION ${DATA_DIR}/applications) |
| |
| foreach(res 16 22 24 32 48) |
| install(FILES ../media/icons/tigervnc_${res}.png DESTINATION ${DATA_DIR}/icons/hicolor/${res}x${res}/apps RENAME tigervnc.png) |
| endforeach() |
| install(FILES ../media/icons/tigervnc.svg DESTINATION ${DATA_DIR}/icons/hicolor/scalable/apps) |
| endif() |