find_package(Java REQUIRED) # Allow the Java compiler flags to be set using an environment variable if(NOT DEFINED CMAKE_JAVA_COMPILE_FLAGS AND DEFINED ENV{JAVAFLAGS}) set(CMAKE_JAVA_COMPILE_FLAGS $ENV{JAVAFLAGS}) endif() include(UseJava) set(CMAKE_JAVA_COMPILE_FLAGS "${CMAKE_JAVA_COMPILE_FLAGS} -J-Dfile.encoding=UTF8") message(STATUS "CMAKE_JAVA_COMPILE_FLAGS = ${CMAKE_JAVA_COMPILE_FLAGS}") string(REGEX REPLACE " " ";" CMAKE_JAVA_COMPILE_FLAGS "${CMAKE_JAVA_COMPILE_FLAGS}") set(JAVAARGS "" CACHE STRING "Additional arguments to pass to java when running unit tests (example: -d32)") message(STATUS "JAVAARGS = ${JAVAARGS}") set(JAVA_SOURCES TJ.java TJUnitTest.java TJComp.java TJDecomp.java TJTran.java TJBench.java) if(MSYS) # UGLY HACK ALERT: If we don't do this, then UseJava.cmake will separate # class path members with a semicolon, which is interpreted as a command # separator by the MSYS shell. set(CMAKE_HOST_SYSTEM_NAME_BAK ${CMAKE_HOST_SYSTEM_NAME}) set(CMAKE_HOST_SYSTEM_NAME "MSYS") endif() add_jar(turbojpeg-jna ${JAVA_SOURCES} OUTPUT_NAME turbojpeg-jna INCLUDE_JARS "${WITH_JNA}" ENTRY_POINT TJBench) if(MSYS) set(CMAKE_HOST_SYSTEM_NAME ${CMAKE_HOST_SYSTEM_NAME_BAK}) endif() if(NOT DEFINED CMAKE_INSTALL_DEFAULT_JAVADIR) set(CMAKE_INSTALL_DEFAULT_JAVADIR "/java") endif() GNUInstallDirs_set_install_dir(JAVADIR "The directory into which Java classes should be installed") GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_JAVADIR CMAKE_INSTALL_JAVADIR) set(CMAKE_INSTALL_JAVADIR ${CMAKE_INSTALL_JAVADIR} PARENT_SCOPE) set(CMAKE_INSTALL_FULL_JAVADIR ${CMAKE_INSTALL_FULL_JAVADIR} PARENT_SCOPE) if(NOT CMAKE_INSTALL_JAVADIR) message(FATAL_ERROR "CMAKE_INSTALL_JAVADIR cannot be blank") endif() report_directory(JAVADIR) install_jar(turbojpeg-jna DESTINATION ${CMAKE_INSTALL_JAVADIR} COMPONENT java) mark_as_advanced(CLEAR CMAKE_INSTALL_JAVADIR)