33 строки
1.0 KiB
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()
|