diff --git a/documentation/.gitignore b/documentation/.gitignore index 44b0f2ba3..ce108988c 100644 --- a/documentation/.gitignore +++ b/documentation/.gitignore @@ -27,6 +27,7 @@ fluid.z generated.dox html latex +make_pdf sudoku.0 sudoku.6 sudoku.z diff --git a/documentation/CMakeLists.txt b/documentation/CMakeLists.txt index f93d0cba5..6cd1d1462 100644 --- a/documentation/CMakeLists.txt +++ b/documentation/CMakeLists.txt @@ -37,16 +37,12 @@ if(GENERATE_DOCS) # create required variables - execute_process(COMMAND date "+%Y" - OUTPUT_VARIABLE YEAR - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - + string(TIMESTAMP YEAR "%Y" UTC) # note: current locale is used for abbreviated month - execute_process(COMMAND date "+%b %d, %Y" - OUTPUT_VARIABLE CURRENT_DATE - OUTPUT_STRIP_TRAILING_WHITESPACE - ) + string(TIMESTAMP CURRENT_DATE "%b %d, %Y" UTC) + string(TIMESTAMP PDF_DATE "D:%Y%m%d%H%M%SZ" UTC) + string(TIMESTAMP TODAY "%B %d, %Y" UTC) + string(REPLACE " 0" " " TODAY "${TODAY}") # Find "short" doxygen version if it was built from Git # Note: this is still needed in CMake 3.15 but later CMake versions @@ -77,6 +73,8 @@ if(GENERATE_DOCS) if(0) # debug fl_debug_var(YEAR) fl_debug_var(CURRENT_DATE) + fl_debug_var(PDF_DATE) + fl_debug_var(TODAY) fl_debug_var(FLTK_GIT_REVISION) fl_debug_var(DOXYGEN_FOUND) fl_debug_var(DOXYGEN_EXECUTABLE) @@ -179,7 +177,7 @@ if(FLTK_BUILD_PDF_DOCS) COMMENT "Converting ${DOXYFILE} to doxygen version ${DOXYGEN_VERSION_SHORT}" VERBATIM ) - # generate LaTeX title fltk-title.tex + # generate LaTeX title fltk-title.tex and make_pdf script configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/fltk-title.tex.in @@ -187,6 +185,12 @@ if(FLTK_BUILD_PDF_DOCS) @ONLY ) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf.in + ${CMAKE_CURRENT_BINARY_DIR}/make_pdf + @ONLY + ) + # generate fltk.pdf add_custom_command( @@ -196,7 +200,7 @@ if(FLTK_BUILD_PDF_DOCS) ${CMAKE_CURRENT_BINARY_DIR}/fltk-title.tex ${CMAKE_CURRENT_BINARY_DIR}/fltk-book.tex COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE} - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_pdf + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/make_pdf COMMAND cp -f latex/refman.pdf fltk.pdf DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${DOXYFILE} ${CMAKE_CURRENT_BINARY_DIR}/fltk-title.tex diff --git a/documentation/Makefile b/documentation/Makefile index 972c1b791..21b6c9546 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -85,7 +85,7 @@ debug_git_rev: clean: $(RM) Doxyfile Doxybook - $(RM) copyright.dox generated.dox + $(RM) copyright.dox generated.dox make_pdf $(RM) fltk.pdf refman.pdf src/fltk-title.tex src/fltk-book.tex.in src/fltk-book.tex $(RMDIR) html latex $(RM) *~ *.bck *.bak *.log @@ -211,15 +211,24 @@ html: $(HTMLFILES) Doxyfile pdf: refman.pdf cp -f latex/refman.pdf fltk.pdf -refman.pdf: $(HTMLFILES) Doxybook src/fltk-book.tex +refman.pdf: $(HTMLFILES) Doxybook src/fltk-book.tex make_pdf -$(RMDIR) latex echo "Generating PDF documentation ..." "$(DOXYDOC)" Doxybook ./make_pdf +make_pdf: make_pdf.in + echo "Generating $@ ..." + PDF_DATE=`date +D:%Y%m%d%H%M%S`; \ + sed -e"s/@PDF_DATE@/$$PDF_DATE/g" \ + < $< > $@ + chmod +x $@ + src/fltk-title.tex: src/fltk-title.tex.in echo "Generating $@ ..." + TODAY=`LC_ALL=C date '+%B %e, %Y'`; \ sed -e"s/@FLTK_GIT_REVISION@/$(FLTK_GIT_REVISION)/g" \ + -e"s/@TODAY@/$$TODAY/g" \ < $< > $@ src/fltk-book.tex.in: src/fltk-title.tex @@ -237,7 +246,7 @@ src/fltk-book.tex: src/fltk-book.tex.in generated.dox: generated.dox.in echo "Generating $@ ..." - CURRENT_DATE=`date "+%b %d, %Y"`; \ + CURRENT_DATE=`LC_ALL=C date "+%b %d, %Y"`; \ DOXYGEN_VERSION_SHORT=`"$(DOXYDOC)" --version|cut -f1 -d' '`; \ sed -e"s/@CURRENT_DATE@/$$CURRENT_DATE/g" \ -e"s/@FLTK_GIT_REVISION@/$(FLTK_GIT_REVISION)/g" \ diff --git a/documentation/make_pdf b/documentation/make_pdf.in similarity index 87% rename from documentation/make_pdf rename to documentation/make_pdf.in index a5487bae4..c0e5fad8a 100755 --- a/documentation/make_pdf +++ b/documentation/make_pdf.in @@ -26,10 +26,15 @@ # # Used in: Makefile and CMakeLists.txt +run_pdflatex() { + pdflatex --interaction=nonstopmode \ + "\pdfinfo{/CreationDate(@PDF_DATE@)/ModDate(@PDF_DATE@)}\input{refman.tex}" +} + ( cd latex - pdflatex --interaction=nonstopmode refman.tex + run_pdflatex makeindex refman.idx - pdflatex --interaction=nonstopmode refman.tex + run_pdflatex latex_count=5 while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log \ && [ $latex_count -gt 0 ] diff --git a/documentation/src/fltk-title.tex.in b/documentation/src/fltk-title.tex.in index cc7f853c9..5096461c2 100644 --- a/documentation/src/fltk-title.tex.in +++ b/documentation/src/fltk-title.tex.in @@ -25,7 +25,7 @@ provided this copyright and permission notice are preserved.}\\ \vspace*{1.5cm} {\large Generated by Doxygen @DOXY_VERSION@}\\ \vspace*{0.5cm} -\today{}\\ +@TODAY@\\ \vspace*{0.5cm} {\small Git revision @FLTK_GIT_REVISION@}\\ \end{center}