JKQtPlotter/doc/CMakeLists.txt
2022-09-23 20:43:53 +02:00

287 lines
12 KiB
CMake

cmake_minimum_required(VERSION 3.16)
add_custom_target(JKQTMathText_GenerateDocImages
COMMENT "Building JKQTMathText Documentation Images ..."
)
add_custom_target(JKQTPlotter_GenerateDocScreenshots
COMMENT "Building JKQTPlotter Documentation Screenshots ..."
)
add_custom_target(JKQTPlotter_GenerateDocImages
COMMENT "Building JKQTPlotter Documentation Images ..."
)
add_custom_target(JKQTP_GenerateAllDocImages
DEPENDS JKQTPlotter_GenerateDocImages JKQTPlotter_GenerateDocScreenshots JKQTMathText_GenerateDocImages
)
if(JKQtPlotter_BUILD_TOOLS)
# custom target that generates the images for the JKQTMathText documentation
set(JKQTMathText_GenerateDocImages_DefaultOptions --resolution=96 --fontsize=15 --fontmathroman=XITS --background=white --sizeincrease=5)
set(JKQTMathText_GenerateDocImages_StdInputFiles
jkqtmathtext_docimages_accents.jkmt
jkqtmathtext_docimages_boxes.jkmt
jkqtmathtext_docimages_braces.jkmt
jkqtmathtext_docimages_formating.jkmt
jkqtmathtext_docimages_frac.jkmt
jkqtmathtext_docimages_math.jkmt
jkqtmathtext_docimages_matrix.jkmt
jkqtmathtext_docimages_misc.jkmt
jkqtmathtext_docimages_specialfonts.jkmt
jkqtmathtext_docimages_symbolsandencoding.jkmt
jkqtmathtext_docimages_spaces.jkmt
)
set(JKQTMathText_GenerateDocImages_COMMAND $<TARGET_FILE:jkqtmathtext_render> ${JKQTMathText_GenerateDocImages_DefaultOptions})
set(JKQTMathText_GenerateDocImages_OutputDir "${CMAKE_CURRENT_LIST_DIR}/images/jkqtmathtext/")
foreach(file ${JKQTMathText_GenerateDocImages_StdInputFiles})
string(REGEX MATCH ".*_([^_\.]+)\.[A-Za-z]+" dummy ${file})
set(loc_name ${CMAKE_MATCH_1})
string(TOUPPER ${loc_name} loc_name_upper ${file})
set(loc_target_name "JKQTMathText_GenerateDocImages_${loc_name}")
add_custom_target(${loc_target_name}
COMMENT "Building JKQTMathText Documentation Images: ${loc_name_upper}"
COMMAND ${JKQTMathText_GenerateDocImages_COMMAND} --inputfile="${CMAKE_CURRENT_LIST_DIR}/${file}" --outputdir="${JKQTMathText_GenerateDocImages_OutputDir}"
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS jkqtmathtext_render
)
add_dependencies(JKQTMathText_GenerateDocImages ${loc_target_name})
unset(loc_name)
unset(loc_target_name)
unset(loc_name_upper)
unset(dummy)
endforeach()
add_custom_target(JKQTMathText_GenerateDocImages_listsymbols
COMMENT "Building JKQTMathText Documentation Images: LISTSYMBOLS"
COMMAND ${JKQTMathText_GenerateDocImages_COMMAND} --listsymbolsfonts=XITS_MATHANDTEXT,FIRA_MATHANDTEXT --listsymbols="${CMAKE_CURRENT_LIST_DIR}/dox/jkqtmathtext_supportedlatexsymbols.dox" --outputdir="${JKQTMathText_GenerateDocImages_OutputDir}/symbols/"
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS jkqtmathtext_render
)
add_dependencies(JKQTMathText_GenerateDocImages JKQTMathText_GenerateDocImages_listsymbols)
endif()
if(JKQtPlotter_BUILD_TOOLS)
# custom target that generates the images for the JKQTPlotter documentation
set(JKQTPlotter_GenerateDocImages_DefaultOptions )
set(JKQTPlotter_GenerateDocImages_COMMAND $<TARGET_FILE:jkqtplotter_doc_imagegenerator> ${JKQTPlotter_GenerateDocImages_DefaultOptions})
set(JKQTPlotter_GenerateDocImages_OutputDir "${CMAKE_CURRENT_LIST_DIR}/images/")
add_custom_target(JKQTPlotter_GenerateDocImages_listplotsymbols
COMMENT "Building JKQTPlotter Documentation Images: LISTPLOTSYMBOLS"
COMMAND ${JKQTPlotter_GenerateDocImages_COMMAND} --listsymbols --iconsize=32 --outputdir="${JKQTPlotter_GenerateDocImages_OutputDir}/symbols/"
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS jkqtplotter_doc_imagegenerator
)
add_dependencies(JKQTPlotter_GenerateDocImages JKQTPlotter_GenerateDocImages_listplotsymbols)
add_custom_target(JKQTPlotter_GenerateDocImages_listlinedecorators
COMMENT "Building JKQTPlotter Documentation Images: LISTLINEDECORATORS"
COMMAND ${JKQTPlotter_GenerateDocImages_COMMAND} --listlinedecorators --iconsize=32 --outputdir="${JKQTPlotter_GenerateDocImages_OutputDir}/linedecorators/"
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS jkqtplotter_doc_imagegenerator
)
add_dependencies(JKQTPlotter_GenerateDocImages JKQTPlotter_GenerateDocImages_listlinedecorators)
add_custom_target(JKQTPlotter_GenerateDocImages_listerrorindicators
COMMENT "Building JKQTPlotter Documentation Images: listerrorindicators"
COMMAND ${JKQTPlotter_GenerateDocImages_COMMAND} --listerrorindicators --iconsize=32 --outputdir="${JKQTPlotter_GenerateDocImages_OutputDir}/errorindicators/"
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS jkqtplotter_doc_imagegenerator
)
add_dependencies(JKQTPlotter_GenerateDocImages JKQTPlotter_GenerateDocImages_listerrorindicators)
add_custom_target(JKQTPlotter_GenerateDocImages_listaxisstyleprops
COMMENT "Building JKQTPlotter Documentation Images: listaxisstyleprops"
COMMAND ${JKQTPlotter_GenerateDocImages_COMMAND} --listaxisstyleprops --background=lightgrey --iconsize=50 --outputdir="${JKQTPlotter_GenerateDocImages_OutputDir}/axisstyle/"
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS jkqtplotter_doc_imagegenerator
)
add_dependencies(JKQTPlotter_GenerateDocImages JKQTPlotter_GenerateDocImages_listaxisstyleprops)
endif(JKQtPlotter_BUILD_TOOLS)
if(JKQtPlotter_BUILD_EXAMPLES)
# custom target that generates the images for the JKQTMathText documentation
set(JKQTPlotter_GenerateDocScreenshots_DefaultOptions --screenshotdir="${CMAKE_CURRENT_LIST_DIR}/../screenshots/" --screenshot --disablehighdpi --smallscreenshotplot)
# list examples for which to save a screenshot
# the output basename equals the example name in this list,
# unless you specify the basenames by adding it/them after a slash '/'
# e.g. "barchart/barchart,barchart_hor"
# the basenames are applied to the windows in the order of their windowTitle()s!
set(JKQTPlotter_GenerateDocScreenshots_From
scatter/scatter,scatter_error
scatter_customsymbol
simpletest
barchart/barchart,barchart_hor
barchart_twocolor/barchart_twocolor,barchart_twocolor_hor
barchart_errorbars/barchart_errorbars,barchart_errorbars_hor
wiggleplots/wiggleplot_x,wiggleplot_y
advplotstyling/advancedlineandfillstyling
boxplot
contourplot
violinplot/violinplot_hor,violinplot_vert
errorbarstyles
dateaxes/dateaxes,dateaxes_timeaxis
distributionplot/test_distributionplot
evalcurve
filledgraphs/filledgraphs,filledgraphs_y
filledgraphs_errors/filledgraphs_errors,filledgraphs_errors_y
functionplot/functionplot,functionplot_fy
styledboxplot/test_styledboxplot
multiplot/multiplot,multiplot_controlwindow
#symbols_and_styles
symbols_and_errors
stepplots
stackedbars/stackedbars,stackedbars_hor
#geo_arrows
#geo_simple
geometric
imageplot
imageplot_modifier
imageplot_nodatastore
imageplot_userpal/imageplot_userpal_program
impulsesplot
parametriccurve/parametriccurve1,parametriccurve2
paramscatterplot
paramscatterplot_customsymbol
#paramscatterplot_image
parsedfunctionplot
rgbimageplot
rgbimageplot_qt
mandelbrot
#speed
)
# custom target that generates the images for the JKQTMathText documentation
set(JKQTPlotter_GenerateDocImage_DefaultOptions --screenshotdir="${CMAKE_CURRENT_LIST_DIR}/../doc/images/" --screenshotplot --disablehighdpi)
set(JKQTPlotter_GenerateDocImages_From
stackedbars/JKQTPbarVerticalGraphStacked,JKQTPbarHorizontalGraphStacked/--smallscreenshotplot
scatter/JKQTPXYScatterGraph,JKQTPXYScatterErrorGraph/--smallscreenshotplot
simpletest/JKQTPXYLineGraph/--smallscreenshotplot
barchart/JKQTPBarVerticalGraph,JKQTPBarHorizontalGraph/--smallscreenshotplot
barchart_twocolor/JKQTPBarVerticalGraphTwoColorFilling,JKQTPBarHorizontalGraphTwoColorFilling/--smallscreenshotplot
barchart_errorbars/JKQTPBarVerticalErrorGraph,JKQTPBarHorizontalErrorGraph/--smallscreenshotplot
wiggleplots/JKQTPFilledCurveXGraph_wiggle,JKQTPFilledCurveYGraph_wiggle
contourplot/JKQTPColumnContourPlot/--smallscreenshotplot
filledgraphs/JKQTPFilledCurveXGraph,JKQTPFilledCurveYGraph/--smallscreenshotplot
filledgraphs_errors/JKQTPFilledCurveXErrorGraph,JKQTPFilledCurveYErrorGraph/--smallscreenshotplot
evalcurve/JKQTPXYFunctionLineGraph/--smallscreenshotplot
)
foreach(ex ${JKQTPlotter_GenerateDocScreenshots_From})
string(REGEX MATCH "(.+)/(.+)" dummy ${ex})
set(extra_command "")
if(CMAKE_MATCH_1 STREQUAL "" OR CMAKE_MATCH_2 STREQUAL "")
set(example ${ex})
set(basename ${ex})
else()
set(example ${CMAKE_MATCH_1})
set(basename ${CMAKE_MATCH_2})
if(NOT (CMAKE_MATCH_3 STREQUAL ""))
set(example ${CMAKE_MATCH_1})
set(basename ${CMAKE_MATCH_2})
set(extra_command ${CMAKE_MATCH_3})
endif()
endif()
set(loc_target_name JKQTPlotter_GenerateDocScreenshots_${example})
set(dep_name jkqtptest_${example})
string(TOUPPER ${example} example_upper)
add_custom_target(${loc_target_name}
COMMENT "Building JKQTPlotter Documentation Screenshot: ${example_upper}"
COMMAND $<TARGET_FILE:${dep_name}> ${JKQTPlotter_GenerateDocScreenshots_DefaultOptions} --screenshotbasename=${basename} ${extra_command}
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS ${dep_name}
)
add_dependencies(JKQTPlotter_GenerateDocScreenshots ${loc_target_name})
unset(loc_target_name)
unset(dep_name)
unset(example)
unset(example_upper)
unset(basename)
endforeach()
foreach(ex ${JKQTPlotter_GenerateDocImages_From})
string(REGEX MATCH "(.+)/(.+)" dummy ${ex})
set(extra_command "")
if(CMAKE_MATCH_1 STREQUAL "" OR CMAKE_MATCH_2 STREQUAL "")
set(example ${ex})
set(basename ${ex})
else()
set(example ${CMAKE_MATCH_1})
set(basename ${CMAKE_MATCH_2})
string(REGEX MATCH "(.+)/(.*)/(.+)" dummy ${ex})
if(NOT (CMAKE_MATCH_3 STREQUAL ""))
set(example ${CMAKE_MATCH_1})
set(basename ${CMAKE_MATCH_2})
set(extra_command ${CMAKE_MATCH_3})
endif()
endif()
set(loc_target_name JKQTPlotter_GenerateDocImages_${example})
set(dep_name jkqtptest_${example})
string(TOUPPER ${example} example_upper)
add_custom_target(${loc_target_name}
COMMENT "Building JKQTPlotter Documentation Image: ${example_upper}"
COMMAND $<TARGET_FILE:${dep_name}> ${JKQTPlotter_GenerateDocImage_DefaultOptions} --screenshotbasename=${basename} ${extra_command}
WORKING_DIRECTORY ${JKQtPlotter_QT_BINDIR}
DEPENDS ${dep_name}
)
add_dependencies(JKQTPlotter_GenerateDocImages ${loc_target_name})
unset(loc_target_name)
unset(dep_name)
unset(example)
unset(example_upper)
unset(basename)
endforeach()
endif()