1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
cmake_minimum_required (VERSION 3.6)
project (PDFMixTool VERSION 1.2.1 LANGUAGES CXX)
include(GNUInstallDirs)
include(FindPkgConfig)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# library: qpdf
pkg_check_modules(QPDF REQUIRED libqpdf)
if (DEFINED QPDF_VERSION)
string(REPLACE "." ";" QPDF_VERSION_LIST ${QPDF_VERSION})
list(GET QPDF_VERSION_LIST 0 QPDF_VERSION_MAJOR)
else()
set(QPDF_VERSION_MAJOR 10)
endif()
# library: imagemagick/graphicsmagick
if(USE_GRAPHICSMAGICK)
pkg_check_modules(MAGICK REQUIRED GraphicsMagick++)
else()
pkg_check_modules(MAGICK REQUIRED Magick++)
endif(USE_GRAPHICSMAGICK)
# library: poppler-qt6
pkg_check_modules(POPPLER_QT6 REQUIRED poppler-qt6)
# library: qt
find_package(Qt6 REQUIRED COMPONENTS Widgets SvgWidgets Xml LinguistTools)
configure_file(src/pdf_edit_lib/qpdf_version.h.in qpdf_version.h @ONLY)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
file(GLOB TS_FILES
LIST_DIRECTORIES false
languages/pdfmixtool_*.ts
)
qt6_add_translation(QM_FILES ${TS_FILES} resources/pdfmixtool_en.ts)
set(TRANSLATIONS_QRC "${CMAKE_CURRENT_BINARY_DIR}/tr.qrc")
file(WRITE ${TRANSLATIONS_QRC} "<RCC><qresource prefix=\"/tr\">")
foreach(QM_FILE ${QM_FILES})
get_filename_component(QM_FILE_NAME ${QM_FILE} NAME)
file(APPEND ${TRANSLATIONS_QRC} "<file>${QM_FILE_NAME}</file>")
endforeach()
file(APPEND ${TRANSLATIONS_QRC} "</qresource></RCC>")
configure_file(src/libraries.h.in libraries.h @ONLY)
set(
SRCS
src/main.cpp
src/aboutdialog.cpp
src/aboutdialog.h
src/editmultipageprofiledialog.cpp
src/editmultipageprofiledialog.h
src/editpdfentrydialog.cpp
src/editpdfentrydialog.h
src/gui_utils.cpp
src/gui_utils.h
src/inputpdffiledelegate.cpp
src/inputpdffiledelegate.h
src/inputpdffilewidget.cpp
src/inputpdffilewidget.h
src/libraries.h.in
src/mainwindow.cpp
src/mainwindow.h
src/mouseeventfilter.cpp
src/mouseeventfilter.h
src/multipageprofilesmanager.cpp
src/multipageprofilesmanager.h
src/pdf_edit_lib/definitions.cpp
src/pdf_edit_lib/definitions.h
src/pdf_edit_lib/pdf_editor.cpp
src/pdf_edit_lib/pdf_editor.h
src/pdf_edit_lib/pdf_info.cpp
src/pdf_edit_lib/pdf_info.h
src/pdf_edit_lib/qpdf_version.h.in
src/operations/abstract_operation.cpp
src/operations/abstract_operation.h
src/operations/add_empty_pages.cpp
src/operations/add_empty_pages.h
src/operations/alternate_mix.cpp
src/operations/alternate_mix.h
src/operations/booklet.cpp
src/operations/booklet.h
src/operations/crop.cpp
src/operations/crop.h
src/operations/delete_pages.cpp
src/operations/delete_pages.h
src/operations/edit_document_info.cpp
src/operations/edit_document_info.h
src/operations/edit_page_layout.cpp
src/operations/edit_page_layout.h
src/operations/extract_images.cpp
src/operations/extract_images.h
src/operations/extract_pages.cpp
src/operations/extract_pages.h
src/operations/merge.cpp
src/operations/merge.h
src/operations/rotate.cpp
src/operations/rotate.h
src/widgets/double_spin_box.cpp
src/widgets/double_spin_box.h
src/widgets/multipage_editor.cpp
src/widgets/multipage_editor.h
src/widgets/operation_item_delegate.cpp
src/widgets/operation_item_delegate.h
src/widgets/output_preview.cpp
src/widgets/output_preview.h
src/widgets/pages_selector.cpp
src/widgets/pages_selector.h
src/widgets/pdfinfolabel.cpp
src/widgets/pdfinfolabel.h
)
add_executable(
pdfmixtool
${SRCS}
resources/resources.qrc
${TRANSLATIONS_QRC}
)
target_include_directories(
pdfmixtool
PUBLIC
${MAGICK_INCLUDE_DIRS}
)
target_link_libraries(
pdfmixtool
PUBLIC
qpdf
Qt6::Widgets
Qt6::SvgWidgets
Qt6::Xml
${MAGICK_LIBRARIES}
poppler-qt6
)
target_compile_options(
pdfmixtool
PUBLIC
${MAGICK_CFLAGS_OTHER}
)
INSTALL(TARGETS pdfmixtool RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
INSTALL(FILES resources/eu.scarpetta.PDFMixTool.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
INSTALL(FILES resources/eu.scarpetta.PDFMixTool.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
INSTALL(FILES resources/icon.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps RENAME eu.scarpetta.PDFMixTool.svg)
INSTALL(FILES resources/icon_48.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps RENAME eu.scarpetta.PDFMixTool.png)
INSTALL(FILES resources/icon_64.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/64x64/apps RENAME eu.scarpetta.PDFMixTool.png)
INSTALL(FILES resources/icon_128.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps RENAME eu.scarpetta.PDFMixTool.png)
INSTALL(FILES resources/icon_256.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps RENAME eu.scarpetta.PDFMixTool.png)
|