Add PANDOC as an alternative PDF generator using the
asciidoctor -> docbook5 -> pandoc/xelatex pipeline.
This avoids the need for asciidoctor-web-pdf (npm package).
Skip PDF generation when translated source files are missing.

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,7 +19,7 @@ set( ADOC_TOOLCHAIN "ASCIIDOCTOR" CACHE STRING "Specify which AsciiDoc toolchain

 # Provide an option for deciding which PDF generation scheme to use
 # Only ASCIIDOCTOR-PDF is supported.
-set( PDF_GENERATOR "ASCIIDOCTORPDF" CACHE STRING "Specify which PDF generator to use: ASCIIDOCTORPDF" )
+set( PDF_GENERATOR "ASCIIDOCTORPDF" CACHE STRING "Specify which PDF generator to use: ASCIIDOCTORPDF|PANDOC" )

 # Provide an option to limit the set of languages built. This helps developers to speed up a
 # build they're working on, or limit the number of dependencies for packagers
@@ -46,6 +46,8 @@ if( "${BUILD_FORMATS}" MATCHES "(p|P)(d|D)(f|F)" )

     if( ${PDF_GENERATOR} MATCHES ASCIIDOCTORPDF )
         find_package( ASCIIDOCTORPDF REQUIRED )
+    elseif( ${PDF_GENERATOR} MATCHES PANDOC )
+        find_program( PANDOC_PROGRAM pandoc REQUIRED )
     endif()

 endif()
--- a/CMakeModules/AsciidocHelpers.cmake
+++ b/CMakeModules/AsciidocHelpers.cmake
@@ -20,7 +20,18 @@ macro( add_adoc_pdf_target TARGET INFILE OUTFILE LANGUAGE )
                             DEPENDS ${INFILE} )
         add_custom_command( TARGET ${TARGET} POST_BUILD
                             COMMAND cmake -E remove ${ASCIIDOCTORPDF_TEMP_FILE} )
-    else()
+    elseif( "${PDF_GENERATOR}" MATCHES "PANDOC" )
+        # Use asciidoctor -> docbook5 -> pandoc/xelatex pipeline
+        string( REGEX REPLACE "[.]adoc$" ".xml" PANDOC_TEMP_FILE ${INFILE} )
+        get_filename_component( _PANDOC_RSRC_PATH ${INFILE} DIRECTORY )
+        add_custom_target( ${TARGET} DEPENDS ${OUTFILE} )
+        add_custom_command( OUTPUT ${OUTFILE}
+                            COMMAND test -f ${INFILE} || cmake -E touch ${OUTFILE}
+                            COMMAND test ! -f ${INFILE} || ${ASCIIDOC_COMMAND} -b docbook5 -o ${PANDOC_TEMP_FILE} ${INFILE}
+                            COMMAND test ! -f ${INFILE} || ${PANDOC_PROGRAM} -f docbook -t pdf --pdf-engine=xelatex "-Vmainfont=DejaVu Serif" "-Vsansfont=DejaVu Sans" "-Vmonofont=DejaVu Sans Mono" "-VCJKmainfont=Noto Serif CJK SC" "--resource-path=${_PANDOC_RSRC_PATH}" ${PANDOC_TEMP_FILE} -o ${OUTFILE}
+                            COMMAND test ! -f ${PANDOC_TEMP_FILE} || cmake -E remove ${PANDOC_TEMP_FILE}
+                            DEPENDS ${INFILE} )
+    else()
         message( FATAL_ERROR "ASCIIDOCTORPDF is the only supported PDF_GENERATOR. Exiting." )
     endif()
 endmacro()
