# # Find LaTeX # INCLUDE (${CMAKE_ROOT}/Modules/FindLATEX.cmake) # # Verify that we found all the components we need # IF(NOT LATEX_COMPILER) MESSAGE("Latex compiler was not found. Please pass to advanced mode and provide its full path") ENDIF(NOT LATEX_COMPILER) IF(NOT BIBTEX_COMPILER) MESSAGE("BibTeX executable was not found. Please pass to advanced mode and provide its full path") ENDIF(NOT BIBTEX_COMPILER) IF(NOT DVIPS_CONVERTER) MESSAGE("dvips executable was not found. Please pass to advanced mode and provide its full path") ENDIF(NOT DVIPS_CONVERTER) IF(NOT PS2PDF_CONVERTER) MESSAGE("ps2pdf executable was not found. Please pass to advanced mode and provide its full path") ENDIF(NOT PS2PDF_CONVERTER) IF(NOT MAKEINDEX_COMPILER) MESSAGE("makeindex executable was not found. Please pass to advanced mode and provide its full path") ENDIF(NOT MAKEINDEX_COMPILER) # # Options for PDF generation. # resolution in dpi. # # /screen = low resolution = Distiller "Screen" optimized # /ebook = medium resolution = Distiller "eBook" # /printer = high resolution = Distiller "Print" optimized # /prepress = high resolution = Distiller like "Print" with some error checking differences # #SET(PS2PDF_CONVERTER_OPTIONS "-dPDFSETTINGS=/screen" -r600) #SET(PS2PDF_CONVERTER_OPTIONS "-dPDFSETTINGS=/printer" -r600) #SET(PS2PDF_CONVERTER_OPTIONS "-dPDFSETTINGS=/prepress" "-dColorImageResolution=600" "-dGrayImageResolution=600" -r600) SET(PS2PDF_CONVERTER_OPTIONS "\"-dPDFSETTINGS=/prepress\" \"-dColorImageResolution=600\" \"-dGrayImageResolution=600\" -r600" CACHE STRING "/screen = low resolution = Distiller \"Screen\" optimized; /ebook = medium resolution = Distiller \"eBook\"; /printer = high resolution = Distiller \"Print\" optimized; /prepress = high resolution = Distiller like \"Print\" with some error checking differences") #"/screen = low resolution = Distiller \"Screen\" optimized; /ebook = medium resolution = Distiller \"eBook\"; /printer = high resolution = Distiller \"Print\" optimized; /prepress = high resolution = Distiller like \"Print\" with some error checking differences" SET(DVIPS_CONVERTER_OPTIONS -D600) # # File that defines the path to .cxx examples in IGSTK sources # CONFIGURE_FILE( ${IGSTKTheBook_SOURCE_DIR}/IGSTKTheBookConfiguration.tex.in ${IGSTKTheBook_BINARY_DIR}/IGSTKTheBookConfiguration.tex ) ADD_CUSTOM_TARGET(IGSTKTheBookLatex ALL echo) # # This command uses some magic that is dependent on CMake 2.0.6. Since then, # the SOURCE command has been removed from CMake, but it is still needed here # in order to connect the dependencies to the global target. # ADD_CUSTOM_COMMAND( SOURCE IGSTKTheBookLatex COMMAND echo TARGET IGSTKTheBookLatex DEPENDS IGSTKTheBook.pdf ) SET( Tex_SRCS Abstract.tex Architecture.tex Bios.tex Calibration.tex Contributors.tex Cover.tex RobotAssistedNeedlePlacement.tex Events.tex Glossary.tex IGSTKTheBook.tex # IGSTKTheBook.cls IGSTKStyleGuide.tex ImageIO.tex Installation.tex Introduction.tex Logging.tex NeedleBiopsy.tex PrintedPreamble.tex Registration.tex Requirements.tex SoftwareDevelopmentProcess.tex SpatialObject.tex SpatialObjectRepresentation.tex StateMachine.tex Tracker.tex UltrasoundGuidedRFA.tex View.tex HelloWorldExample.tex ) FOREACH( file ${Tex_SRCS}) SET( IGSTKTheBook_Tex_SRCS ${IGSTKTheBook_Tex_SRCS} ${IGSTKTheBook_SOURCE_DIR}/Latex/${file} ) ENDFOREACH( file ) SET( IGSTK_EXAMPLES_TEX_SRCS_NAMES HelloWorld.tex ) FOREACH( exampletexname ${IGSTK_EXAMPLES_TEX_SRCS_NAMES}) SET( IGSTK_EXAMPLES_TEX_SRCS ${IGSTK_EXAMPLES_TEX_SRCS} ${IGSTKTheBook_BINARY_DIR}/Examples/${exampletexname} ) ENDFOREACH( exampletexname ) IF(LATEX_COMPILER) IF (NOT UNIX) SET(IGSTK_TEXINPUTS ${IGSTKTheBook_SOURCE_DIR}/../Latex;${IGSTKTheBook_SOURCE_DIR};${IGSTKTheBook_SOURCE_DIR}/Latex;${IGSTKTheBook_SOURCE_DIR}/Art;${IGSTKTheBook_BINARY_DIR};${IGSTKTheBook_BINARY_DIR}/Examples;${IGSTKTheBook_BINARY_DIR}/Art;${IGSTKTheBook_BINARY_DIR}/Latex) CONFIGURE_FILE(${IGSTKTheBook_SOURCE_DIR}/LaTeXWrapper.bat.in ${IGSTKTheBook_BINARY_DIR}/LaTeXWrapper.bat) SET (LATEX_WRAPPER1 ${IGSTKTheBook_BINARY_DIR}/LaTeXWrapper.bat) SET (LATEX_WRAPPER2 "") CONFIGURE_FILE(${IGSTKTheBook_SOURCE_DIR}/DvipsWrapper.bat.in ${IGSTKTheBook_BINARY_DIR}/DvipsWrapper.bat) SET (DVIPS_WRAPPER1 ${IGSTKTheBook_BINARY_DIR}/DvipsWrapper.bat) SET (DVIPS_WRAPPER2 "") ELSE (NOT UNIX) SET(IGSTK_TEXINPUTS ${IGSTKTheBook_SOURCE_DIR}/../Latex:${IGSTKTheBook_SOURCE_DIR}:${IGSTKTheBook_SOURCE_DIR}/Latex:${IGSTKTheBook_SOURCE_DIR}/Art:${IGSTKTheBook_BINARY_DIR}:${IGSTKTheBook_BINARY_DIR}/Examples:${IGSTKTheBook_BINARY_DIR}/Art:${IGSTKTheBook_BINARY_DIR}/Latex) CONFIGURE_FILE(${IGSTKTheBook_SOURCE_DIR}/LaTeXWrapper.sh.in ${IGSTKTheBook_BINARY_DIR}/LaTeXWrapper.sh) SET (LATEX_WRAPPER1 /bin/sh) SET (LATEX_WRAPPER2 ${IGSTKTheBook_BINARY_DIR}/LaTeXWrapper.sh) CONFIGURE_FILE(${IGSTKTheBook_SOURCE_DIR}/DvipsWrapper.sh.in ${IGSTKTheBook_BINARY_DIR}/DvipsWrapper.sh) SET (DVIPS_WRAPPER1 /bin/sh) SET (DVIPS_WRAPPER2 ${IGSTKTheBook_BINARY_DIR}/DvipsWrapper.sh) ENDIF (NOT UNIX) ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.dvi COMMAND ${LATEX_WRAPPER1} ARGS ${LATEX_WRAPPER2} ${IGSTKTheBook_SOURCE_DIR}/Latex/IGSTKTheBook.tex DEPENDS ${IGSTKTheBook_Tex_SRCS} ${IGSTK_EXAMPLES_TEX_SRCS} IGSTKTheBook.ind IGSTKTheBook.bibtex ) # # SET( LATEX_TEMP_FILES IGSTKTheBook.aux IGSTKTheBook.dvi IGSTKTheBook.idx IGSTKTheBook.ilg IGSTKTheBook.ind IGSTKTheBook.lof IGSTKTheBook.log IGSTKTheBook.lot IGSTKTheBook.out IGSTKTheBook.pdf IGSTKTheBook.ps IGSTKTheBook.toc ) FOREACH( file ${LATEX_TEMP_FILES}) SET( LATEX_TEMP_FILES_FULL_PATH ${LATEX_TEMP_FILES_FULL_PATH} ${IGSTKTheBook_BINARY_DIR}/Latex/${file} ) ENDFOREACH( file ) ADD_CUSTOM_COMMAND( OUTPUT EraseLatexTemporaryFiles COMMAND ${CMAKE_COMMAND} -E remove ${LATEX_TEMP_FILES_FULL_PATH} ) # This virtual target is added in order to force the execution of a first Latex run. # This first run will generate the .aux file needed by BIBTEX and MAKEINDEX. ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.igstk COMMAND ${LATEX_WRAPPER1} ARGS ${LATEX_WRAPPER2} ${IGSTKTheBook_SOURCE_DIR}/Latex/IGSTKTheBook.tex IGSTKTheBook.igstk DEPENDS ${IGSTKTheBook_Tex_SRCS} ${IGSTK_EXAMPLES_TEX_SRCS} EraseLatexTemporaryFiles ) IF(DVIPS_CONVERTER) ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.ps COMMAND ${DVIPS_WRAPPER1} ARGS ${DVIPS_WRAPPER2} IGSTKTheBook.dvi ${DVIPS_CONVERTER_OPTIONS} -o IGSTKTheBook.ps DEPENDS IGSTKTheBook.dvi ) ENDIF(DVIPS_CONVERTER) IF(PS2PDF_CONVERTER) ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.pdf COMMAND ${PS2PDF_CONVERTER} ARGS ${PS2PDF_CONVERTER_OPTIONS} IGSTKTheBook.ps DEPENDS IGSTKTheBook.ps ) # ADD_CUSTOM_COMMAND( # OUTPUT RunReader.txt # COMMAND ${PDF_READER} # ARGS IGSTKTheBook.pdf # DEPENDS IGSTKTheBook.pdf # ) #SET( REPORT_BINARY_DIR ${IGSTKTheBook_BINARY_DIR}/Latex ) SET( REPORT_BINARY_DIR C:\\Matt.Turek\\build\\IGSTKTheBook\\Latex ) SET( REPORT_NAME IGSTKTheBook.pdf) ADD_CUSTOM_TARGET(IGSTKTheBookView COMMAND ${CMAKE_COMMAND} -E echo ${REPORT_BINARY_DIR}\\${REPORT_NAME} COMMAND ${PDF_READER} ${REPORT_BINARY_DIR}\\${REPORT_NAME} WORKING_DIRECTORY ${REPORT_BINARY_DIR} # DEPENDS IGSTKTheBook.pdf ) ENDIF(PS2PDF_CONVERTER) IF(MAKEINDEX_COMPILER) ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.ind COMMAND ${MAKEINDEX_COMPILER} ARGS IGSTKTheBook DEPENDS ${IGSTKTheBook_Tex_SRCS} ${IGSTK_EXAMPLES_TEX_SRCS} IGSTKTheBook.igstk ) ENDIF(MAKEINDEX_COMPILER) IF(BIBTEX_COMPILER) ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.bbl COMMAND ${BIBTEX_COMPILER} ARGS IGSTKTheBook DEPENDS ${IGSTKTheBook_SOURCE_DIR}/../Latex/IGSTK.bib ${IGSTKTheBook_Tex_SRCS} ${IGSTK_EXAMPLES_TEX_SRCS} IGSTKTheBook.igstk ) # # The following command create a dummy target called IGSTKTheBook.bibtex # with the purpose of forcing Latex to run once more after the # IGSTKTheBook.bbl has been updated. This will make sure that the # references added to the .bbl file are not appearing in the final .dvi, # .ps, and .pdf files. # ADD_CUSTOM_COMMAND( OUTPUT IGSTKTheBook.bibtex COMMAND ${LATEX_WRAPPER1} ARGS ${LATEX_WRAPPER2} ${IGSTKTheBook_SOURCE_DIR}/Latex/IGSTKTheBook.tex IGSTKTheBook.bibtex DEPENDS ${IGSTKTheBook_Tex_SRCS} ${IGSTK_EXAMPLES_TEX_SRCS} IGSTKTheBook.ind IGSTKTheBook.bbl ) ENDIF(BIBTEX_COMPILER) ENDIF(LATEX_COMPILER)