summaryrefslogtreecommitdiffstats
path: root/cmake/Modules
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2012-07-18 19:04:12 -0500
committerEndi Sukma Dewata <edewata@redhat.com>2012-07-19 22:41:18 -0500
commitaf66df4e028cac52d75dd5a585a16426083bd5af (patch)
tree4b870f190b8284db48851400a3d64bcf9e859d4e /cmake/Modules
parent4f7af51285d9b8991929d7e01b3ae6a980e53eb5 (diff)
downloadpki-af66df4e028cac52d75dd5a585a16426083bd5af.tar.gz
pki-af66df4e028cac52d75dd5a585a16426083bd5af.tar.xz
pki-af66df4e028cac52d75dd5a585a16426083bd5af.zip
Added Javadoc CMake function.
A new javadoc function has been added into Java CMake script. The function supports generating Javadoc for Java packages including all subpackages in it. It also support package exclusion. This way it's no longer necessary to specify the entire list of packages or source codes. Ticket #62
Diffstat (limited to 'cmake/Modules')
-rw-r--r--cmake/Modules/Java.cmake140
1 files changed, 121 insertions, 19 deletions
diff --git a/cmake/Modules/Java.cmake b/cmake/Modules/Java.cmake
index 62f26f9fc..bd2855baf 100644
--- a/cmake/Modules/Java.cmake
+++ b/cmake/Modules/Java.cmake
@@ -27,27 +27,27 @@ function(javac target)
if (arg MATCHES "(SOURCE_DIR|SOURCES|EXCLUDE|CLASSPATH|OUTPUT_DIR|DEPENDS)")
set(param ${arg})
- else (arg MATCHES "(SOURCE_DIR|SOURCES|EXCLUDE|CLASSPATH|OUTPUT_DIR|DEPENDS)")
+ else ()
- if (param MATCHES "SOURCE_DIR")
+ if (param STREQUAL "SOURCE_DIR")
set(source_dir ${arg})
- elseif (param MATCHES "SOURCES")
+ elseif (param STREQUAL "SOURCES")
list(APPEND sources ${arg})
- elseif (param MATCHES "EXCLUDE")
+ elseif (param STREQUAL "EXCLUDE")
list(APPEND exclude ${arg})
- elseif (param MATCHES "CLASSPATH")
+ elseif (param STREQUAL "CLASSPATH")
list(APPEND classpath ${arg})
- elseif (param MATCHES "OUTPUT_DIR")
+ elseif (param STREQUAL "OUTPUT_DIR")
set(output_dir ${arg})
- elseif (param MATCHES "DEPENDS")
+ elseif (param STREQUAL "DEPENDS")
list(APPEND depends ${arg})
- endif(param MATCHES "SOURCE_DIR")
+ endif(param STREQUAL "SOURCE_DIR")
endif(arg MATCHES "(SOURCE_DIR|SOURCES|EXCLUDE|CLASSPATH|OUTPUT_DIR|DEPENDS)")
@@ -92,11 +92,11 @@ function(jar target)
foreach (arg ${ARGN})
- if (arg MATCHES "CREATE")
+ if (arg STREQUAL "CREATE")
set(param ${arg})
set(operation "c")
- elseif (arg MATCHES "UPDATE")
+ elseif (arg STREQUAL "UPDATE")
set(param ${arg})
set(operation "u")
@@ -108,21 +108,21 @@ function(jar target)
if (param MATCHES "(CREATE|UPDATE)")
set(output ${arg})
- elseif (param MATCHES "INPUT_DIR")
+ elseif (param STREQUAL "INPUT_DIR")
set(input_dir ${arg})
- elseif (param MATCHES "FILES")
+ elseif (param STREQUAL "FILES")
list(APPEND files ${arg})
- elseif (param MATCHES "EXCLUDE")
+ elseif (param STREQUAL "EXCLUDE")
list(APPEND exclude ${arg})
- elseif (param MATCHES "DEPENDS")
+ elseif (param STREQUAL "DEPENDS")
list(APPEND depends ${arg})
endif(param MATCHES "(CREATE|UPDATE)")
- endif(arg MATCHES "CREATE")
+ endif(arg STREQUAL "CREATE")
endforeach(arg)
@@ -146,6 +146,108 @@ function(jar target)
endfunction(jar)
+function(javadoc target)
+
+ set(sourcepath ${CMAKE_CURRENT_SOURCE_DIR})
+ set(dest ${CMAKE_CURRENT_BINARY_DIR}/javadoc)
+
+ foreach (arg ${ARGN})
+
+ if (arg MATCHES "(SOURCEPATH|CLASSPATH|FILES|PACKAGES|SUBPACKAGES|EXCLUDE|OPTIONS|DEST|DEPENDS)")
+ set(param ${arg})
+
+ else ()
+
+ if (param STREQUAL "SOURCEPATH")
+ list(APPEND sourcepath ${arg})
+
+ elseif (param STREQUAL "CLASSPATH")
+ list(APPEND classpath ${arg})
+
+ elseif (param STREQUAL "FILES")
+ list(APPEND files ${arg})
+
+ elseif (param STREQUAL "PACKAGES")
+ list(APPEND packages ${arg})
+
+ elseif (param STREQUAL "SUBPACKAGES")
+ list(APPEND subpackages ${arg})
+
+ elseif (param STREQUAL "EXCLUDE")
+ list(APPEND exclude ${arg})
+
+ elseif (param STREQUAL "OPTIONS")
+ list(APPEND options ${arg})
+
+ elseif (param STREQUAL "DEST")
+ set(dest ${arg})
+
+ elseif (param STREQUAL "DEPENDS")
+ list(APPEND depends ${arg})
+
+ endif(param STREQUAL "SOURCEPATH")
+
+ endif(arg MATCHES "(SOURCEPATH|CLASSPATH|FILES|PACKAGES|SUBPACKAGES|EXCLUDE|DEST|DEPENDS)")
+
+ endforeach(arg)
+
+ if (UNIX)
+ set(separator ":")
+ else (UNIX)
+ set(separator ";")
+ endif(UNIX)
+
+ set(command ${JAVA_DOC} -d ${dest})
+
+ if (options)
+ foreach (option ${options})
+ set(command ${command} ${option})
+ endforeach(option ${options})
+ endif(sourcepath)
+
+ if (sourcepath)
+ set(tmp)
+ foreach (path ${sourcepath})
+ set(tmp "${tmp}${separator}${path}")
+ endforeach(path)
+ set(command ${command} -sourcepath ${tmp})
+ endif(sourcepath)
+
+ if (classpath)
+ set(tmp)
+ foreach (path ${classpath})
+ set(tmp "${tmp}${separator}${path}")
+ endforeach(path)
+ set(command ${command} -classpath ${tmp})
+ endif(classpath)
+
+ if (subpackages)
+ set(tmp)
+ foreach (package ${subpackages})
+ set(tmp "${tmp}:${package}")
+ endforeach(path)
+ set(command ${command} -subpackages ${tmp})
+ endif(subpackages)
+
+ if (exclude)
+ set(tmp)
+ foreach (package ${exclude})
+ set(tmp "${tmp}:${package}")
+ endforeach(path)
+ set(command ${command} -exclude ${tmp})
+ endif(exclude)
+
+ set(command ${command} ${files} ${packages})
+
+ add_custom_target(${target} ALL DEPENDS ${depends})
+
+ add_custom_command(
+ TARGET ${target}
+ COMMAND ${command}
+ )
+
+endfunction(javadoc)
+
function(link target)
foreach (arg ${ARGN})
@@ -155,16 +257,16 @@ function(link target)
else ()
- if (param MATCHES "SOURCE")
+ if (param STREQUAL "SOURCE")
set(source ${arg})
- elseif (param MATCHES "DEST")
+ elseif (param STREQUAL "DEST")
set(dest ${arg})
- elseif (param MATCHES "DEPENDS")
+ elseif (param STREQUAL "DEPENDS")
list(APPEND depends ${arg})
- endif(param MATCHES "SOURCE")
+ endif(param STREQUAL "SOURCE")
endif(arg MATCHES "(SOURCE|DEST|DEPENDS)")