如何在我的 snap 包中包含两种用于基于 sdl2 的程序的字体

如何在我的 snap 包中包含两种用于基于 sdl2 的程序的字体

我正在尝试为基于 sdl2 的程序制作一个 snap 包,该程序运行完美,它使用两种字体:cruft.ttfGraffitiPaintBrush.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

相关内容