Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmake] Improve documentation #10538

Merged
merged 1 commit into from Oct 7, 2016

Conversation

@fetzerch
Copy link
Member

commented Sep 22, 2016

Small improvements for the CMake user documentation: Preview

@mention-bot

This comment has been minimized.

Copy link

commented Sep 22, 2016

@fetzerch, thank you for improving kodi! According to the last 5 commits, we found the potential reviewers: @AchimTuran, @hudokkow and @smspillaz . Final approval needs to be given by the componenent maintainer.

@wsnipex

This comment has been minimized.

Copy link
Member

commented Sep 23, 2016

nice! Can you also add a section on building binary addons?

cmake --build . --config "Release" --target "dmg" # or: make dmg
```

#### IOS package generation

This comment has been minimized.

Copy link
@Jalle19

Jalle19 Sep 24, 2016

Member

It's iOS, not IOS which is a Cisco brand.

@fritsch

This comment has been minimized.

Copy link
Member

commented Sep 24, 2016

Tank you very much!

@fetzerch fetzerch force-pushed the fetzerch:cmake_docs branch from 9592b28 to c541790 Sep 24, 2016

@fetzerch

This comment has been minimized.

Copy link
Member Author

commented Sep 24, 2016

@wsnipex: Added section for binary addons. I'm sure there are at least 5 more ways to build addons ;)
@Jalle19: Nitpicker ;P Changed also OSX to macOS.


Code coverage (with Gcov, LCOV and Gcovr) can be built on Linux:

- CMake has to be executed with `-DCMAKE_BUILD_TYPE=Coverage`
- `make coverage` generates an HTML code coverage report.
- `make coverage_xml` generates an XML code coverage report.

## Building binary addons

This comment has been minimized.

Copy link
@FernetMenta

FernetMenta Sep 24, 2016

Member

what audience is this targeted to? developers, in particular developers who build new addons, need to build this differently.
this doc should stress the pitfall: if you built addon 1, you can't build addon 2 unless deleting the bootsstrap dir first.

This comment has been minimized.

Copy link
@fetzerch

fetzerch Sep 24, 2016

Author Member

My main usecase when adding the make binary-addons was testing packaging for osx/ios/android. I thought it would be useful also for users that build kodi, but don't develop addons.
I'll make this more clear in the documentation.

Since I didn't yet have played much with the binary-addon build system, maybe you, @wsnipex, @hudokkow, @garbear or @AchimTuran can help documenting their workflow. That would also make it more clear to me what issues you currently face when working on the addons.

This comment has been minimized.

Copy link
@FernetMenta

FernetMenta Sep 24, 2016

Member

see my post on the forum: http://forum.kodi.tv/showthread.php?tid=219166&pid=1934922#pid1934922
developing addons is cumbersome. if the addon does not exist in our binary-addon-repo you have to create a folder manually in project/cmake/addons/addons or the build systems fails silently

This comment has been minimized.

Copy link
@fetzerch

fetzerch Sep 24, 2016

Author Member

Let me know if it's acceptable now. We can always incrementally improve it as we go on.

@fetzerch fetzerch force-pushed the fetzerch:cmake_docs branch from c541790 to 9cde516 Sep 24, 2016


```
mkdir pvr.demo-build && cd pvr.demo-build
cmake -DCMAKE_PREFIX_PATH=<KODI_BUILD_DIR>/build -DCORE_BUILD_DIR=<KODI_BUILD_DIR> <pvr.demo-SRC>

This comment has been minimized.

Copy link
@FernetMenta

FernetMenta Sep 24, 2016

Member
  • in 99.99% of all cases devs want to build debug
  • there was confusion about whether the path to addon src must be relative or absolute. would be nice if this was clarified here.
  • the bootstrap issue should be either fixed or documented

This comment has been minimized.

Copy link
@fetzerch

fetzerch Sep 24, 2016

Author Member

Thanks, updated.

For the bootstrap issue, I just mentioned that it only works for existing addons. If you try to build a non existing addon, make binary-addon fails with "No addons available to be built".
There's certainly more work needed for both: fixing and documenting.

@fetzerch fetzerch force-pushed the fetzerch:cmake_docs branch from 9cde516 to 2e97126 Sep 24, 2016

@fetzerch fetzerch force-pushed the fetzerch:cmake_docs branch from 2e97126 to 43215cc Sep 24, 2016

@garbear

This comment has been minimized.

Copy link
Member

commented Sep 24, 2016

Here's the instructions I wrote a long time ago (they are now out of date): https://github.com/kodi-game/peripheral.joystick

Notice separate sections for building vs developing

@AchimTuran

This comment has been minimized.

Copy link
Member

commented Sep 24, 2016

Here you can see my current scripts for developing my addons.
https://github.com/AchimTuran/xbmc/tree/AudioDSP/V2/usability_core_fixes/tools/windows/buildtools
Furthermore here you can see some of my notes to build binary addons locally.
https://github.com/kodi-adsp/adsp.biquad.filters/blob/master/README.md

Currently I miss source groups for binary Addon workspaces. Here is a first workaround, it could be improved if we can use the macros from the core build system. But I don't know how to include on cmake file into another.
AchimTuran@8295db8

@fetzerch

This comment has been minimized.

Copy link
Member Author

commented Oct 7, 2016

Merging this as it's already an improvement, will improve the addon docs further on in a separate iteration.

@fetzerch fetzerch merged commit 2b4edce into xbmc:master Oct 7, 2016

0 of 2 checks passed

continuous-integration/appveyor/pr AppVeyor build failed
Details
continuous-integration/travis-ci/pr The Travis CI build failed
Details

@fetzerch fetzerch deleted the fetzerch:cmake_docs branch Oct 7, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants
You can’t perform that action at this time.