Warning, /graphics/krita/krita/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 include_directories(SYSTEM
0002     ${EIGEN3_INCLUDE_DIR}
0003     ${Vc_INCLUDE_DIR}
0004 )
0005 
0006 add_subdirectory( dtd )
0007 add_subdirectory( data )
0008 add_subdirectory( integration )
0009 # Install the application icons following the freedesktop icon theme spec
0010 add_subdirectory( "pics/branding/${BRANDING}" )
0011 
0012 if (ANDROID)
0013     include_directories (${Qt5AndroidExtras_INCLUDE_DIRS})
0014 endif()
0015 
0016 set(krita_SRCS main.cc)
0017 
0018 # Set the application icon on the application
0019 if (NOT APPLE)
0020         file(GLOB ICON_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/*-apps-krita.png")
0021 else()
0022         set(ICON_SRCS
0023              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/16-apps-krita.png"
0024              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/32-apps-krita.png"
0025              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/48-apps-krita.png"
0026              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/128-apps-krita.png"
0027              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/256-apps-krita.png"
0028              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/512-apps-krita.png"
0029              "${CMAKE_CURRENT_SOURCE_DIR}/pics/branding/${BRANDING}/1024-apps-krita.png"
0030         )
0031 endif()
0032 
0033 if (WIN32)
0034     set(krita_windows_stub_ICONS_SRCS "")
0035     ecm_add_app_icon(krita_windows_stub_ICONS_SRCS ICONS ${ICON_SRCS} OUTFILE_BASENAME krita)
0036 
0037     # This is used to generate an ICO file for the file icon, We don't actually
0038     # want to embed this icon into an EXE.
0039         file(GLOB krafile_ICON_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/*-mimetypes-application-x-krita.png")
0040     set(krafile_dummy_ICONS_SRCS "")
0041     ecm_add_app_icon(krafile_dummy_ICONS_SRCS ICONS ${krafile_ICON_SRCS} OUTFILE_BASENAME kritafile)
0042     add_library(krafile_dummy_obj OBJECT ${krafile_dummy_ICONS_SRCS})
0043 
0044     # These icons are used to replace those in the shell extension package.
0045     install(
0046         FILES
0047             ${CMAKE_CURRENT_BINARY_DIR}/krita.ico
0048             ${CMAKE_CURRENT_BINARY_DIR}/kritafile.ico
0049         DESTINATION ${CMAKE_INSTALL_PREFIX}/installer
0050     )
0051 else()
0052     ecm_add_app_icon(krita_SRCS ICONS ${ICON_SRCS})
0053 endif()
0054 
0055 # Install the mimetype icons
0056 ecm_install_icons(ICONS
0057     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/16-mimetypes-application-x-krita.png"
0058     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/22-mimetypes-application-x-krita.png"
0059     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/32-mimetypes-application-x-krita.png"
0060     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/48-mimetypes-application-x-krita.png"
0061     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/64-mimetypes-application-x-krita.png"
0062     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/128-mimetypes-application-x-krita.png"
0063     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/256-mimetypes-application-x-krita.png"
0064     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/512-mimetypes-application-x-krita.png"
0065     "${CMAKE_CURRENT_SOURCE_DIR}/pics/mimetypes/1024-mimetypes-application-x-krita.png"
0066     DESTINATION ${KDE_INSTALL_ICONDIR} THEME hicolor)
0067 
0068 # separate listing, both used by Krita and KritaSketch
0069 set(krita_QRCS
0070     ${CMAKE_SOURCE_DIR}/krita/krita.qrc
0071     ${CMAKE_SOURCE_DIR}/krita/pics/Breeze-dark/breeze-dark-icons.qrc
0072     ${CMAKE_SOURCE_DIR}/krita/pics/Breeze-light/breeze-light-icons.qrc
0073     ${CMAKE_SOURCE_DIR}/krita/pics/layerbox/layerbox-icons.qrc
0074     ${CMAKE_SOURCE_DIR}/krita/pics/layers/layers-icons.qrc
0075     ${CMAKE_SOURCE_DIR}/krita/pics/misc-light/misc-light-icons.qrc
0076     ${CMAKE_SOURCE_DIR}/krita/pics/misc-dark/misc-dark-icons.qrc
0077     ${CMAKE_SOURCE_DIR}/krita/pics/paintops/paintops-icons.qrc
0078     ${CMAKE_SOURCE_DIR}/krita/pics/tools/SVG/16/tools-svg-16-icons.qrc
0079     ${CMAKE_SOURCE_DIR}/krita/pics/tool_transform/tool-transform-icons.qrc
0080     ${CMAKE_SOURCE_DIR}/krita/pics/svg/svg-icons.qrc
0081     ${CMAKE_SOURCE_DIR}/libs/flake/flake.qrc
0082     ${CMAKE_SOURCE_DIR}/libs/widgets/kritawidgets.qrc
0083     ${CMAKE_SOURCE_DIR}/pics/icons.qrc
0084     ${CMAKE_SOURCE_DIR}/krita/data/aboutdata/aboutdata.qrc
0085     ${CMAKE_SOURCE_DIR}/krita/data/shaders/shaders.qrc
0086     ${CMAKE_SOURCE_DIR}/krita/data/cursors/cursors.qrc
0087     ${CMAKE_SOURCE_DIR}/krita/data/gamutmasks/gamutmasks.qrc
0088     ${CMAKE_SOURCE_DIR}/plugins/paintops/defaultpresets/defaultpresets.qrc
0089     ${CMAKE_SOURCE_DIR}/krita/pics/branding/${BRANDING}/branding.qrc
0090     ${CMAKE_SOURCE_DIR}/krita/data/splash/splash.qrc
0091     CACHE INTERNAL "krita_QRCS"
0092 )
0093 
0094 qt5_add_resources(krita_SRCS ${krita_QRCS})
0095 
0096 if (ANDROID)
0097     kis_add_library(krita SHARED ${krita_SRCS})
0098     target_link_libraries(krita PRIVATE Qt5::AndroidExtras)
0099 elseif (WIN32)
0100     # Build the main implementation into a DLL to be called by a stub EXE.
0101     kis_add_library(krita SHARED ${krita_SRCS})
0102     set_target_properties(krita PROPERTIES PREFIX "")
0103 else()
0104     add_executable(krita ${krita_SRCS})
0105 endif()
0106 target_link_libraries(krita
0107     PRIVATE
0108                       kritamultiarch
0109                       kritaui
0110                       Qt5::Core
0111                       Qt5::Gui
0112                       Qt5::Widgets
0113                       Qt5::Xml
0114                       Qt5::Network
0115                       Qt5::PrintSupport
0116                       Qt5::Svg
0117                       Qt5::Concurrent)
0118 if(HAVE_KCRASH)
0119     target_link_libraries(krita PRIVATE KF5::Crash)
0120 endif()
0121 
0122 if (APPLE)
0123     set(KRITA_VERSION_NUMBER_STRING "${KRITA_STABLE_VERSION_MAJOR}.${KRITA_STABLE_VERSION_MINOR}.${KRITA_VERSION_RELEASE}")
0124     set_target_properties(krita PROPERTIES INSTALL_RPATH "@loader_path/../../../../lib;@loader_path/../lib;
0125         @loader_path/../Frameworks;@executable_path/../../../../lib;@executable_path/../lib;@executable_path/../Frameworks")
0126     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.template)
0127     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.krita")
0128     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Krita")
0129     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_ICON_FILE "krita_SRCS.icns")
0130     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_LONG_VERSION_STRING ${KRITA_VERSION_STRING})
0131     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING ${KRITA_VERSION_NUMBER_STRING})
0132     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION ${KRITA_VERSION_NUMBER_STRING})
0133     set_target_properties(krita PROPERTIES MACOSX_BUNDLE_COPYRIGHT "GNU Public License, V2 or, at your option, any later version.")
0134 endif ()
0135 
0136 if (NOT ANDROID)
0137   set(KRITAVERSION_SRCS kritaversion.cpp)
0138   add_executable(krita_version ${KRITAVERSION_SRCS})
0139   target_link_libraries(krita_version
0140     PRIVATE
0141         Qt5::Core
0142         kritaversion
0143   )
0144 
0145 
0146   install(TARGETS krita_version ${INSTALL_TARGETS_DEFAULT_ARGS})
0147 endif()
0148 
0149 
0150 install(TARGETS krita ${INSTALL_TARGETS_DEFAULT_ARGS})
0151 install(FILES org.kde.krita.desktop DESTINATION ${KDE_INSTALL_APPDIR})
0152 install(FILES  krita.action kritamenu.action DESTINATION ${DATA_INSTALL_DIR}/krita/actions)
0153 install(FILES  org.kde.krita.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} )
0154 
0155 install(DIRECTORY DESTINATION ${DATA_INSTALL_DIR}/krita/shortcuts)
0156 
0157 if (WIN32)
0158     configure_file(versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc)
0159     configure_file(krita.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/krita.exe.manifest)
0160     # CMake does not know how to embed manifest on mingw, so we create our own RC file to be included
0161     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/krita.exe.manifest.rc "1 24 \"krita.exe.manifest\"\n")
0162 
0163     add_executable(krita_windows_stub_exe
0164         windows_stub_main.cpp
0165         ${krita_windows_stub_ICONS_SRCS}
0166         ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc
0167         ${CMAKE_CURRENT_BINARY_DIR}/krita.exe.manifest.rc
0168     )
0169     target_link_libraries(krita_windows_stub_exe PRIVATE krita Qt5::WinMain)
0170     set_target_properties(krita_windows_stub_exe
0171         PROPERTIES
0172             OUTPUT_NAME "krita"
0173     )
0174     if (MSVC)
0175         target_link_options(krita_windows_stub_exe PRIVATE "/DEBUG:NONE")
0176     endif()
0177     install(TARGETS krita_windows_stub_exe ${INSTALL_TARGETS_DEFAULT_ARGS})
0178 
0179     add_executable(krita_windows_stub_com
0180         windows_stub_main.cpp
0181         ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc
0182         ${CMAKE_CURRENT_BINARY_DIR}/krita.exe.manifest.rc
0183     )
0184     target_link_libraries(krita_windows_stub_com PRIVATE krita)
0185     set_target_properties(krita_windows_stub_com
0186         PROPERTIES
0187             WIN32_EXECUTABLE false
0188             OUTPUT_NAME "krita"
0189             SUFFIX ".com"
0190     )
0191     if (MSVC)
0192         target_link_options(krita_windows_stub_com PRIVATE "/DEBUG:NONE")
0193     endif()
0194     install(TARGETS krita_windows_stub_com ${INSTALL_TARGETS_DEFAULT_ARGS})
0195 endif (WIN32)