Kodi build environment for vero5

I’m trying to set up my vero5 to build a couple binary addons. I know I had done this back in the Leia days on the 4k. I’m looking in the osmc repo from github, but for the life of me I cannot find your kodi/xbmc fork code in there.

I assume you are building off an osmc oriented fork of xbmc? or do you roll all your osmc updates directly back into the mainline xbmc repo now and should I just clone main xbmc repo to set up building the addons off that instead?

To build kodi:

git clone https://github.com/osmc/osmc.git
cd osmc/package/mediacenter-osmc
./build.sh vero5

That should give you a osmc/package/media-center/src/[ checksum-like-name ]/, which is where you have the kodi file structure.

I soft linked that folder to a /home/osmc/kodi, and used that for building bin-addons.

All this is from memory…

make vero5 is the official command. Probably just calls build.sh though.

If starting from nothing, the build script may miss a dependency or two but you will see what’s missing as you go along.

Yeah, that’s right. Since I fiddle with build script so much, I got it mixed up.

I should probably resume my efforts on emulators again. The arm binary repo is so old, would be great to have arm64 version of it. Or focus some efforts on moonlight client again.

Thanks @grahamh

I want to build against the Nexus branch (since that is what is currently running in osmc). However, the makefile for the Nexus branch does not appear to have vero5 as an option.

osmc@osmc5:/mnt/v1/build/osmc/package/mediacenter-osmc$ cat Makefile 
eall:
	@echo "Specify a target:\nmake rbp2\nmake rbp4\nmake vero3\n"

rbp2:
	sudo bash build.sh "rbp2"

rbp4:
	sudo bash build.sh "rbp4"

vero3:
	sudo bash build.sh "vero3"

clean:
	sudo rm -f *.deb > /dev/null 2>&1
	sudo rm -rf files/usr > /dev/null 2>&1
	sudo rm -rf files-debug/usr > /dev/null 2>&1

Presumably, the master branch is current development work, correct? (maybe Omega dev work already?)

Kodi Omega hasn’t been branched yet - but we are tracking the betas and have some builds for them.

Use master osmc/package/mediacenter-osmc/Makefile at master · osmc/osmc · GitHub

We don’t do the branching like Kodi do. We don’t do backporting. Master is current, on Nexus.

Thanks all.

I now have visualization.projectm successfully compiled and working on my vero5.

I thought it would be more tricky, but once I told it to compile to render with gles, it just worked.

If there any changes you’d like to make us include as part of a standard release I’m all ears. It will save you having to manually build each release

Sam

@grahamh has it right.

We do backporting – but once a new Kodi release is out, they don’t do backporting.
The Nexus branch you see will be the initial porting branch and won’t be synced with new changes.

I’ve discovered that the kodi addon as-is is somewhat behind the times compared to the source project… It is using an older, out-of-date version of the presets, and doesn’t match the current organization (projectM now has a larger set of default presets organized into muti-level nested categories) and it is missing the texture files (that many presets use to generate their graphics). It also forces you to rotate though the list of presets from whatever pack you choose (no option to just stay on one) and does not allow you to pick/choose the list of your preferred presets.

I also think it would be a cool feature to change the preset when the song changes. I assume the addon can get notified of that, but I’ve never looked into that side of things.

I think I’m gonna end up forking it to modernize the presets and settings management.

meanwhile, if you want to roll it into the osmc release, here is my build script:

#!/bin/bash
cd visualization.projectm
#git pull
mkdir build
cd build

cmake -DADDONS_TO_BUILD=visualization.projectm  \
  -DADDON_EXTRA_ARGS="-DAPP_RENDER_SYSTEM=gles" \
  -DADDON_SRC_PREFIX=../.. \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_INSTALL_PREFIX=../../xbmc/kodi-build/addons \
  -DPACKAGE_ZIP=1 \
  ../../xbmc/cmake/addons

make

Although it does not generate a zip (which I thought the ZIP cmake arg was supposed to make it do… ), however, the unziped addon is available under the build/.install directory

btw, the current “Omega” branch of of the addon works just fine when dropped into Nexus (at least on the vero5)

How would you adapt this cmake command line to use armv7-toolchain-osmc to make sure to build for arch armv7 in case you do not build from same arch (so not on the vero 5 it-self).
Thanks

You can use chroot to build with the armv7 toolchain.

Thanks, works perfectly to build inside the chroot.
(Sorry for the confusion, i thought at first the path of the toolchain was supposed to be passed as an extra args…)

1 Like