blob: 282ed9dac515f8ea23e1f652f52046bd18765c5f [file] [log] [blame]
Pierre Ossman5156d5e2011-03-09 09:42:34 +00001include_directories(${FLTK_INCLUDE_DIR})
Pierre Ossmanb232b5f2011-04-28 14:38:04 +00002include_directories(${GETTEXT_INCLUDE_DIR})
Pierre Ossman5156d5e2011-03-09 09:42:34 +00003
4include_directories(${CMAKE_SOURCE_DIR}/common)
Pierre Ossmanf14bf332011-04-14 12:49:03 +00005set(VNCVIEWER_SOURCES
Martin Koegler498ef462011-09-04 07:04:43 +00006 menukey.cxx
Pierre Ossman5156d5e2011-03-09 09:42:34 +00007 CConn.cxx
8 DesktopWindow.cxx
9 UserDialog.cxx
Pierre Ossman561ff0c2011-05-13 14:04:59 +000010 ServerDialog.cxx
Pierre Ossman403ac272017-01-02 17:00:41 +010011 Surface.cxx
Pierre Ossmand463b572011-05-16 12:04:43 +000012 OptionsDialog.cxx
Pierre Ossmanac13abe2014-02-07 14:46:26 +010013 PlatformPixelBuffer.cxx
Pierre Ossmand50b3d12011-04-15 07:46:56 +000014 Viewport.cxx
Pierre Ossman5156d5e2011-03-09 09:42:34 +000015 parameters.cxx
Pierre Ossmand014d052011-03-09 13:28:12 +000016 keysym2ucs.c
Pierre Ossman5156d5e2011-03-09 09:42:34 +000017 vncviewer.cxx)
18
Pierre Ossman407a5c32011-05-26 14:48:29 +000019if(WIN32)
Pierre Ossmanca937762012-03-27 12:30:19 +000020 # Since vncviewer.rc is generated, local includes will be looking
21 # in the wrong directory. We need to help it out.
22 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
23 configure_file(vncviewer.rc.in vncviewer.rc)
24 set(VNCVIEWER_SOURCES
25 ${VNCVIEWER_SOURCES}
26 ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.rc)
Pierre Ossman407a5c32011-05-26 14:48:29 +000027endif()
28
Pierre Ossmanca937762012-03-27 12:30:19 +000029if(WIN32)
30 set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} win32.c)
31elseif(APPLE)
Pierre Ossman407a5c32011-05-26 14:48:29 +000032 set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} cocoa.mm)
33endif()
34
Pierre Ossmanb4cb8762011-06-13 13:24:29 +000035if(WIN32)
Pierre Ossman403ac272017-01-02 17:00:41 +010036 set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} Surface_Win32.cxx)
Pierre Ossmanc18753c2011-06-17 07:35:56 +000037elseif(APPLE)
Pierre Ossman403ac272017-01-02 17:00:41 +010038 set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} Surface_OSX.cxx)
Pierre Ossmanc18753c2011-06-17 07:35:56 +000039else()
Pierre Ossman403ac272017-01-02 17:00:41 +010040 set(VNCVIEWER_SOURCES ${VNCVIEWER_SOURCES} Surface_X11.cxx)
Pierre Ossman13500692011-06-13 11:23:08 +000041endif()
42
Pierre Ossman4c699322014-07-21 16:22:43 +020043if(WIN32 AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
DRCc3a85172011-07-05 18:55:55 +000044 add_executable(vncviewer WIN32 ${VNCVIEWER_SOURCES})
45else()
46 add_executable(vncviewer ${VNCVIEWER_SOURCES})
47endif()
Pierre Ossmanf14bf332011-04-14 12:49:03 +000048
Pierre Ossman4e7d05c2016-05-13 15:34:34 +020049target_link_libraries(vncviewer rfb network rdr os ${FLTK_LIBRARIES} ${GETTEXT_LIBRARIES})
Peter Åstrand03327ae2011-04-19 12:31:44 +000050
Pierre Ossmande6a5802017-01-02 20:07:10 +010051if(WIN32)
52 target_link_libraries(vncviewer msimg32)
53endif()
54
Pierre Ossmanb27c1b22014-10-17 13:55:05 +020055if(APPLE)
56 target_link_libraries(vncviewer "-framework Cocoa" "-framework Carbon")
57endif()
58
Pierre Ossman448fd3a2012-03-27 10:28:18 +000059install(TARGETS vncviewer DESTINATION ${BIN_DIR})
DRCe66060d2011-06-25 03:02:10 +000060if(UNIX)
Pierre Ossman448fd3a2012-03-27 10:28:18 +000061 install(FILES vncviewer.man DESTINATION ${MAN_DIR}/man1 RENAME vncviewer.1)
Pierre Ossman86ff9fd2017-07-19 10:56:21 +020062 configure_file(vncviewer.desktop.in.in vncviewer.desktop.in)
63 add_custom_command(OUTPUT vncviewer.desktop
64 COMMAND ${GETTEXT_MSGFMT_EXECUTABLE}
65 --desktop --template vncviewer.desktop.in
66 -d ${CMAKE_SOURCE_DIR}/po -o vncviewer.desktop
67 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop.in
68 )
69 add_custom_target(desktop ALL DEPENDS vncviewer.desktop)
Pierre Ossman35449992016-01-11 12:38:32 +010070 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vncviewer.desktop DESTINATION ${DATA_DIR}/applications)
71 foreach(res 16 22 24 32 48)
72 install(FILES ../media/icons/tigervnc_${res}.png DESTINATION ${DATA_DIR}/icons/hicolor/${res}x${res}/apps RENAME tigervnc.png)
73 endforeach()
74 install(FILES ../media/icons/tigervnc.svg DESTINATION ${DATA_DIR}/icons/hicolor/scalable/apps)
DRCe66060d2011-06-25 03:02:10 +000075endif()