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 )