cmake: Add Java documentation

This commit is contained in:
Mizux Seiha
2023-02-02 11:39:26 +01:00
parent bc37fcafa4
commit 1a269db56d
6 changed files with 2809 additions and 0 deletions

View File

@@ -314,6 +314,9 @@ if(BUILD_JAVA)
option(UNIVERSAL_JAVA_PACKAGE "Build a Java multi OS Package" OFF)
message(STATUS "Java: Create multiple OS package: ${UNIVERSAL_JAVA_PACKAGE}")
CMAKE_DEPENDENT_OPTION(BUILD_JAVA_DOC "Build the Java doc" OFF "NOT BUILD_DOC" ON)
message(STATUS "Java: Build doc: ${BUILD_JAVA_DOC}")
# On Centos-7 this option (needed otherwise) is unrecognized and should be
# replaced by an empty string.
set(GPG_ARGS "<arg>--pinentry-mode</arg><arg>loopback</arg>" CACHE STRING "Extra options for GPG")

View File

@@ -224,6 +224,7 @@ cmake -S. -Bbuild -LH
| `BUILD_DOC` | OFF\* | Build all documentations |
| `BUILD_CXX_DOC` | OFF\* | Build C++ documentation<br>**Forced** to ON if `BUILD_DOC=ON` |
| `BUILD_DOTNET_DOC` | OFF\* | Build .Net documentation<br>**Forced** to ON if `BUILD_DOC=ON` |
| `BUILD_JAVA_DOC` | OFF\* | Build Java documentation<br>**Forced** to ON if `BUILD_DOC=ON` |
| `INSTALL_DOC` | OFF\* | Install all documentations<br>**Forced** to OFF if `BUILD_CXX=OFF` or `BUILD_DOC=OFF` |
| | | |
| `BUILD_SAMPLES` | ON\* | Build all samples<br>Default to ON if `BUILD_DEPS=ON` |

View File

@@ -331,6 +331,55 @@ add_custom_target(java_deploy
WORKING_DIRECTORY ${JAVA_PROJECT_DIR})
add_dependencies(java_deploy java_package)
###############
## Doc rules ##
###############
if(BUILD_JAVA_DOC)
# add a target to generate API documentation with Doxygen
find_package(Doxygen)
if(DOXYGEN_FOUND)
configure_file(${PROJECT_SOURCE_DIR}/ortools/java/Doxyfile.in ${PROJECT_BINARY_DIR}/java/Doxyfile @ONLY)
file(DOWNLOAD
https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.1.0/doxygen-awesome.css
${PROJECT_BINARY_DIR}/java/doxygen-awesome.css
SHOW_PROGRESS
)
add_custom_target(${PROJECT_NAME}_java_doc ALL
#COMMAND ${CMAKE_COMMAND} -E rm -rf ${PROJECT_BINARY_DIR}/docs/java
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/docs/java
COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/java/Doxyfile
DEPENDS
java_package
${PROJECT_BINARY_DIR}/java/Doxyfile
${PROJECT_BINARY_DIR}/java/doxygen-awesome.css
${PROJECT_SOURCE_DIR}/ortools/java/stylesheet.css
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMENT "Generating Java API documentation with Doxygen"
VERBATIM)
else()
message(WARNING "cmd `doxygen` not found, Java doc generation is disable!")
endif()
# Java doc
find_program(JAR_PRG NAMES jar)
if (JAR_PRG)
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/docs/javadoc)
add_custom_target(${PROJECT_NAME}_javadoc_doc ALL
#COMMAND ${CMAKE_COMMAND} -E rm -rf ${PROJECT_BINARY_DIR}/docs/javadoc
#COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/docs/javadoc
COMMAND jar xvf
"${PROJECT_BINARY_DIR}/java/ortools-java/target/ortools-java-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-javadoc.jar"
DEPENDS
java_package
${PROJECT_BINARY_DIR}/docs/javadoc
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/docs/javadoc
COMMENT "Generating Java API documentation with Doxygen"
VERBATIM)
else()
message(WARNING "cmd `jar` not found, Javadoc doc generation is disable!")
endif()
endif()
###################
## Java Sample ##
###################

2717
ortools/java/Doxyfile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
/*! @file
* @author Laurent Perron <lperron@google.com>
* @author Corentin "Mizux" Le Molgat <corentinl@google.com>
*/
/*! @mainpage OR-Tools
This is the reference documentation for Google OR-Tools.
This repository contains several component:
@li @ref com.google.ortools.Loader "com.google.ortools.Loader"
@li @ref com.google.ortools.init "com.google.ortools.init"
@li @ref com.google.ortools.algorithms "com.google.ortools.algorithms"
@li @ref com.google.ortools.graph "com.google.ortools.graph"
@li @ref com.google.ortools.linearsolver "com.google.ortools.linearsolver"
@li @ref com.google.ortools.bop "com.google.ortools.bop"
@li @ref com.google.ortools.glop "com.google.ortools.glop"
@li @ref com.google.ortools.sat "com.google.ortools.sat"
@li @ref com.google.ortools.constraintsolver "com.google.ortools.constraintsolver"
*/

View File

@@ -0,0 +1,16 @@
/* The standard CSS for doxygen 1.9.6*/
html {
/* page base colors */
/*--page-background-color: white;*/
/*--page-foreground-color: black;*/
/* header */
--header-background: #ed1d25;
--header-foreground: white;
/* footer */
--footer-background: #ed1d25;
--footer-foreground: white;
}