Warning, /graphics/kxstitch/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16.0)
0002
0003 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
0004
0005 project (kxstitch VERSION "2.2.0")
0006
0007 find_package (ECM REQUIRED NO_MODULE)
0008 set (CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0009
0010 include (KDEInstallDirs)
0011 include (KDECMakeSettings)
0012 include (KDECompilerSettings NO_POLICY_SCOPE)
0013 include (ECMSetupVersion)
0014 include (ECMInstallIcons)
0015 include (FeatureSummary)
0016
0017 kde_enable_exceptions()
0018
0019 find_package (Qt5 CONFIG REQUIRED
0020 Core
0021 PrintSupport
0022 Widgets
0023 )
0024
0025 find_package (KF5DocTools)
0026
0027 find_package (KF5 REQUIRED COMPONENTS
0028 Config
0029 ConfigWidgets
0030 Completion
0031 GuiAddons
0032 I18n
0033 KIO
0034 TextWidgets
0035 WidgetsAddons
0036 XmlGui
0037 )
0038
0039 find_package (ImageMagick COMPONENTS MagickCore Magick++ REQUIRED)
0040 find_package (Doxygen)
0041 find_package (SharedMimeInfo)
0042
0043 if (DOXYGEN_FOUND)
0044 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
0045 add_custom_target (doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
0046 WORKING_DIRECTORY ${CMAKE_CURENT_BINARY_DIR}
0047 COMMENT "Generating API documentation with Doxygen" VERBATIM)
0048 endif (DOXYGEN_FOUND)
0049
0050 include_directories (BEFORE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src)
0051 # use both the _DIR and _DIRS variables, since the former are available
0052 # only in older cmake versions, while the latter only in newer ones
0053 include_directories (SYSTEM ${ImageMagick_Magick++_INCLUDE_DIR} ${ImageMagick_MagickCore_INCLUDE_DIR})
0054 include_directories (SYSTEM ${ImageMagick_Magick++_INCLUDE_DIRS} ${ImageMagick_MagickCore_INCLUDE_DIRS})
0055
0056 ecm_setup_version(${kxstitch_VERSION}
0057 VARIABLE_PREFIX KXSTITCH
0058 VERSION_HEADER Version.h
0059 )
0060
0061 set (kxstitch_SRCS
0062 src/BackgroundImage.cpp
0063 src/BackgroundImages.cpp
0064 src/Boundary.cpp
0065 src/Commands.cpp
0066 src/ConfigurationDialogs.cpp
0067 src/Document.cpp
0068 src/DocumentFloss.cpp
0069 src/DocumentPalette.cpp
0070 src/Editor.cpp
0071 src/Element.cpp
0072 src/Exceptions.cpp
0073 src/Floss.cpp
0074 src/FlossScheme.cpp
0075 src/KeycodeLineEdit.cpp
0076 src/Layer.cpp
0077 src/Layers.cpp
0078 src/LibraryFile.cpp
0079 src/LibraryPattern.cpp
0080 src/Main.cpp
0081 src/MainWindow.cpp
0082 src/Page.cpp
0083 src/Palette.cpp
0084 src/PaperSizes.cpp
0085 src/Pattern.cpp
0086 src/Preview.cpp
0087 src/PrinterConfiguration.cpp
0088 src/Renderer.cpp
0089 src/Scale.cpp
0090 src/ScaledPixmapLabel.cpp
0091 src/SchemeManager.cpp
0092 src/SchemeParser.cpp
0093 src/Stitch.cpp
0094 src/StitchData.cpp
0095 src/Symbol.cpp
0096 src/SymbolLibrary.cpp
0097 src/SymbolManager.cpp
0098
0099 src/AlphaSelect.cpp
0100 src/CalibrateFlossDlg.cpp
0101 src/ExtendPatternDlg.cpp
0102 src/FilePropertiesDlg.cpp
0103 src/ImageElementDlg.cpp
0104 src/ImportImageDlg.cpp
0105 src/KeyElementDlg.cpp
0106 src/LibraryFilePathsDlg.cpp
0107 src/LibraryListWidget.cpp
0108 src/LibraryListWidgetItem.cpp
0109 src/LibraryManagerDlg.cpp
0110 src/LibraryPatternPropertiesDlg.cpp
0111 src/LibraryTreeWidget.cpp
0112 src/LibraryTreeWidgetItem.cpp
0113 src/NewFlossDlg.cpp
0114 src/PaletteManagerDlg.cpp
0115 src/PageLayoutEditor.cpp
0116 src/PagePreviewListWidgetItem.cpp
0117 src/PagePropertiesDlg.cpp
0118 src/PatternElementDlg.cpp
0119 src/PrintSetupDlg.cpp
0120 src/SelectArea.cpp
0121 src/SymbolListWidget.cpp
0122 src/SymbolSelectorDlg.cpp
0123 src/TextElementDlg.cpp
0124 src/TextToolDlg.cpp
0125
0126 kxstitch.qrc
0127 )
0128
0129 file(GLOB kxstitch_UI ${CMAKE_CURRENT_SOURCE_DIR}/ui/*.ui)
0130
0131 ki18n_wrap_ui(kxstitch_SRCS ${kxstitch_UI})
0132
0133 add_subdirectory(icons)
0134 add_subdirectory(schemes)
0135 add_subdirectory(symbols)
0136 add_subdirectory(library)
0137 add_subdirectory(doc)
0138
0139 kconfig_add_kcfg_files(kxstitch_SRCS configuration.kcfgc)
0140
0141 add_executable (kxstitch ${kxstitch_SRCS})
0142
0143 target_link_libraries (kxstitch
0144 Qt5::Core
0145 Qt5::PrintSupport
0146 Qt5::Widgets
0147 KF5::Completion
0148 KF5::ConfigGui
0149 KF5::GuiAddons
0150 KF5::KIOFileWidgets
0151 KF5::I18n
0152 KF5::TextWidgets
0153 KF5::WidgetsAddons
0154 KF5::XmlGui
0155 ${ImageMagick_Magick++_LIBRARY} ${ImageMagick_MagickCore_LIBRARY}
0156 )
0157
0158 set (WITH_PROFILING OFF CACHE BOOL "Build with profiling support")
0159
0160 if (WITH_PROFILING)
0161 add_definitions( -pg )
0162 set_target_properties (kxstitch PROPERTIES LINK_FLAGS -pg)
0163 endif (WITH_PROFILING)
0164
0165 if (SILENCE_DEPRECATED)
0166 add_definitions( -Wno-deprecated-declarations )
0167 endif (SILENCE_DEPRECATED)
0168
0169 exec_program (Magick++-config ARGS --cxxflags OUTPUT_VARIABLE magick_config)
0170
0171 string (REGEX MATCH "-DMAGICKCORE_HDRI_ENABLE=." magick_config_hdri ${magick_config})
0172 string (REGEX MATCH "-DMAGICKCORE_QUANTUM_DEPTH=[0-9]+" magick_config_quantum ${magick_config})
0173
0174 # earlier versions of Magick++-config don't provide the necessary options
0175 if (magick_config_hdri STREQUAL "")
0176 # set a default for MAGICKCORE_HDRI_ENABLE to 0
0177 set (magick_config_hdri "-DMAGICKCORE_HDRI_ENABLE=0")
0178 endif (magick_config_hdri STREQUAL "")
0179
0180 if (magick_config_quantum STREQUAL "")
0181 # MAGICKCORE_QUANTUM_DEPTH can also be found in the version string of an ImageMagick application
0182 exec_program (mogrify ARGS --version OUTPUT_VARIABLE mogrify_version)
0183 string (REGEX MATCH "Q8|Q16" mogrify_version_quantum ${mogrify_version})
0184
0185 if (mogrify_version_quantum STREQUAL "Q8")
0186 set (magick_config_quantum "-DMAGICKCORE_QUANTUM_DEPTH=8")
0187 else (mogrify_version_quantum STREQUAL "Q8")
0188 set (magick_config_quantum "-DMAGICKCORE_QUANTUM_DEPTH=16")
0189 endif (mogrify_version_quantum STREQUAL "Q8")
0190 endif (magick_config_quantum STREQUAL "")
0191
0192 message (STATUS "Set magic_config_quantum: " ${magick_config_quantum})
0193 message (STATUS "Set magic_config_hdri: " ${magick_config_hdri})
0194
0195 add_definitions(
0196 -DQT_NO_CAST_FROM_ASCII
0197 -DQT_NO_CAST_TO_ASCII
0198 -DQT_NO_URL_CAST_FROM_STRING
0199 ${magick_config_hdri}
0200 ${magick_config_quantum}
0201 )
0202
0203 if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
0204 message (STATUS "Processing translations")
0205 ki18n_install(po)
0206 kdoctools_install(po)
0207 endif(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
0208
0209 install (TARGETS kxstitch DESTINATION ${KDE_INSTALL_BINDIR})
0210 install (FILES kxstitch.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})
0211 install (FILES org.kde.kxstitch.desktop DESTINATION ${KDE_INSTALL_APPDIR})
0212 install (FILES org.kde.kxstitch.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0213
0214 IF (SHAREDMIMEINFO_FOUND AND IS_DIRECTORY ${KDE_INSTALL_MIMEDIR})
0215 install (FILES kxstitch.xml DESTINATION ${KDE_INSTALL_MIMEDIR})
0216 update_xdg_mimetypes (${KDE_INSTALL_MIMEDIR})
0217 ENDIF (SHAREDMIMEINFO_FOUND AND IS_DIRECTORY ${KDE_INSTALL_MIMEDIR})
0218
0219 feature_summary (WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0220