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