blob: a157226d96c54efd5e4556b8b422cd19d07d0a69 [file] [log] [blame]
DRCc19ab9e2011-10-07 05:38:00 +00001cmake_minimum_required(VERSION 2.8)
2
3project(tigervnc-java Java)
DRC550a4df2012-02-12 22:10:01 +00004set(VERSION 1.2.80)
DRCc19ab9e2011-10-07 05:38:00 +00005
DRC7636ad02011-10-04 04:03:34 +00006find_package(Java)
7
Brian Hinzcf0e3122012-04-05 03:37:50 +00008set(DEFAULT_JAVACFLAGS "-source 1.5 -target 1.5 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann")
DRC7636ad02011-10-04 04:03:34 +00009set(JAVACFLAGS ${DEFAULT_JAVACFLAGS} CACHE STRING
10 "Java compiler flags (Default: ${DEFAULT_JAVACFLAGS})")
11message(STATUS "Java compiler flags = ${JAVACFLAGS}")
12
13set(CLASSPATH com/tigervnc/vncviewer)
14set(JAVA_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/${CLASSPATH})
15set(JAVA_BINDIR ${CMAKE_CURRENT_BINARY_DIR}/${CLASSPATH})
16
DRCccc09692011-11-08 06:57:58 +000017execute_process(COMMAND "date" "+%b %d %Y" OUTPUT_VARIABLE JAVA_DATE)
18execute_process(COMMAND "date" "+%H:%M:%S" OUTPUT_VARIABLE JAVA_TIME)
DRC7636ad02011-10-04 04:03:34 +000019string(REGEX REPLACE "\n" "" JAVA_DATE ${JAVA_DATE})
20string(REGEX REPLACE "\n" "" JAVA_TIME ${JAVA_TIME})
21
22set(JAVA_CLASSNAMES
23 CConn
24 ClipboardDialog
25 DesktopWindow
26 Dialog
27 F8Menu
28 OptionsDialogCallback
29 PasswdDialog
Brian Hinzcf0e3122012-04-05 03:37:50 +000030 PlatformPixelBuffer
DRC7636ad02011-10-04 04:03:34 +000031 OptionsDialog
32 ServerDialog
DRC7636ad02011-10-04 04:03:34 +000033 VncViewer)
34
DRC7636ad02011-10-04 04:03:34 +000035set(JAVA_SOURCES "")
36set(JAVA_CLASSES_FULL "")
37foreach(class ${JAVA_CLASSNAMES})
38 set(JAVA_SOURCES ${JAVA_SOURCES} ${JAVA_SRCDIR}/${class}.java)
39 set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL}
DRCccc09692011-11-08 06:57:58 +000040 ${CMAKE_CURRENT_BINARY_DIR}/${CLASSPATH}/${class}.class)
DRC7636ad02011-10-04 04:03:34 +000041endforeach()
42
Brian Hinzcf0e3122012-04-05 03:37:50 +000043set(JSCH_CLASSNAMES
44 DH
45 DHG1
46 DHG14
47 DHGEX
48 JSch
49 Session
50 UserAuth
51 UserAuthKeyboardInteractive
52 UserAuthPassword
53 UserAuthPublicKey
54 UserAuthNone
55 jce/AES128CBC
56 jce/AES192CTR
57 jce/ARCFOUR128
58 jce/BlowfishCBC
59 jce/HMACMD5
60 jce/KeyPairGenDSA
61 jce/Random
62 jce/SignatureRSA
63 jce/AES128CTR
64 jce/AES256CBC
65 jce/ARCFOUR256
66 jce/DH
67 jce/HMACSHA196
68 jce/KeyPairGenRSA
69 jce/SHA1
70 jce/TripleDESCBC
71 jce/AES192CBC
72 jce/AES256CTR
73 jce/ARCFOUR
74 jce/HMACMD596
75 jce/HMACSHA1
76 jce/MD5
77 jce/SignatureDSA
78 jce/TripleDESCTR
79 jcraft/Compression
80 jcraft/HMAC
81 jcraft/HMACMD596
82 jcraft/HMACMD5
83 jcraft/HMACSHA196
84 jcraft/HMACSHA1)
85set(JSCH_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch)
86foreach(class ${JSCH_CLASSNAMES})
87 set(JAVA_SOURCES ${JAVA_SOURCES} ${JSCH_SRCDIR}/${class}.java)
88 set(JAVA_CLASSES_FULL ${JAVA_CLASSES_FULL}
89 ${CMAKE_CURRENT_BINARY_DIR}/com/jcraft/jsch/${class}.class)
90endforeach()
91
DRC7636ad02011-10-04 04:03:34 +000092file(GLOB DEPEND_SOURCES
93 ${CMAKE_CURRENT_SOURCE_DIR}/com/tigervnc/rfb/*.java
94 ${CMAKE_CURRENT_SOURCE_DIR}/com/tigervnc/rdr/*.java
Brian Hinz0eaec7d2012-02-03 05:38:23 +000095 ${CMAKE_CURRENT_SOURCE_DIR}/com/tigervnc/network/*.java
Brian Hinzcf0e3122012-04-05 03:37:50 +000096 ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch/*.java
97 ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch/jcraft/*.java
98 ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jsch/jgss/*.java
DRC7636ad02011-10-04 04:03:34 +000099 ${CMAKE_CURRENT_SOURCE_DIR}/com/jcraft/jzlib/*.java)
100
101string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}")
102add_custom_command(OUTPUT ${JAVA_CLASSES_FULL}
103 DEPENDS ${JAVA_SOURCES} ${DEPEND_SOURCES}
104 COMMAND ${JAVA_COMPILE}
Brian Hinzcf0e3122012-04-05 03:37:50 +0000105 ARGS ${JAVACFLAGS} -sourcepath ${CMAKE_CURRENT_SOURCE_DIR}
DRCccc09692011-11-08 06:57:58 +0000106 -d ${CMAKE_CURRENT_BINARY_DIR} ${JAVA_SOURCES})
DRC7636ad02011-10-04 04:03:34 +0000107
108configure_file(${CLASSPATH}/timestamp.in ${CLASSPATH}/timestamp)
109
110add_custom_command(OUTPUT ${JAVA_BINDIR}/tigervnc.png
111 COMMAND ${CMAKE_COMMAND} -E copy_if_different
112 ${JAVA_SRCDIR}/tigervnc.png ${JAVA_BINDIR}/tigervnc.png
113 DEPENDS ${JAVA_SRCDIR}/tigervnc.png)
114
115add_custom_command(OUTPUT ${JAVA_BINDIR}/tigervnc.ico
116 COMMAND ${CMAKE_COMMAND} -E copy_if_different
117 ${JAVA_SRCDIR}/tigervnc.ico ${JAVA_BINDIR}/tigervnc.ico
118 DEPENDS ${JAVA_SRCDIR}/tigervnc.ico)
119
DRCd0002522011-10-05 09:18:55 +0000120string(REGEX REPLACE "jar" "" Java_PATH ${Java_JAR_EXECUTABLE})
DRCf50ec7c2011-10-05 09:29:21 +0000121string(REGEX REPLACE ".exe" "" Java_PATH ${Java_PATH})
DRCd0002522011-10-05 09:18:55 +0000122
DRC7636ad02011-10-04 04:03:34 +0000123add_custom_command(OUTPUT VncViewer.jar
124 DEPENDS ${JAVA_CLASSES_FULL}
125 ${JAVA_SRCDIR}/MANIFEST.MF
126 ${JAVA_BINDIR}/timestamp
127 ${JAVA_BINDIR}/tigervnc.png
128 ${JAVA_BINDIR}/tigervnc.ico
129 COMMAND ${JAVA_ARCHIVE}
130 ARGS cfm VncViewer.jar
131 ${JAVA_SRCDIR}/MANIFEST.MF
132 com/tigervnc/vncviewer/timestamp
133 com/tigervnc/vncviewer/*.class
134 com/tigervnc/rfb/*.class
135 com/tigervnc/rdr/*.class
Brian Hinz0eaec7d2012-02-03 05:38:23 +0000136 com/tigervnc/network/*.class
DRC7636ad02011-10-04 04:03:34 +0000137 com/jcraft/jzlib/*.class
Brian Hinzcf0e3122012-04-05 03:37:50 +0000138 com/jcraft/jsch/jcraft/*.class
139 com/jcraft/jsch/jce/*.class
140 com/jcraft/jsch/*.class
DRC7636ad02011-10-04 04:03:34 +0000141 com/tigervnc/vncviewer/tigervnc.png
142 com/tigervnc/vncviewer/tigervnc.ico
DRCd0002522011-10-05 09:18:55 +0000143 COMMAND ${CMAKE_COMMAND}
144 ARGS -DJava_PATH=${Java_PATH}
145 -DJAR_FILE=${CMAKE_CURRENT_BINARY_DIR}/VncViewer.jar
DRCccc09692011-11-08 06:57:58 +0000146 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/SignJar.cmake)
DRC7636ad02011-10-04 04:03:34 +0000147
148add_custom_target(java ALL DEPENDS VncViewer.jar)
149
DRCf50ec7c2011-10-05 09:29:21 +0000150if(NOT WIN32)
151 install(FILES
152 ${CMAKE_CURRENT_BINARY_DIR}/VncViewer.jar
153 ${JAVA_SRCDIR}/README
154 ${JAVA_SRCDIR}/index.vnc
Brian Hinz308b7ed2011-10-14 21:35:40 +0000155 ${JAVA_SRCDIR}/favicon.ico
Pierre Ossman95e28f72012-03-27 10:24:53 +0000156 DESTINATION ${DATA_DIR}/vnc/classes)
DRCf50ec7c2011-10-05 09:29:21 +0000157endif()