Ответ 1
CMake имеет некоторую ограниченную поддержку для компиляции Java-кода и выполнения файлов классов Java.
Стандартный модуль FindJava можно использовать для поиска JDK, установленного на локальном компьютере. Стандартный модуль UseJava предоставляет несколько функций для Java. Среди них - функция add_jar
для компиляции исходных файлов Java в файл jar.
Вот небольшой пример, демонстрирующий, как использовать add_jar
. Учитывая исходный файл примера Java HelloWorld.java
:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Следующий файл списка CMake будет компилировать HelloWorld.java
в файл jar HelloWorld.jar
, а также добавить тест CMake, который запускает банку с JVM:
cmake_minimum_required (VERSION 2.8)
find_package(Java REQUIRED)
include(UseJava)
enable_testing()
project (HelloWorld)
set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.6" "-target" "1.6")
add_jar(HelloWorld HelloWorld.java)
get_target_property(_jarFile HelloWorld JAR_FILE)
get_target_property(_classDir HelloWorld CLASSDIR)
message(STATUS "Jar file ${_jarFile}")
message(STATUS "Class compiled to ${_classDir}")
add_test(NAME TestHelloWorld COMMAND ${Java_JAVA_EXECUTABLE} -cp ${_jarFile} HelloWorld)
Переменная CMake CMAKE_JAVA_COMPILE_FLAGS
может использоваться для указания флагов компиляции. В качестве побочного эффекта команда add_jar
установит целевые свойства JAR_FILE
и CLASSDIR
, которые могут быть использованы для получения пути к сгенерированному файлу jar и файлу файлов скомпилированных классов соответственно.