bond/cmake/Java.cmake

33 строки
1.0 KiB
CMake

cmake_minimum_required (VERSION 2.8.12)
include (CMakeParseArguments)
include (Folders)
find_package (JavaBuildTools)
# This function intentionally doesn't accept or configure SOURCES. cmake should
# call gradle unconditionally, and gradle will take care of up-to-dateness.
function (add_gradle_build target)
set (oneValueArgs GRADLE_TARGET)
set (multiValueArgs DEPENDS)
cmake_parse_arguments (arg "${flagArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if (NOT arg_GRADLE_TARGET)
set (arg_GRADLE_TARGET build)
endif()
add_custom_command (
DEPENDS gbc
COMMAND
${GRADLE_EXECUTABLE} --console plain ${arg_GRADLE_TARGET}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build/java/${target})
add_custom_target ("${target}"
DEPENDS gbc ${arg_DEPENDS}
${CMAKE_CURRENT_BINARY_DIR}/build/java/${target})
add_target_to_folder("${target}")
add_dependencies(java "${target}")
endfunction()