include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/build_python.cmake) execute_process( COMMAND ${Python3_EXECUTABLE} -c "import PIL.features; import fontTools.ttLib; assert PIL.features.check_feature('raqm')" RESULT_VARIABLE VAMP_PILLOW_STATUS ERROR_QUIET ) if(NOT VAMP_PILLOW_STATUS EQUAL 0) message(FATAL_ERROR "Pico artwork requires Pillow with Raqm and fontTools. Install libfribidi0 and configure the Modulus assets Python group.") endif() # Zero uses packaged font files; only the Pico embeds this fixed sprite atlas. function(vamp_add_pico_artwork target) set(VAMP_PICO_ARTWORK_BINARY ${CMAKE_CURRENT_BINARY_DIR}/generated/pico/static.p4) set(VAMP_PICO_ARTWORK_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/generated/pico/artwork.S) add_custom_command( OUTPUT ${VAMP_PICO_ARTWORK_BINARY} COMMAND ${VAMP_PYTHON_COMMAND} -m generator.pico_artwork --static-output ${VAMP_PICO_ARTWORK_BINARY} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/generator/pico_artwork.py ${VAMP_SHARED_PYTHON_INPUTS} ${CMAKE_CURRENT_SOURCE_DIR}/generator/palette.json ${CMAKE_CURRENT_SOURCE_DIR}/generator/theme.py ${CMAKE_CURRENT_SOURCE_DIR}/cmake/build_python.cmake ${CMAKE_CURRENT_SOURCE_DIR}/cmake/theme.cmake ${CMAKE_CURRENT_SOURCE_DIR}/package/assets/fonts/petaluma/PetalumaScript.otf VERBATIM ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/vamp_pico/artwork.S.in ${VAMP_PICO_ARTWORK_SOURCE} @ONLY) set_source_files_properties(${VAMP_PICO_ARTWORK_SOURCE} PROPERTIES OBJECT_DEPENDS ${VAMP_PICO_ARTWORK_BINARY}) target_sources(${target} PRIVATE ${VAMP_PICO_ARTWORK_SOURCE}) endfunction()