Warning, /graphics/glaxnimate/data/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0002 # SPDX-License-Identifier: BSD-2-Clause
0003
0004 set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM 1)
0005
0006 if ( ANDROID )
0007
0008 # The breeze-icons package approach is inspired by https://invent.kde.org/frameworks/kirigami/-/blob/kf5/KF5Kirigami2Macros.cmake
0009 include(CMakeParseArguments)
0010 include(ExternalProject)
0011
0012
0013 function(android_package_breeze_icons)
0014 set(_multiValueArgs ICONS)
0015 cmake_parse_arguments(ARG "" "" "${_multiValueArgs}" ${ARGN} )
0016
0017 if(NOT ARG_ICONS)
0018 message(FATAL_ERROR "No ICONS argument given to android_package_breeze_icons")
0019 endif()
0020
0021 function(_find_breeze_icon icon varName)
0022 #HACKY
0023 SET(path "")
0024 file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/48/${icon}.svg )
0025
0026 #search in other sizes as well
0027 if (path STREQUAL "")
0028 file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/32/${icon}.svg )
0029 if (path STREQUAL "")
0030 file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/22/${icon}.svg )
0031 if (path STREQUAL "")
0032 file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/16/${icon}.svg )
0033 endif()
0034 endif()
0035 endif()
0036 if (path STREQUAL "")
0037 file(GLOB_RECURSE path ${_BREEZEICONS_DIR}/icons/*/symbolic/${icon}.svg )
0038 endif()
0039 if (path STREQUAL "")
0040 return()
0041 endif()
0042
0043 list(LENGTH path _count_paths)
0044 if (_count_paths GREATER 1)
0045 message(WARNING "Found more than one version of '${icon}': ${path}")
0046 endif()
0047 list(GET path 0 path)
0048 get_filename_component(path "${path}" REALPATH)
0049
0050 SET(${varName} ${path} PARENT_SCOPE)
0051 endfunction()
0052
0053 if (BREEZEICONS_DIR AND NOT EXISTS ${BREEZEICONS_DIR})
0054 message(FATAL_ERROR "BREEZEICONS_DIR variable does not point to existing dir: \"${BREEZEICONS_DIR}\"")
0055 endif()
0056
0057 set(_BREEZEICONS_DIR "${BREEZEICONS_DIR}")
0058
0059 if(NOT _BREEZEICONS_DIR AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/icons/breeze-icons/icons")
0060 set(_BREEZEICONS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/icons/breeze-icons")
0061 endif()
0062
0063 #FIXME: this is a terrible hack
0064 if(NOT _BREEZEICONS_DIR)
0065 set(_BREEZEICONS_DIR "${CMAKE_BINARY_DIR}/breeze-icons/src/breeze-icons")
0066
0067 # replacement for ExternalProject_Add not yet working
0068 # first time config?
0069 if (NOT EXISTS ${_BREEZEICONS_DIR})
0070 find_package(Git)
0071 execute_process(COMMAND ${GIT_EXECUTABLE} clone --depth 1 --branch kf5 https://invent.kde.org/frameworks/breeze-icons.git ${_BREEZEICONS_DIR})
0072 endif()
0073
0074 # external projects are only pulled at make time, not configure time
0075 # so this is too late to work with the _find_breeze_icon() method
0076 # _find_breeze_icon() would need to be turned into a target/command
0077 if (FALSE)
0078 ExternalProject_Add(
0079 breeze-icons
0080 PREFIX breeze-icons
0081 GIT_REPOSITORY https://invent.kde.org/frameworks/breeze-icons.git
0082 CONFIGURE_COMMAND ""
0083 BUILD_COMMAND ""
0084 INSTALL_COMMAND ""
0085 LOG_DOWNLOAD ON
0086 )
0087 endif()
0088 endif()
0089
0090 message (STATUS "Using ${_BREEZEICONS_DIR} as breeze dir")
0091 message (STATUS "Found external breeze icons:")
0092 foreach(_iconName ${ARG_ICONS})
0093 set(_iconPath "")
0094 _find_breeze_icon(${_iconName} _iconPath)
0095 message (STATUS ${_iconPath})
0096 if (EXISTS ${_iconPath})
0097 install(FILES ${_iconPath} DESTINATION ${DATA_INSTALL}/icons/icons RENAME ${_iconName}.svg)
0098 else()
0099 message (WARNING "${_iconName} not found")
0100 endif()
0101 endforeach()
0102
0103 #generate an index.theme that qiconloader can understand
0104 file(WRITE ${CMAKE_BINARY_DIR}/index.theme "[Icon Theme]\nName=Breeze\nDirectories=icons\n[icons]\nSize=32\nType=Scalable")
0105 install(FILES ${CMAKE_BINARY_DIR}/index.theme DESTINATION ${DATA_INSTALL}/icons)
0106 endfunction()
0107
0108 android_package_breeze_icons(ICONS
0109 telegram
0110 edit-cut
0111 edit-copy
0112 edit-paste
0113 edit-delete
0114 edit-undo
0115 edit-redo
0116 edit-select
0117 edit-node
0118 edit-clear-all
0119 document-new
0120 document-open
0121 document-save
0122 document-save-as
0123 document-import
0124 document-export
0125 document-properties
0126 keyframe-add
0127 keyframe-remove
0128 keyframe-record
0129 view-preview
0130 player-time
0131 fill-color
0132 object-stroke-style
0133 question
0134 draw-brush
0135 draw-bezier-curves
0136 draw-freehand
0137 draw-rectangle
0138 draw-ellipse
0139 draw-polygon-star
0140 draw-text
0141 shapes
0142 overflow-menu
0143 media-playback-start
0144 media-playlist-repeat
0145 go-first
0146 go-previous
0147 go-next
0148 go-last
0149 layer-lower
0150 layer-raise
0151 dialog-layers
0152 smiley-shape
0153 )
0154
0155 #get_target_property(ASSETS_PATH ${PROJECT_SLUG}_apk assets)
0156 #file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/images DESTINATION ${ASSETS_PATH})
0157 #file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/templates DESTINATION ${ASSETS_PATH})
0158 else()
0159 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/themes DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0160 install(DIRECTORY themes DESTINATION ${DATA_INSTALL})
0161
0162 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/lib/python-lottie/lib/lottie DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/lib/)
0163 install(DIRECTORY lib/python-lottie/lib/lottie DESTINATION ${DATA_INSTALL}/lib/)
0164
0165 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/emoji DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0166 install(DIRECTORY emoji DESTINATION ${DATA_INSTALL})
0167 endif()
0168
0169 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/palettes DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0170 install(DIRECTORY palettes DESTINATION ${DATA_INSTALL})
0171
0172 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/images DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0173 install(DIRECTORY images DESTINATION ${DATA_INSTALL})
0174
0175 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/templates DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
0176 install(DIRECTORY templates DESTINATION ${DATA_INSTALL})
0177
0178 # Translation
0179 set(ALL_SOURCE_DIRECTORIES ${CMAKE_SOURCE_DIR}/src)
0180
0181 # Desktop
0182 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/glaxnimate.in.desktop ${CMAKE_CURRENT_BINARY_DIR}/glaxnimate.desktop)
0183 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glaxnimate.desktop DESTINATION ${DATA_INSTALL})
0184 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glaxnimate.desktop DESTINATION share/applications RENAME ${PROJECT_ID}.desktop)
0185
0186 # Misc
0187 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../AUTHORS.md ${CMAKE_CURRENT_BINARY_DIR}/AUTHORS.md COPYONLY)
0188 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../AUTHORS.md DESTINATION ${DATA_INSTALL})
0189
0190 # Icon
0191 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/logo/logo.svg ${CMAKE_CURRENT_BINARY_DIR}/images/${PROJECT_SLUG}.svg COPYONLY)
0192 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/logo/file-icon.svg ${CMAKE_CURRENT_BINARY_DIR}/images/${PROJECT_SLUG}-file.svg COPYONLY)
0193 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/images/${PROJECT_SLUG}.svg DESTINATION share/icons/hicolor/scalable/apps/ )
0194 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/images/${PROJECT_SLUG}.svg DESTINATION share/icons/hicolor/scalable/apps/ RENAME ${PROJECT_ID}.svg )
0195
0196 add_custom_command(
0197 OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/images/${PROJECT_SLUG}.png
0198 COMMAND inkscape ${CMAKE_CURRENT_SOURCE_DIR}/logo/logo.svg -o ${CMAKE_CURRENT_SOURCE_DIR}/images/${PROJECT_SLUG}.png
0199 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/logo/logo.svg
0200 )
0201 add_custom_target(
0202 logo_png
0203 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/images/${PROJECT_SLUG}.png
0204 )
0205 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/images/${PROJECT_SLUG}.png DESTINATION share/icons/hicolor/512x512/apps )
0206 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/images/${PROJECT_SLUG}.svg DESTINATION share/icons/hicolor/512x512/apps/ RENAME ${PROJECT_ID}.png )
0207
0208 # Plugins
0209 install(DIRECTORY plugins DESTINATION ${DATA_INSTALL})
0210
0211 function(plugin name)
0212 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/plugins/${name}/plugin.json ${CMAKE_CURRENT_BINARY_DIR}/plugins/${name}/plugin.json COPYONLY)
0213 foreach(file ${ARGN})
0214 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/plugins/${name}/${file} ${CMAKE_CURRENT_BINARY_DIR}/plugins/${name}/${file} COPYONLY)
0215 endforeach()
0216 endfunction()
0217
0218 plugin(
0219 Hello
0220 hello_world.py
0221 )
0222
0223 plugin(
0224 ReplaceColor
0225 replace_color.py
0226 replace.ui
0227 )
0228
0229 plugin(
0230 AnimatedRaster
0231 animated_raster.py
0232 )
0233
0234 plugin(
0235 dotLottie
0236 dotlottie.py
0237 icon.svg
0238 )
0239
0240 plugin(
0241 Synfig
0242 synfig.py
0243 )
0244
0245 plugin(
0246 HueShift
0247 hue_shift.py
0248 )
0249
0250
0251 plugin(
0252 FrameByFrame
0253 create_frames.py
0254 create_frames.ui
0255 )