1 #======================================================================== 2 # 3 # xpdf/cmake-xpdf.txt 4 # 5 # CMake script for the Xpdf tools. 6 # 7 # Copyright 2015 Glyph & Cog, LLC 8 # 9 #======================================================================== 10 11 include_directories("${PROJECT_SOURCE_DIR}") 12 include_directories("${PROJECT_BINARY_DIR}") 13 include_directories("${PROJECT_SOURCE_DIR}/goo") 14 include_directories("${PROJECT_SOURCE_DIR}/fofi") 15 include_directories("${PROJECT_SOURCE_DIR}/splash") 16 if (PNG_FOUND) 17 include_directories("${PNG_INCLUDE_DIRS}") 18 add_definitions("${PNG_DEFINITIONS}") 19 endif () 20 if (HAVE_LCMS) 21 include_directories("${LCMS_INCLUDE_DIR}") 22 set(COLOR_MANAGER_SOURCE "ColorManager.cc") 23 else () 24 set(COLOR_MANAGER_SOURCE "") 25 endif () 26 if (WIN32) 27 set(MANIFEST "winLongPath.exe.manifest") 28 else () 29 set(MANIFEST "") 30 endif () 31 32 add_library(xpdf_objs OBJECT 33 AcroForm.cc 34 Annot.cc 35 Array.cc 36 BuiltinFont.cc 37 BuiltinFontTables.cc 38 Catalog.cc 39 CharCodeToUnicode.cc 40 CMap.cc 41 ${COLOR_MANAGER_SOURCE} 42 Decrypt.cc 43 Dict.cc 44 Error.cc 45 FontEncodingTables.cc 46 Function.cc 47 Gfx.cc 48 GfxFont.cc 49 GfxState.cc 50 GlobalParams.cc 51 JArithmeticDecoder.cc 52 JBIG2Stream.cc 53 JPXStream.cc 54 Lexer.cc 55 Link.cc 56 NameToCharCode.cc 57 Object.cc 58 OptionalContent.cc 59 Outline.cc 60 OutputDev.cc 61 Page.cc 62 Parser.cc 63 PDF417Barcode.cc 64 PDFDoc.cc 65 PDFDocEncoding.cc 66 PSTokenizer.cc 67 SecurityHandler.cc 68 Stream.cc 69 TextString.cc 70 UnicodeMap.cc 71 UnicodeRemapping.cc 72 UnicodeTypeTable.cc 73 UTF8.cc 74 XFAScanner.cc 75 XRef.cc 76 Zoox.cc 77 ) 78 set_property(TARGET xpdf_objs 79 PROPERTY POSITION_INDEPENDENT_CODE True) 80 81 #--- object files needed by XpdfWidget 82 83 if ((QT4_FOUND OR Qt5Widgets_FOUND OR Qt6Widgets_FOUND) 84 AND HAVE_SPLASH AND MULTITHREADED AND USE_EXCEPTIONS) 85 86 if (HIGHLIGHTED_REGIONS) 87 set(HIGHLIGHT_SRC "HighlightFile.cc") 88 else () 89 set(HIGHLIGHT_SRC "") 90 endif () 91 92 add_library(xpdf_widget_objs OBJECT 93 DisplayState.cc 94 PDFCore.cc 95 PreScanOutputDev.cc 96 PSOutputDev.cc 97 ShadingImage.cc 98 SplashOutputDev.cc 99 TextOutputDev.cc 100 TileCache.cc 101 TileCompositor.cc 102 TileMap.cc 103 ${HIGHLIGHT_SRC} 104 ) 105 set_property(TARGET xpdf_widget_objs 106 PROPERTY POSITION_INDEPENDENT_CODE True) 107 endif () 108 109 #--- pdftops 110 111 if (HAVE_SPLASH) 112 add_executable(pdftops 113 $<TARGET_OBJECTS:xpdf_objs> 114 PreScanOutputDev.cc 115 PSOutputDev.cc 116 ShadingImage.cc 117 SplashOutputDev.cc 118 pdftops.cc 119 ${MANIFEST} 120 ) 121 target_link_libraries(pdftops goo fofi splash 122 ${PAPER_LIBRARY} 123 ${FREETYPE_LIBRARY} ${FREETYPE_OTHER_LIBS} 124 ${DTYPE_LIBRARY} 125 ${LCMS_LIBRARY} 126 ${FONTCONFIG_LIBRARY} 127 ${CMAKE_THREAD_LIBS_INIT}) 128 else () 129 add_executable(pdftops 130 $<TARGET_OBJECTS:xpdf_objs> 131 PreScanOutputDev.cc 132 PSOutputDev.cc 133 pdftops.cc 134 ${MANIFEST} 135 ) 136 target_link_libraries(pdftops goo fofi 137 ${PAPER_LIBRARY} 138 ${LCMS_LIBRARY} 139 ${FONTCONFIG_LIBRARY} 140 ${CMAKE_THREAD_LIBS_INIT}) 141 endif () 142 install(TARGETS pdftops RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 143 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdftops.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 144 145 #--- pdftotext 146 147 add_executable(pdftotext 148 $<TARGET_OBJECTS:xpdf_objs> 149 TextOutputDev.cc 150 pdftotext.cc 151 ${MANIFEST} 152 ) 153 target_link_libraries(pdftotext goo fofi 154 ${PAPER_LIBRARY} 155 ${LCMS_LIBRARY} 156 ${FONTCONFIG_LIBRARY} 157 ${CMAKE_THREAD_LIBS_INIT}) 158 install(TARGETS pdftotext RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 159 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdftotext.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 160 161 #--- pdftohtml 162 163 if (HAVE_SPLASH AND PNG_FOUND) 164 add_executable(pdftohtml 165 $<TARGET_OBJECTS:xpdf_objs> 166 HTMLGen.cc 167 ShadingImage.cc 168 SplashOutputDev.cc 169 TextOutputDev.cc 170 WebFont.cc 171 pdftohtml.cc 172 ${MANIFEST} 173 ) 174 target_link_libraries(pdftohtml goo fofi splash 175 ${PAPER_LIBRARY} 176 ${FREETYPE_LIBRARY} ${FREETYPE_OTHER_LIBS} 177 ${DTYPE_LIBRARY} 178 ${LCMS_LIBRARY} 179 ${PNG_LIBRARIES} 180 ${FONTCONFIG_LIBRARY} 181 ${CMAKE_THREAD_LIBS_INIT}) 182 install(TARGETS pdftohtml RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 183 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdftohtml.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 184 endif () 185 186 #--- pdfinfo 187 188 add_executable(pdfinfo 189 $<TARGET_OBJECTS:xpdf_objs> 190 pdfinfo.cc 191 ${MANIFEST} 192 ) 193 target_link_libraries(pdfinfo goo fofi 194 ${PAPER_LIBRARY} 195 ${LCMS_LIBRARY} 196 ${FONTCONFIG_LIBRARY} 197 ${CMAKE_THREAD_LIBS_INIT}) 198 install(TARGETS pdfinfo RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 199 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdfinfo.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 200 201 #--- pdffonts 202 203 add_executable(pdffonts 204 $<TARGET_OBJECTS:xpdf_objs> 205 pdffonts.cc 206 ${MANIFEST} 207 ) 208 target_link_libraries(pdffonts goo fofi 209 ${PAPER_LIBRARY} 210 ${LCMS_LIBRARY} 211 ${FONTCONFIG_LIBRARY} 212 ${CMAKE_THREAD_LIBS_INIT}) 213 install(TARGETS pdffonts RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 214 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdffonts.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 215 216 #--- pdfdetach 217 218 add_executable(pdfdetach 219 $<TARGET_OBJECTS:xpdf_objs> 220 pdfdetach.cc 221 ${MANIFEST} 222 ) 223 target_link_libraries(pdfdetach goo fofi 224 ${PAPER_LIBRARY} 225 ${LCMS_LIBRARY} 226 ${FONTCONFIG_LIBRARY} 227 ${CMAKE_THREAD_LIBS_INIT}) 228 install(TARGETS pdfdetach RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 229 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdfdetach.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 230 231 #--- pdftoppm 232 233 if (HAVE_SPLASH) 234 add_executable(pdftoppm 235 $<TARGET_OBJECTS:xpdf_objs> 236 ShadingImage.cc 237 SplashOutputDev.cc 238 pdftoppm.cc 239 ${MANIFEST} 240 ) 241 target_link_libraries(pdftoppm goo fofi splash 242 ${PAPER_LIBRARY} 243 ${FREETYPE_LIBRARY} ${FREETYPE_OTHER_LIBS} 244 ${DTYPE_LIBRARY} 245 ${LCMS_LIBRARY} 246 ${FONTCONFIG_LIBRARY} 247 ${CMAKE_THREAD_LIBS_INIT}) 248 install(TARGETS pdftoppm RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 249 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdftoppm.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 250 endif () 251 252 #--- pdftopng 253 254 if (HAVE_SPLASH AND PNG_FOUND) 255 add_executable(pdftopng 256 $<TARGET_OBJECTS:xpdf_objs> 257 ShadingImage.cc 258 SplashOutputDev.cc 259 pdftopng.cc 260 ${MANIFEST} 261 ) 262 target_link_libraries(pdftopng goo fofi splash 263 ${PAPER_LIBRARY} 264 ${FREETYPE_LIBRARY} ${FREETYPE_OTHER_LIBS} 265 ${DTYPE_LIBRARY} 266 ${LCMS_LIBRARY} 267 ${PNG_LIBRARIES} 268 ${FONTCONFIG_LIBRARY} 269 ${CMAKE_THREAD_LIBS_INIT}) 270 install(TARGETS pdftopng RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 271 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdftopng.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 272 endif () 273 274 #--- pdfimages 275 276 add_executable(pdfimages 277 $<TARGET_OBJECTS:xpdf_objs> 278 ImageOutputDev.cc 279 pdfimages.cc 280 ${MANIFEST} 281 ) 282 target_link_libraries(pdfimages goo fofi 283 ${PAPER_LIBRARY} 284 ${LCMS_LIBRARY} 285 ${FONTCONFIG_LIBRARY} 286 ${CMAKE_THREAD_LIBS_INIT}) 287 install(TARGETS pdfimages RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) 288 install(FILES ${PROJECT_SOURCE_DIR}/doc/pdfimages.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) 289 290 #--- xpdfrc man page 291 292 install(FILES ${PROJECT_SOURCE_DIR}/doc/xpdfrc.5 DESTINATION ${CMAKE_INSTALL_MANDIR}/man5)