64 lines
2.7 KiB
CMake
64 lines
2.7 KiB
CMake
#-------------------------------------------------------------------------------
|
|
# Copyright (c) 2018-2019, Arm Limited. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#FindPlantuml
|
|
#-----------
|
|
#PlantUML is a diagram generation tool. It can generate various UML and non-UML
|
|
#diagrams. See: http://plantuml.com/
|
|
#
|
|
#This module checks PlantUML availability and checks if the Java runtime is
|
|
#available.
|
|
#For Windows PlantUML is distributed as a jar archive and thus there is no
|
|
#standard install location where it could be searched for.
|
|
#Most Linux distributions come with a proper PlantUML package which installs
|
|
#a shell script to easy starting PlantUML, but the location of the .jar file
|
|
#is hidden.
|
|
#Thus there is no standard location to search for the .jar file and this module
|
|
#depends on user input.
|
|
#
|
|
#This module has the following parameters:
|
|
# PLANTUML_JAR_PATH = variable specifying where the PlantUML java archive
|
|
# (plantuml.jar) can be found. If it is not defined,
|
|
# the environment variable with the same name is used.
|
|
# If both is missing, that is an error.
|
|
#
|
|
#This module defines the following variables:
|
|
# PLANTUML_VERSION = The version reported by "plantuml.jar -version"
|
|
# PLANTUML_FOUND = Was the .jar file found and sucesfuly executed.
|
|
#
|
|
|
|
include(Common/Utils)
|
|
|
|
find_package(Java 1.8 COMPONENTS Runtime)
|
|
if(Java_Runtime_FOUND)
|
|
#Check if the jar file is at the user defined location.
|
|
#Prefer the cmake variable to the environment setting.
|
|
if (NOT DEFINED PLANTUML_JAR_PATH)
|
|
if (DEFINED ENV{PLANTUML_JAR_PATH})
|
|
set(PLANTUML_JAR_PATH "$ENV{PLANTUML_JAR_PATH}" CACHE STRING "PLANTUML location." )
|
|
endif()
|
|
endif()
|
|
|
|
if (NOT DEFINED PLANTUML_JAR_PATH)
|
|
message(STATUS "PLANTUML_JAR_PATH variable is missing, PlantUML jar location is unknown.")
|
|
else()
|
|
win_fix_dir_sep(PATH PLANTUML_JAR_PATH)
|
|
#Get plantuml version
|
|
execute_process(COMMAND "${Java_JAVA_EXECUTABLE}" "-jar" "${PLANTUML_JAR_PATH}" "-version" OUTPUT_VARIABLE _PLANTUML_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
|
#Parse plantuml output
|
|
if(_PLANTUML_VERSION)
|
|
if(_PLANTUML_VERSION MATCHES ".*PlantUML version ([0-9.]+).*")
|
|
string(REGEX REPLACE ".*PlantUML version ([0-9.]+).*" "\\1" PLANTUML_VERSION "${_PLANTUML_VERSION}")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
#Set "standard" find module return values
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Plantuml REQUIRED_VARS PLANTUML_JAR_PATH PLANTUML_VERSION VERSION_VAR PLANTUML_VERSION)
|