我正在尝试为基于 sdl2 的程序制作一个 snap 包,该程序运行完美,它使用两种字体:cruft.ttf
和GraffitiPaintBrush.tff
。我的问题是我不知道如何在 snap 包中打包/包含字体。
我阅读了文档,没有发现任何有用的东西,除了环境变量但它只谈论了应该把东西放在哪里,而不是如何去做。
另外,我无法使用变量(例如$HOME
或$SNAP_COMMON
),因为 SDL2 无法读取和解释它们。SDL2 只能处理文字目录,例如,TTF_OpenFont( "home/user_name/fonts/cruft.ttf", 50 );
这是我的 snapcraft.yaml 文件
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: devmode # use 'strict' once you have the right plugs and slots
apps:
tic-tac-toe-game:
command: bin/tic-tac-toe-game
parts:
my-part:
source: .
organize:
bin/tic-tac-toe-game: bin/
font/cruft.ttf: bin/
font/GraffitiPaintBrush.tff: bin/
font/README-font: bin/
plugin: dump
stage-packages:
- libsdl2-2.0-0
- libsdl2-image-2.0-0
- libsdl2-ttf-2.0-0
编辑:
我尝试将所有内容放在同一个目录中,正如我在 snapcraft.yaml 文件中看到的那样,但没有成功。SDL2 一直抱怨无法打开字体 (SDL2: Couldn't open cruft.ttf
)
我还在程序中添加了此行,std::cout << SDL_GetBasePath() << "\n";
它应该在终端中打印正在执行二进制文件的目录。这是输出:tic-tac-toe-game_1.0_amd64.snap