ScenicFramework / scenic_driver_local

Local rendering driver for Scenic
Apache License 2.0
9 stars 13 forks source link

GCC error couldn't compile #70

Closed steffenix closed 2 months ago

steffenix commented 3 months ago

I am getting the following error when running mix compile.

Generated scenic_driver_local app
SCENIC_LOCAL_TARGET: cairo-fb
SCENIC_LOCAL_GL: gles3
------ no SCENIC_LOCAL_TARGET set ------
If you get here, then you are probably using a custom Nerves system
Please export/set SCENIC_LOCAL_TARGET to one of [glfw, bcm, drm]
If you are running on a desktop machine, pick: glfw
For any varient of rpi <= 3, pick: bcm
For any varient of rpi >= 4, pick: drm
For any varient of bbb, pick: drm
example for a custom rpi3 build system:
export SCENIC_LOCAL_TARGET=bcm
For bbb, you also need to set SCENIC_LOCAL_GL=gles2
For >= rpi4, you also need to set SCENIC_LOCAL_GL=gles3
----------------------------------------
mkdir -p /Users/user/Repositories/home_screen/_build/rpi5_dev/lib/scenic_driver_local/priv
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/aarch64-nerves-linux-gnu-gcc -mabi=lp64 -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 -fstack-protector-strong -mcpu=cortex-a76 -fPIE -pie -Wl,-z,now -Wl,-z,relro -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -pipe -O2 --sysroot /Users/user/.nerves/artifacts/nerves_system_rpi5-portable-0.2.1/staging -o /Users/user/Repositories/home_screen/_build/rpi5_dev/lib/scenic_driver_local/priv/scenic_driver_local c_src/main.c c_src/nanovg/nanovg.c c_src/comms.c c_src/unix_comms.c c_src/utils.c c_src/script.c c_src/image.c c_src/font.c c_src/tommyds/src/tommyhashlin.c c_src/tommyds/src/tommyhash.c --sysroot=/Users/user/.nerves/artifacts/nerves_system_rpi5-portable-0.2.1/staging
In file included from c_src/tommyds/src/tommyhash.h:35,
                 from c_src/tommyds/src/tommyhashlin.h:143,
                 from c_src/tommyds/src/tommyhashlin.c:28:
c_src/tommyds/src/tommyhashlin.c: In function 'tommy_hashlin_done':
c_src/tommyds/src/tommytypes.h:102:20: warning: 'free' called on pointer '*(tommy_hashlin_node ***)((char *)hashlin+ ivtmp*8)' with nonzero offset [512, 17179869184] [-Wfree-nonheap-object]
  102 | #define tommy_free free
c_src/tommyds/src/tommyhashlin.c:82:17: note: in expansion of macro 'tommy_free'
   82 |                 tommy_free(&segment[((tommy_ptrdiff_t)1) << i]);
      |                 ^~~~~~~~~~
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//ccf2cNGv.o: in function `main':
main.c:(.text.startup+0x194): undefined reference to `device_init'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: main.c:(.text.startup+0x1c0): undefined reference to `device_poll'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: main.c:(.text.startup+0x1d8): undefined reference to `device_close'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `stbtt__tesselate_cubic':
nanovg.c:(.text+0x1c60): undefined reference to `sqrt'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1ca8): undefined reference to `sqrt'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1cf4): undefined reference to `sqrt'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvg__expandStroke.isra.0':
nanovg.c:(.text+0xe950): undefined reference to `acosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xec78): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xec88): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xed2c): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xedd4): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xede8): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xee98): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xf040): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0xf31c): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `fons__getGlyph':
nanovg.c:(.text+0x124f8): undefined reference to `expf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `stbtt_GetGlyphSDF':
nanovg.c:(.text+0x13cf8): undefined reference to `fmod'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1448c): undefined reference to `sqrtf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14638): undefined reference to `sqrtf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14714): undefined reference to `sqrtf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14794): undefined reference to `sqrt'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14804): undefined reference to `acos'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14820): undefined reference to `cos'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1483c): undefined reference to `cos'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14934): undefined reference to `pow'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x149b0): undefined reference to `pow'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14a3c): undefined reference to `pow'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14abc): undefined reference to `pow'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x14b5c): undefined reference to `sqrtf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `stbi__load_flip':
nanovg.c:(.text+0x198b4): undefined reference to `pow'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `stbi__loadf_main':
nanovg.c:(.text+0x1ab18): undefined reference to `pow'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgHSLA':
nanovg.c:(.text+0x1c2c0): undefined reference to `fmodf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgTransformRotate':
nanovg.c:(.text+0x1c4f8): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgTransformSkewX':
nanovg.c:(.text+0x1c538): undefined reference to `tanf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgTransformSkewY':
nanovg.c:(.text+0x1c578): undefined reference to `tanf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgRotate':
nanovg.c:(.text+0x1cee0): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgSkewX':
nanovg.c:(.text+0x1cf88): undefined reference to `tanf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgSkewY':
nanovg.c:(.text+0x1d028): undefined reference to `tanf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgImagePattern':
nanovg.c:(.text+0x1da48): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgArc':
nanovg.c:(.text+0x1e26c): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e320): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e428): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e4cc): undefined reference to `sincosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//cceZwFFO.o: in function `nvgArcTo':
nanovg.c:(.text+0x1e7a8): undefined reference to `acosf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e7b4): undefined reference to `tanf'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e804): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e814): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e838): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: nanovg.c:(.text+0x1e848): undefined reference to `atan2f'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//ccEK5s2U.o: in function `render':
comms.c:(.text+0xd1c): undefined reference to `device_begin_render'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: comms.c:(.text+0xd78): undefined reference to `device_end_render'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//ccEK5s2U.o: in function `clear_color':
comms.c:(.text+0x10c8): undefined reference to `device_clear_color'
/Users/user/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-darwin_arm-13.2.0/bin/../lib/gcc/aarch64-nerves-linux-gnu/13.2.0/../../../../aarch64-nerves-linux-gnu/bin/ld: /var/folders/jp/66r7_d3d61g1hpzz7w6w28hc0000gq/T//ccEJl14D.o: in function `check_gl_error':
utils.c:(.text+0x10): undefined reference to `device_gl_error'
collect2: error: ld returned 1 exit status
make: *** [/Users/user/Repositories/home_screen/_build/rpi5_dev/lib/scenic_driver_local/priv/scenic_driver_local] Error 1

This is my mix.exs file:

defmodule HomeScreen.MixProject do
  use Mix.Project

  @app :home_screen
  @version "0.1.0"
  @all_targets [
    :rpi,
    :rpi0,
    :rpi2,
    :rpi3,
    :rpi3a,
    :rpi4,
    :rpi5,
    :bbb,
    :osd32mp1,
    :x86_64,
    :grisp2,
    :mangopi_mq_pro
  ]

  def project do
    [
      app: @app,
      version: @version,
      elixir: "~> 1.11",
      archives: [nerves_bootstrap: "~> 1.12"],
      start_permanent: Mix.env() == :prod,
      deps: deps(),
      releases: [{@app, release()}],
      preferred_cli_target: [run: :host, test: :host]
    ]
  end

  # Run "mix help compile.app" to learn about applications.
  def application do
    [
      mod: {HomeScreen.Application, []},
      extra_applications: [:logger, :runtime_tools, :scenic]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      # Dependencies for all targets
      {:nerves, "~> 1.10", runtime: false},
      {:shoehorn, "~> 0.9.1"},
      {:ring_logger, "~> 0.10.0"},
      {:toolshed, "~> 0.3.0"},

      # Allow Nerves.Runtime on host to support development, testing and CI.
      # See config/host.exs for usage.
      {:nerves_runtime, "~> 0.13.0"},

      # Dependencies for all targets except :host
      {:nerves_pack, "~> 0.7.0", targets: @all_targets},

      # Dependencies for specific targets
      # NOTE: It's generally low risk and recommended to follow minor version
      # bumps to Nerves systems. Since these include Linux kernel and Erlang
      # version updates, please review their release notes in case
      # changes to your application are needed.
      {:nerves_system_rpi, "~> 1.24", runtime: false, targets: :rpi},
      {:nerves_system_rpi0, "~> 1.24", runtime: false, targets: :rpi0},
      {:nerves_system_rpi2, "~> 1.24", runtime: false, targets: :rpi2},
      {:nerves_system_rpi3, "~> 1.24", runtime: false, targets: :rpi3},
      {:nerves_system_rpi3a, "~> 1.24", runtime: false, targets: :rpi3a},
      {:nerves_system_rpi4, "~> 1.24", runtime: false, targets: :rpi4},
      {:nerves_system_rpi5, "~> 0.2.1", runtime: false, targets: :rpi5},
      {:nerves_system_bbb, "~> 2.19", runtime: false, targets: :bbb},
      {:nerves_system_osd32mp1, "~> 0.15", runtime: false, targets: :osd32mp1},
      {:nerves_system_x86_64, "~> 1.24", runtime: false, targets: :x86_64},
      {:nerves_system_grisp2, "~> 0.8", runtime: false, targets: :grisp2},
      {:nerves_system_mangopi_mq_pro, "~> 0.6", runtime: false, targets: :mangopi_mq_pro},
      # Scenic dependencies
      {:scenic_driver_local, "~> 0.11.0"},
      {:scenic_driver_inky,
       github: "pappersverk/scenic_driver_inky",
       targets: [:rpi, :rpi0, :rpi2, :rpi3, :rpi3a, :rpi4, :rpi5]},
      {:scenic, "~> 0.11.1"},
      # Override
      {:elixir_make, "~> 0.7.7"},
      # utils
      {:jason, "~> 1.4.1"},
      # Blockchain
      {:ex_keccak, "~> 0.7.4"},
      {:rustler, ">= 0.0.0", optional: true},
      {:ethers, "~> 0.4.5"},
      {:websockex, "~> 0.4.3"},
      # SQL
      {:ecto_sqlite3, "~> 0.15.0"}
    ]
  end

  def release do
    [
      overwrite: true,
      # Erlang distribution is not started automatically.
      # See https://hexdocs.pm/nerves_pack/readme.html#erlang-distribution
      cookie: "#{@app}_cookie",
      include_erts: &Nerves.Release.erts/0,
      steps: [&Nerves.Release.init/1, :assemble],
      strip_beams: Mix.env() == :prod or [keep: ["Docs"]]
    ]
  end
end

My env:

Nerves environment
  MIX_TARGET:   rpi5
  MIX_ENV:      dev
  SCENIC_LOCAL_TARGET: cairo-fb
  SCENIC_LOCAL_GL: gles3
steffenix commented 3 months ago

Using SCENIC_LOCAL_TARGET: drm instead of SCENIC_LOCAL_TARGET: cairo-fb run with success.

ringlej commented 3 months ago

This is because cairo-fb doesn't have support in any release yet. You can try cairo-fb with:

 {:scenic_driver_local, github: "ScenicFramework/scenic_driver_local", ref: "main"}
crertel commented 3 months ago

@steffenix did that work for you?

steffenix commented 2 months ago

I have switched to a pi3a because rpi5 as a different graphics technology

crertel commented 2 months ago

@steffenix thank you for the update. I'm closing this for now--hopefully when 0.12 is out it'll make life easier for folks.