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