123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- cmake_minimum_required(VERSION 2.8)
-
- project(tigervnc-java Java)
- if(NOT VERSION)
- set(VERSION 1.9.80)
- endif()
-
- find_package(Java)
-
- set(DATA_DIR "${CMAKE_INSTALL_PREFIX}/share")
-
- set(DEFAULT_JAVACFLAGS "-source 7 -target 7 -encoding UTF-8 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann,-deprecation,-rawtypes")
- set(JAVACFLAGS ${DEFAULT_JAVACFLAGS} CACHE STRING
- "Java compiler flags (Default: ${DEFAULT_JAVACFLAGS})")
- message(STATUS "Java compiler flags = ${JAVACFLAGS}")
-
- set(CLASSPATH com/tigervnc/vncviewer)
- set(SRCDIR ${CMAKE_CURRENT_SOURCE_DIR})
- set(BINDIR ${CMAKE_CURRENT_BINARY_DIR})
- set(JAVA_KEYSTORE NOTFOUND CACHE STRING "URL of keystore location")
- set(JAVA_KEYSTORE_TYPE "jks" CACHE STRING "Type of keystore (Default: \"jks\")")
- set(JAVA_KEY_ALIAS NOTFOUND CACHE STRING "Alias for the keystore entry used to generate the signature")
- set(JAVA_STOREPASS NOTFOUND CACHE STRING "Password required to access the keystore")
- set(JAVA_KEYPASS NOTFOUND CACHE STRING "Password used to protect the private key of the specified keystore entry")
- set(JAVA_TSA_URL NOTFOUND CACHE STRING "URL of Time Stamping Authority (TSA)")
-
- if(NOT BUILD)
- execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILD)
- endif()
- execute_process(COMMAND "date" "+%b %d %Y" OUTPUT_VARIABLE JAVA_DATE)
- execute_process(COMMAND "date" "+%H:%M:%S" OUTPUT_VARIABLE JAVA_TIME)
- string(REGEX REPLACE "\n" "" JAVA_DATE ${JAVA_DATE})
- string(REGEX REPLACE "\n" "" JAVA_TIME ${JAVA_TIME})
- string(REGEX REPLACE "\n" "" BUILD ${BUILD})
-
- set(JAVA_SOURCES "")
- set(JAVA_CLASSES "")
-
- set(JSCH_CLASSNAMES
- DH
- DHEC256
- DHEC384
- DHEC521
- DHECN
- DHGEX256
- DHG1
- DHG14
- DHGEX
- ECDH
- JSch
- Session
- UserAuth
- UserAuthKeyboardInteractive
- UserAuthPassword
- UserAuthPublicKey
- UserAuthNone
- jce/AES128CBC
- jce/AES128CTR
- jce/AES192CBC
- jce/AES192CTR
- jce/AES256CBC
- jce/AES256CTR
- jce/ARCFOUR
- jce/ARCFOUR128
- jce/ARCFOUR256
- jce/BlowfishCBC
- jce/DH
- jce/ECDH256
- jce/ECDH384
- jce/ECDH521
- jce/ECDHN
- jce/HMAC
- jce/HMACMD5
- jce/HMACMD596
- jce/HMACSHA1
- jce/HMACSHA196
- jce/HMACSHA256
- jce/HMACSHA512
- jce/KeyPairGenDSA
- jce/KeyPairGenECDSA
- jce/KeyPairGenRSA
- jce/MD5
- jce/PBKDF
- jce/Random
- jce/SHA1
- jce/SHA256
- jce/SHA384
- jce/SHA512
- jce/SignatureDSA
- jce/SignatureECDSA
- jce/SignatureRSA
- jce/TripleDESCBC
- jce/TripleDESCTR
- jcraft/Compression
- jcraft/HMAC
- jcraft/HMACMD596
- jcraft/HMACMD5
- jcraft/HMACSHA196
- jcraft/HMACSHA1)
-
- foreach(class ${JSCH_CLASSNAMES})
- set(JAVA_SOURCES ${JAVA_SOURCES} com/jcraft/jsch/${class}.java)
- set(JAVA_CLASSES ${JAVA_CLASSES}
- ${BINDIR}/com/jcraft/jsch/${class}.class)
- endforeach()
-
- file(GLOB DEPEND_SOURCES
- ${SRCDIR}/${CLASSPATH}/*.java
- ${SRCDIR}/com/tigervnc/rfb/*.java
- ${SRCDIR}/com/tigervnc/rdr/*.java
- ${SRCDIR}/com/tigervnc/network/*.java
- ${SRCDIR}/com/jcraft/jsch/*.java
- ${SRCDIR}/com/jcraft/jsch/jcraft/*.java
- ${SRCDIR}/com/jcraft/jsch/jgss/*.java
- ${SRCDIR}/com/jcraft/jzlib/*.java)
-
- string(REGEX REPLACE " " ";" JAVACFLAGS "${JAVACFLAGS}")
- add_custom_command(OUTPUT ${JAVA_CLASSES}
- DEPENDS ${JAVA_SOURCES} ${DEPEND_SOURCES}
- COMMAND ${JAVA_COMPILE}
- ARGS ${JAVACFLAGS} -sourcepath ${SRCDIR} -d ${BINDIR}
- ${CLASSPATH}/VncViewer.java ${JAVA_SOURCES}
- WORKING_DIRECTORY ${SRCDIR})
-
- configure_file(${CLASSPATH}/timestamp.in ${CLASSPATH}/timestamp)
-
- if(NOT "${SRCDIR}" STREQUAL "${BINDIR}")
-
- set(ICONS
- tigervnc.ico
- tigervnc.png
- insecure.png
- secure.png)
-
- foreach(icon ${ICONS})
- add_custom_command(OUTPUT ${BINDIR}/${CLASSPATH}/${icon}
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- ${SRCDIR}/${CLASSPATH}/${icon} ${BINDIR}/${CLASSPATH}/${icon}
- DEPENDS ${SRCDIR}/${CLASSPATH}/${icon})
- endforeach()
-
- endif()
-
- string(REGEX REPLACE "jar" "" Java_PATH ${Java_JAR_EXECUTABLE})
- string(REGEX REPLACE ".exe" "" Java_PATH ${Java_PATH})
-
- add_custom_command(OUTPUT VncViewer.jar
- DEPENDS ${JAVA_CLASSES}
- ${SRCDIR}/${CLASSPATH}/MANIFEST.MF
- ${BINDIR}/${CLASSPATH}/timestamp
- ${BINDIR}/${CLASSPATH}/tigervnc.ico
- ${BINDIR}/${CLASSPATH}/tigervnc.png
- ${BINDIR}/${CLASSPATH}/insecure.png
- ${BINDIR}/${CLASSPATH}/secure.png
- COMMAND ${JAVA_ARCHIVE}
- ARGS cfm VncViewer.jar
- ${SRCDIR}/${CLASSPATH}/MANIFEST.MF
- ${CLASSPATH}/timestamp
- ${CLASSPATH}/*.class
- com/tigervnc/rfb/*.class
- com/tigervnc/rdr/*.class
- com/tigervnc/network/*.class
- com/jcraft/jzlib/*.class
- com/jcraft/jsch/jcraft/*.class
- com/jcraft/jsch/jce/*.class
- com/jcraft/jsch/*.class
- com/tigervnc/vncviewer/*.png
- com/tigervnc/vncviewer/tigervnc.ico
- COMMAND ${CMAKE_COMMAND}
- ARGS -DJava_PATH=${Java_PATH} -DJAR_FILE=${BINDIR}/VncViewer.jar
- -DJAVA_KEYSTORE=${JAVA_KEYSTORE}
- -DJAVA_KEYSTORE_TYPE=${JAVA_KEYSTORE_TYPE}
- -DJAVA_STOREPASS=${JAVA_STOREPASS}
- -DJAVA_KEYPASS=${JAVA_KEYPASS}
- -DJAVA_KEY_ALIAS=${JAVA_KEY_ALIAS}
- -DJAVA_TSA_URL=${JAVA_TSA_URL}
- -P ${SRCDIR}/cmake/SignJar.cmake)
-
- add_custom_target(java ALL DEPENDS VncViewer.jar)
|