Skip to content

Commit 389dc68

Browse files
committed
cmake: ENABLE_JAVA_MODULES is a module switch not a simple option
- ENABLE_JAVA_MODULES depends on ENABLE_JAVA and presence of gradle Signed-off-by: Hofi <[email protected]>
1 parent 5fc0ca4 commit 389dc68

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

modules/java-modules/CMakeLists.txt

+36-30
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
1-
if(ENABLE_JAVA)
2-
find_package(Gradle 3.4)
3-
4-
set(GRADLE_WORKDIR ${CMAKE_CURRENT_BINARY_DIR}/.gradle)
5-
set(SYSLOG_DEPS_DIR ${PROJECT_BINARY_DIR}/modules/java)
6-
7-
if(GRADLE_FOUND)
8-
OPTION(ENABLE_JAVA_MODULES "Enable Java modules" ON)
9-
else()
10-
OPTION(ENABLE_JAVA_MODULES "Enable Java modules" OFF)
11-
endif()
12-
13-
set(JAVA_MOD_DST_DIR "${CMAKE_INSTALL_PREFIX}/lib/syslog-ng/java-modules")
14-
15-
if(ENABLE_JAVA_MODULES)
16-
add_custom_target(BuildJavaModules ALL
17-
COMMAND ${GRADLE_EXECUTABLE} --project-cache-dir ${GRADLE_WORKDIR} -g ${GRADLE_WORKDIR} -p ${CMAKE_CURRENT_SOURCE_DIR} -PsyslogBuildDir=${CMAKE_CURRENT_BINARY_DIR} -PsyslogDepsDir=${SYSLOG_DEPS_DIR} build copyJars
18-
)
19-
add_dependencies(BuildJavaModules mod-java)
20-
21-
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/built-jars/ DESTINATION lib/syslog-ng/java-modules)
22-
install(CODE "execute_process(COMMAND ${GRADLE_EXECUTABLE} --project-cache-dir ${GRADLE_WORKDIR} -g ${GRADLE_WORKDIR} -p ${CMAKE_CURRENT_SOURCE_DIR} -PsyslogBuildDir=${CMAKE_CURRENT_BINARY_DIR} -PsyslogDepsDir=${SYSLOG_DEPS_DIR} -PjarDestDir=${JAVA_MOD_DST_DIR} copyLog4j)")
23-
install(CODE "execute_process(COMMAND ${GRADLE_EXECUTABLE} --project-cache-dir ${GRADLE_WORKDIR} -g ${GRADLE_WORKDIR} -p ${CMAKE_CURRENT_SOURCE_DIR} -PsyslogBuildDir=${CMAKE_CURRENT_BINARY_DIR} -PsyslogDepsDir=${SYSLOG_DEPS_DIR} -PjarDestDir=${JAVA_MOD_DST_DIR} copyJestRuntimeDeps)")
24-
25-
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ".gradle")
26-
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "built-jars")
27-
endif()
28-
else()
29-
OPTION(ENABLE_JAVA_MODULES "Enable Java modules" OFF)
30-
endif()
1+
if (ENABLE_JAVA_MODULES AND NOT ENABLE_JAVA)
2+
message(FATAL_ERROR "Java based modules enabled, but the required syslog-ng Java plugin is disabled.")
3+
endif ()
4+
5+
find_package (Gradle 3.4)
6+
7+
if (ENABLE_JAVA_MODULES AND NOT GRADLE_FOUND)
8+
message(FATAL_ERROR "Java based modules enabled, but the required gardle dependency is not found.")
9+
endif ()
10+
11+
set (CAN_ENABLE_JAVA_MODULES OFF)
12+
if ((GRADLE_FOUND AND ENABLE_JAVA))
13+
set (CAN_ENABLE_JAVA_MODULES ON)
14+
endif ()
15+
16+
module_switch (ENABLE_JAVA_MODULES "Enable Java modules" CAN_ENABLE_JAVA_MODULES)
17+
18+
if (NOT ENABLE_JAVA_MODULES)
19+
return ()
20+
endif ()
21+
22+
set(GRADLE_WORKDIR ${CMAKE_CURRENT_BINARY_DIR}/.gradle)
23+
set(SYSLOG_DEPS_DIR ${PROJECT_BINARY_DIR}/modules/java)
24+
set(JAVA_MOD_DST_DIR "${CMAKE_INSTALL_PREFIX}/lib/syslog-ng/java-modules")
25+
26+
add_custom_target(BuildJavaModules ALL
27+
COMMAND ${GRADLE_EXECUTABLE} --project-cache-dir ${GRADLE_WORKDIR} -g ${GRADLE_WORKDIR} -p ${CMAKE_CURRENT_SOURCE_DIR} -PsyslogBuildDir=${CMAKE_CURRENT_BINARY_DIR} -PsyslogDepsDir=${SYSLOG_DEPS_DIR} build copyJars
28+
)
29+
add_dependencies(BuildJavaModules mod-java)
30+
31+
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/built-jars/ DESTINATION lib/syslog-ng/java-modules)
32+
install(CODE "execute_process(COMMAND ${GRADLE_EXECUTABLE} --project-cache-dir ${GRADLE_WORKDIR} -g ${GRADLE_WORKDIR} -p ${CMAKE_CURRENT_SOURCE_DIR} -PsyslogBuildDir=${CMAKE_CURRENT_BINARY_DIR} -PsyslogDepsDir=${SYSLOG_DEPS_DIR} -PjarDestDir=${JAVA_MOD_DST_DIR} copyLog4j)")
33+
install(CODE "execute_process(COMMAND ${GRADLE_EXECUTABLE} --project-cache-dir ${GRADLE_WORKDIR} -g ${GRADLE_WORKDIR} -p ${CMAKE_CURRENT_SOURCE_DIR} -PsyslogBuildDir=${CMAKE_CURRENT_BINARY_DIR} -PsyslogDepsDir=${SYSLOG_DEPS_DIR} -PjarDestDir=${JAVA_MOD_DST_DIR} copyJestRuntimeDeps)")
34+
35+
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ".gradle")
36+
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "built-jars")

0 commit comments

Comments
 (0)