Revision: 40516
          http://brlcad.svn.sourceforge.net/brlcad/?rev=40516&view=rev
Author:   starseeker
Date:     2010-09-09 15:40:28 +0000 (Thu, 09 Sep 2010)

Log Message:
-----------
Hook in more of the Docbook build - add more options, get basic PDF build 
working (need to enable more than articles, just a test)

Modified Paths:
--------------
    brlcad/branches/cmake/CMakeLists.txt
    brlcad/branches/cmake/doc/docbook/CMakeLists.txt
    brlcad/branches/cmake/doc/docbook/articles/en/CMakeLists.txt
    brlcad/branches/cmake/doc/docbook/fop.xconf.in
    brlcad/branches/cmake/src/tclscripts/mged/CMakeLists.txt

Added Paths:
-----------
    brlcad/branches/cmake/misc/CMake/FindFOP.cmake

Modified: brlcad/branches/cmake/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/CMakeLists.txt        2010-09-09 14:58:47 UTC (rev 
40515)
+++ brlcad/branches/cmake/CMakeLists.txt        2010-09-09 15:40:28 UTC (rev 
40516)
@@ -432,6 +432,12 @@
        INCLUDE(${BRLCAD_CMAKE_DIR}/FindGL.cmake)
 endif (BRLCAD-ENABLE_OPENGL)
 
+OPTION(BRLCAD-BUILD_EXTRADOCS "Build Docbook documentation" ON)
+IF(BRLCAD-BUILD_EXTRADOCS)
+  OPTION(BRLCAD-BUILD_EXTRADOCS_PDF "Build PDF output from Docbook 
documentation" ON)
+  OPTION(BRLCAD-BUILD_EXTRADOCS_PDF_MAN "Build PDF output from Docbook 
documentation for man pages" ${BRLCAD-BUILD_EXTRADOCS_PDF})
+ENDIF(BRLCAD-BUILD_EXTRADOCS)
+
 INCLUDE (CheckLibraryExists)
 
 # This may be overkill - does CHECK_LIBRARY_EXISTS usably set
@@ -1127,6 +1133,15 @@
                MESSAGE("Extra doc build requested, but xsltproc not found - 
disabling.")
                SET(BRLCAD-BUILD_EXTRADOCS OFF)
        ENDIF(NOT XSLTPROC_EXEC)
+       IF(BRLCAD-BUILD_EXTRADOCS_PDF)
+       INCLUDE(${BRLCAD_CMAKE_DIR}/FindFOP.cmake)
+       IF(NOT XSLTPROC_EXEC)
+               MESSAGE("Extra doc PDF build requested, but Apache FOP not 
found - disabling.")
+               SET(BRLCAD-BUILD_EXTRADOCS_PDF OFF)
+               SET(BRLCAD-BUILD_EXTRADOCS_PDF_MAN OFF)
+       ENDIF(NOT XSLTPROC_EXEC)
+
+       ENDIF(BRLCAD-BUILD_EXTRADOCS_PDF)
 endif (BRLCAD-BUILD_EXTRADOCS)
 
 
@@ -1312,11 +1327,11 @@
        SET(BRLCAD-BUILD_RTSERVER_ONLY_LABEL "Only build librtserver ")
        SET(BRLCAD-BUILD_GEOMETRY_LABEL "Install example geometry models ")
        if (BRLCAD-BUILD_EXTRADOCS)
-               if (BRLCAD-BUILD_PDF_DOCS)
+               if (BRLCAD-BUILD_EXTRADOCS_PDF)
                        set(BRLCAD-BUILD_DOCBUILD_MSG "ON (man/html/pdf)")
-               else (BRLCAD-BUILD_PDF_DOCS)
+               else(BRLCAD-BUILD_EXTRADOCS_PDF)
                        set(BRLCAD-BUILD_DOCBUILD_MSG "ON (man/html only)")
-               endif (BRLCAD-BUILD_PDF_DOCS)
+               endif(BRLCAD-BUILD_EXTRADOCS_PDF)
        else (BRLCAD-BUILD_EXTRADOCS)
                set(BRLCAD-BUILD_DOCBUILD_MSG "OFF")
        endif (BRLCAD-BUILD_EXTRADOCS)

Modified: brlcad/branches/cmake/doc/docbook/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/doc/docbook/CMakeLists.txt    2010-09-09 14:58:47 UTC 
(rev 40515)
+++ brlcad/branches/cmake/doc/docbook/CMakeLists.txt    2010-09-09 15:40:28 UTC 
(rev 40516)
@@ -1,3 +1,5 @@
+configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/fop.xconf.in 
${CMAKE_BINARY_DIR}/doc/docbook/fop.xconf)
+
 SET(XSLTPROC_FLAGS 
        -nonet
        -xinclude
@@ -35,6 +37,28 @@
        ENDFOREACH(filename ${${xml_files}})
 ENDMACRO(DOCBOOK_TO_MAN targetname_suffix srcfile outfile targetdir)
 
+MACRO(DOCBOOK_TO_PDF targetname_suffix xml_files targetdir)
+       FOREACH(filename ${${xml_files}})
+               STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" filename_root 
"${filename}")
+               SET(tmp_fo_file ${CMAKE_CURRENT_BINARY_DIR}/${filename_root}.fo)
+               SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/${filename_root}.pdf)
+               SET(targetname ${filename_root}_${targetname_suffix}_pdf)
+               ADD_CUSTOM_COMMAND(
+                       OUTPUT ${tmp_fo_file}
+                       COMMAND XML_CATALOG_FILES=${XML_CATALOG_FILES} 
${XSLTPROC_EXEC} ${XSLTPROC_FLAGS} -o ${tmp_fo_file} ${XSL_FO_STYLESHEET} 
${CMAKE_CURRENT_SOURCE_DIR}/${filename}
+                       )
+               ADD_CUSTOM_COMMAND(
+                       OUTPUT ${outfile}
+                       COMMAND ${APACHE_FOP} -c 
${CMAKE_BINARY_DIR}/doc/docbook/fop.xconf ${tmp_fo_file} -pdf ${outfile}
+                       DEPENDS ${tmp_fo_file}
+                       )
+               ADD_CUSTOM_TARGET(${targetname} ALL DEPENDS ${outfile})
+               INSTALL(FILES ${outfile} DESTINATION ${targetdir})
+       ENDFOREACH(filename ${${xml_files}})
+ENDMACRO(DOCBOOK_TO_PDF targetname_suffix srcfile outfile targetdir)
+
+
+
 ADD_SUBDIRECTORY(articles/en)
 ADD_SUBDIRECTORY(books/en)
 ADD_SUBDIRECTORY(lessons/en)

Modified: brlcad/branches/cmake/doc/docbook/articles/en/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/doc/docbook/articles/en/CMakeLists.txt        
2010-09-09 14:58:47 UTC (rev 40515)
+++ brlcad/branches/cmake/doc/docbook/articles/en/CMakeLists.txt        
2010-09-09 15:40:28 UTC (rev 40516)
@@ -103,3 +103,7 @@
 
 DOCBOOK_TO_HTML(article docbook_articles_EN 
${BRLCAD_INSTALL_DATA_DIR}/html/articles/en)
 INSTALL(FILES ${docbook_articles_EN_IMAGES} DESTINATION 
${BRLCAD_INSTALL_DATA_DIR}/html/articles/en/images)
+
+IF(BRLCAD-BUILD_EXTRADOCS_PDF)
+DOCBOOK_TO_PDF(article docbook_articles_EN 
${BRLCAD_INSTALL_DATA_DIR}/pdf/articles/en)
+ENDIF(BRLCAD-BUILD_EXTRADOCS_PDF)

Modified: brlcad/branches/cmake/doc/docbook/fop.xconf.in
===================================================================
--- brlcad/branches/cmake/doc/docbook/fop.xconf.in      2010-09-09 14:58:47 UTC 
(rev 40515)
+++ brlcad/branches/cmake/doc/docbook/fop.xconf.in      2010-09-09 15:40:28 UTC 
(rev 40516)
@@ -10,6 +10,6 @@
   <!-- the base path below works. This referencing is needed so -->
   <!-- that xincluded sections of documents referenced across -->
   <!-- multiple directories can still find their target images. -->
-  <base>@srcdir@/system/man1</base>
+  <base>@CMAKE_SOURCE_DIR@/doc/docbook/system/man1</base>
 </fop>
 

Added: brlcad/branches/cmake/misc/CMake/FindFOP.cmake
===================================================================
--- brlcad/branches/cmake/misc/CMake/FindFOP.cmake                              
(rev 0)
+++ brlcad/branches/cmake/misc/CMake/FindFOP.cmake      2010-09-09 15:40:28 UTC 
(rev 40516)
@@ -0,0 +1,10 @@
+# - Find Apache FOP (pdf generator)
+#
+# The following variables are set:
+#
+# APACHE_FOP
+
+FIND_PROGRAM(APACHE_FOP fop DOC "path to the exec script for Apache FOP")
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(FOP DEFAULT_MSG APACHE_FOP)


Property changes on: brlcad/branches/cmake/misc/CMake/FindFOP.cmake
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Modified: brlcad/branches/cmake/src/tclscripts/mged/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/tclscripts/mged/CMakeLists.txt    2010-09-09 
14:58:47 UTC (rev 40515)
+++ brlcad/branches/cmake/src/tclscripts/mged/CMakeLists.txt    2010-09-09 
15:40:28 UTC (rev 40516)
@@ -1,8 +1,8 @@
-IF(BRLCAD-ENABLE_BUILD_DOCS)
+IF(BRLCAD-BUILD_EXTRADOCS)
        SET(mgedman_TCLSCRIPTS
                man.tcl
        )
-ENDIF(BRLCAD-ENABLE_BUILD_DOCS)
+ENDIF(BRLCAD-BUILD_EXTRADOCS)
 
 SET(mged_TCLSCRIPTS
        ${mgedman_TCLSCRIPTS} 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to