Kodi Community Forum
Develop PVR addons with new cmake build system - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Add-ons (https://forum.kodi.tv/forumdisplay.php?fid=26)
+---- Forum: PVR (https://forum.kodi.tv/forumdisplay.php?fid=136)
+---- Thread: Develop PVR addons with new cmake build system (/showthread.php?tid=219166)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13


RE: Develop PVR addons with new cmake build system - FernetMenta - 2017-02-22

Unfortunately the bootstrapping method is cumbersome and not developer friendly. If you want to build an addon that is not the repo, you have to create some files yourself. Build for example pvr.demo and check the cmake/addons folder for generated files. Modify those to fit you local addon.


RE: Develop PVR addons with new cmake build system - Philipp91 - 2017-03-18

Does post #1 need an update (for Windows) because xbmc\project\cmake is now xbmc\cmake?

// Edit: And the names of c-flag-overrides.cmake and cxx-flag-overrides.cmake have changed.

Windows build fails on my machine: http://pastebin.com/5xVr8Ak0
Line 74-81 error C2440: "return": "PTSTR" cannot be converted to "PSTR"
regarding source line xbmc\cmake\addons\build\depends\include\p8-platform/util/StdString.h(1019): inline PSTR SST2A(PTSTR p) { return p; }


RE: Develop PVR addons with new cmake build system - popy - 2017-06-19

(2016-04-22, 00:07)tester100 Wrote:
(2015-02-21, 22:58)FernetMenta Wrote: We have changed the build system for PVR addons. Now they are built with cmake and every addon has its own repository.
CMake (http://www.cmake.org/Wiki/CMake) generates the build environment required for a particular platform.

Team-Kodi provides the infrastructure to build PVR addons for the supported plattforms. The addons are maintained in their
own repositories from where the build process loads them. The repository is specified in a .txt file in the Kodi source
tree. For the pvr.demo addon this is in home/xbmc/progs/src/xbmc/project/cmake/addons/addons/pvr.demo/pvr.demo.txt.
You can clone this repository to any location of your system. You also need to clone the Kodi repository which contains
common files, libs, and API for the addons.

For setup of an development environment follow these steps. The examples are with absolute paths. You can substitute
the path to match your systems.



Windows:

Change to addons folder:
Code:
cd D:\Projects\xbmx\xbmc\project\cmake\addons\build

Generate build environment with config for debugging. This command generates a Visual Studio 2013 solution.
Code:
cmake -DADDONS_TO_BUILD="pvr.demo" -DADDON_SRC_PREFIX="D:\Projects" -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 12"  -DCMAKE_USER_MAKE_RULES_OVERRIDE="D:\Projects\xbmx\xbmc\project\cmake\scripts\windows\c-flag-overrides.cmake" -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="D:\Projects\xbmx\xbmc\project\cmake\scripts\windows\cxx-flag-overrides.cmake" -DCMAKE_INSTALL_PREFIX="D:\Projects\xbmx\xbmc\addons" -DBUILD_DIR="D:\Projects\xbmx\xbmc\project\cmake\addons\build" -DPACKAGE_ZIP=1 "D:\Projects\xbmx\xbmc\project\cmake\addons"

Open Visual Studio, load and build this solution:
Code:
D:\Projects\xbmx\xbmc\project\cmake\addons\build\kodi-addons.sln

Setup Development Environment.

Open Visual Studio, load Kodi solution. Then add existing solution:
Code:
D:\Projects\xbmx\xbmc\project\cmake\addons\build\pvr.demo-prefix\src\pvr.demo-build\pvr.demo.sln

Create post-build step. Required to copy files for debugging

Create Post-Build Event in Visual Studio
Code:
tbd

For a more convenient method see post #9, credits to Montellese who provided this script.




Hi lads

i am getting issue to compile the pvr.demo addon.

basically its saing that i have a cmake generator error.

i am using vs2013 with 12.0 v120 to compile kodi 16 jarvis without any issues i can buil setup install.exe ok and kodi.exe app exe just fine no issues at all my only issue is building it with the addon also this is my log

This is my message log


Quote:opensource@opensource-PC MINGW64 /c/xbmc/project/cmake/addons/build (Jarvis)

$ cmake -DADDONS_TO_BUILD="pvr.demo" -DADDON_SRC_PREFIX="C:\xbmc" -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 12" -DCMAKE_USER_MAKE_RULES_OVERRIDE="C:\xbmc\project\cmake\scripts\windows\c-flag-overrides.cmake" -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX="c:\xbmc\project\cmake\scripts\windows\cxx-flag-overrides.cmake" -DCMAKE_INSTALL_PREFIX="C:\xbmc\addons" -DBUILD_DIR="C:\xbmc\project\cmake\addons\build" -DPACKAGE_ZIP=1 "C:\xbmc\project\cmake\addons"

CMake Error: Error: generator : Visual Studio 12 2013
Does not match the generator used previously: NMake Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

btw i am using cmake.exe 3.5x is that an issue or do i need a previous version?

Hey succussfully built kodi v17 krypton incl all pvr addons on windows 10 x64, just followed the how to here: http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows
The BuildSetup.bat builds the complete kodi incl. all addons, youll get the kodi setup exe.

When you just want to build one addon (in my case pvr.mediaportal.tvserver) you have to run:


Code:
tools\buildsteps\win32\make-addons.bat addon pvr.mediaportal.tvserver

So far so good but ill want to modify something, in my case: project\cmake\addons\build\pvr.mediaportal.tvserver\src\GUIDialogRecordSettings.cpp
When ill do so and recompile with the above command the make-addons.bat extracting the source again and overwrites my changes.

What i am doing wrong?

thx
pOpY


RE: Develop PVR addons with new cmake build system - popy - 2017-06-19

Update: I have created a solution using a modified version of this "prepare-addons-dev.bat" to work with VS 2015 (v14):

https://gist.github.com/Montellese/149ecbd5ca20941d2be4
https://forum.kodi.tv/showthread.php?tid=219166&pid=1935737#pid1935737

if anybody wants it, i can upload it.

pOpY


RE: Develop PVR addons with new cmake build system - garbear - 2017-06-19

(2017-06-19, 19:57)popy Wrote: Hey succussfully built kodi v17 krypton incl all pvr addons on windows 10 x64, just followed the how to here: http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows
The BuildSetup.bat builds the complete kodi incl. all addons, youll get the kodi setup exe.

When you just want to build one addon (in my case pvr.mediaportal.tvserver) you have to run:


Code:
tools\buildsteps\win32\make-addons.bat addon pvr.mediaportal.tvserver

So far so good but ill want to modify something, in my case: project\cmake\addons\build\pvr.mediaportal.tvserver\src\GUIDialogRecordSettings.cpp
When ill do so and recompile with the above command the make-addons.bat extracting the source again and overwrites my changes.

What i am doing wrong?

thx
pOpY

make-addons.bat is used when packaging add-ons for release. If you're developing, there's another script you should use: tools\windows\prepare-binary-addons-dev.bat. This will download the source locally and build from there. Follow the descriptions in my README, particularly the Developing on Windows section.


RE: Develop PVR addons with new cmake build system - popy - 2017-06-19

(2017-06-19, 22:38)garbear Wrote:
(2017-06-19, 19:57)popy Wrote: Hey succussfully built kodi v17 krypton incl all pvr addons on windows 10 x64, just followed the how to here: http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows
The BuildSetup.bat builds the complete kodi incl. all addons, youll get the kodi setup exe.

When you just want to build one addon (in my case pvr.mediaportal.tvserver) you have to run:


Code:
tools\buildsteps\win32\make-addons.bat addon pvr.mediaportal.tvserver

So far so good but ill want to modify something, in my case: project\cmake\addons\build\pvr.mediaportal.tvserver\src\GUIDialogRecordSettings.cpp
When ill do so and recompile with the above command the make-addons.bat extracting the source again and overwrites my changes.

What i am doing wrong?

thx
pOpY

make-addons.bat is used when packaging add-ons for release. If you're developing, there's another script you should use: tools\windows\prepare-binary-addons-dev.bat. This will download the source locally and build from there. Follow the descriptions in my README, particularly the Developing on Windows section.
Thx, for the hint.
Haven't seen that on github.
Just readed the wiki [emoji12]




Gesendet von meinem LG-H815 mit Tapatalk


RE: Develop PVR addons with new cmake build system - BrozikCZ - 2017-07-29

Hi, please for hint.

I want build own PVR addon for Shield TV (Android aarch64, Krypton) but without without success.

./configure --with-tarballs=/$HOME/xbmc-tarballs --host=aarch64-linux-android --with-sdk-path=/$HOME/android-sdk-linux --with-ndk=/$HOME/android-ndk-r14b --with-toolchain=/home/media/aarch64-linux-android-4.9/android-21 --prefix=/$HOME/xbmc-depends

cmake -DADDONS_TO_BUILD=pvr.sledovanitv -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DCMAKE_TOOLCHAIN_FILE=/home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons

make
Code:
Scanning dependencies of target jsoncpp
[  2%] Creating directories for 'jsoncpp'
[  4%] Performing download step (download, verify and extract) for 'jsoncpp'
-- downloading...
     src='http://mirrors.kodi.tv/build-deps/sources/jsoncpp-src-0.5.0.tar.gz'
     dst='/home/media/pvr.sledovanitv/build/build/download/jsoncpp-src-0.5.0.tar.gz'
     timeout='none'
-- [download 0% complete]
-- [download 15% complete]
-- [download 30% complete]
-- [download 46% complete]
-- [download 61% complete]
-- [download 76% complete]
-- [download 91% complete]
-- [download 100% complete]
-- downloading... done
-- verifying file...
     file='/home/media/pvr.sledovanitv/build/build/download/jsoncpp-src-0.5.0.tar.gz'
-- verifying file... warning: did not verify file - no URL_HASH specified?
-- extracting...
     src='/home/media/pvr.sledovanitv/build/build/download/jsoncpp-src-0.5.0.tar.gz'
     dst='/home/media/pvr.sledovanitv/build/build/jsoncpp/src/jsoncpp'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[  7%] Performing patch step for 'jsoncpp'
[  9%] No update step for 'jsoncpp'
[ 12%] Performing configure step for 'jsoncpp'
CMake Warning (dev) at /home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake:5 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation.  Run "cmake --help-policy CMP0053" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '@CMAKE_FIND_ROOT_PATH@'

  the old evaluation rules produce:

    '@CMAKE_FIND_ROOT_PATH@;/home/media/aarch64-linux-android-4.9/android-21/sysroot/usr'

  but the new evaluation rules produce:

    '@CMAKE_FIND_ROOT_PATH@'

  Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
  /home/media/pvr.sledovanitv/build/build/jsoncpp/src/jsoncpp-build/CMakeFiles/3.5.1/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:1 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INCLUDE_PATH
    CMAKE_LIBRARY_PATH
    ENABLE_STATIC
    PACKAGE_CONFIG_PATH


-- Build files have been written to: /home/media/pvr.sledovanitv/build/build/jsoncpp/src/jsoncpp-build
[ 14%] Performing build step for 'jsoncpp'
Scanning dependencies of target jsoncpp
[ 25%] Building CXX object CMakeFiles/jsoncpp.dir/src/lib_json/json_reader.cpp.o
[ 50%] Building CXX object CMakeFiles/jsoncpp.dir/src/lib_json/json_value.cpp.o
[ 75%] Building CXX object CMakeFiles/jsoncpp.dir/src/lib_json/json_writer.cpp.o
[100%] Linking CXX static library libjsoncpp.a
[100%] Built target jsoncpp
[ 17%] Performing install step for 'jsoncpp'
[100%] Built target jsoncpp
Install the project...
-- Install configuration: "Release"
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/libjsoncpp.a
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/value.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/writer.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/forwards.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/config.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/json.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/autolink.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/features.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/reader.h
[ 19%] Completed 'jsoncpp'
[ 19%] Built target jsoncpp
Scanning dependencies of target tinyxml
[ 21%] Creating directories for 'tinyxml'
[ 24%] Performing download step (download, verify and extract) for 'tinyxml'
-- downloading...
     src='http://mirrors.kodi.tv/build-deps/sources/tinyxml-2.6.2_2.tar.gz'
     dst='/home/media/pvr.sledovanitv/build/build/download/tinyxml-2.6.2_2.tar.gz'
     timeout='none'
-- [download 0% complete]
-- [download 8% complete]
-- [download 15% complete]
-- [download 23% complete]
-- [download 30% complete]
-- [download 38% complete]
-- [download 45% complete]
-- [download 53% complete]
-- [download 60% complete]
-- [download 68% complete]
-- [download 75% complete]
-- [download 83% complete]
-- [download 90% complete]
-- [download 98% complete]
-- [download 100% complete]
-- downloading... done
-- verifying file...
     file='/home/media/pvr.sledovanitv/build/build/download/tinyxml-2.6.2_2.tar.gz'
-- verifying file... warning: did not verify file - no URL_HASH specified?
-- extracting...
     src='/home/media/pvr.sledovanitv/build/build/download/tinyxml-2.6.2_2.tar.gz'
     dst='/home/media/pvr.sledovanitv/build/build/tinyxml/src/tinyxml'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 26%] Performing patch step for 'tinyxml'
[ 29%] No update step for 'tinyxml'
[ 31%] Performing configure step for 'tinyxml'
-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INCLUDE_PATH
    CMAKE_LIBRARY_PATH
    ENABLE_STATIC
    PACKAGE_CONFIG_PATH


-- Build files have been written to: /home/media/pvr.sledovanitv/build/build/tinyxml/src/tinyxml-build
[ 34%] Performing build step for 'tinyxml'
Scanning dependencies of target tinyxml
[ 20%] Building CXX object CMakeFiles/tinyxml.dir/src/tinystr.cpp.o
[ 40%] Building CXX object CMakeFiles/tinyxml.dir/src/tinyxml.cpp.o
[ 60%] Building CXX object CMakeFiles/tinyxml.dir/src/tinyxmlerror.cpp.o
[ 80%] Building CXX object CMakeFiles/tinyxml.dir/src/tinyxmlparser.cpp.o
[100%] Linking CXX static library libtinyxml.a
[100%] Built target tinyxml
[ 36%] Performing install step for 'tinyxml'
[100%] Built target tinyxml
Install the project...
-- Install configuration: "Release"
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/tinystr.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/tinyxml.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/libtinyxml.a
[ 39%] Completed 'tinyxml'
[ 39%] Built target tinyxml
Scanning dependencies of target p8-platform
[ 41%] Creating directories for 'p8-platform'
[ 43%] Performing download step (git clone) for 'p8-platform'
Cloning into 'p8-platform'...
Note: checking out '38343e0acd6a636ac46139aa666aee4a8d1f13db'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 38343e0... bump to 2.0.1
[ 46%] No patch step for 'p8-platform'
[ 48%] Performing update step for 'p8-platform'
[ 51%] Performing configure step for 'p8-platform'
CMake Warning (dev) at /home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake:5 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation.  Run "cmake --help-policy CMP0053" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '@CMAKE_FIND_ROOT_PATH@'

  the old evaluation rules produce:

    '@CMAKE_FIND_ROOT_PATH@;/home/media/aarch64-linux-android-4.9/android-21/sysroot/usr'

  but the new evaluation rules produce:

    '@CMAKE_FIND_ROOT_PATH@'

  Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
  /home/media/pvr.sledovanitv/build/build/p8-platform/src/p8-platform-build/CMakeFiles/3.5.1/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:1 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Looking for __atomic_fetch_add_4 in atomic
-- Looking for __atomic_fetch_add_4 in atomic - found
-- Performing Test HAS_BUILTIN_SYNC_ADD_AND_FETCH
-- Performing Test HAS_BUILTIN_SYNC_ADD_AND_FETCH - Success
-- Performing Test HAS_BUILTIN_SYNC_SUB_AND_FETCH
-- Performing Test HAS_BUILTIN_SYNC_SUB_AND_FETCH - Success
-- Performing Test HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP
-- Performing Test HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP - Success
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    ENABLE_STATIC
    OUTPUT_DIR


-- Build files have been written to: /home/media/pvr.sledovanitv/build/build/p8-platform/src/p8-platform-build
[ 53%] Performing build step for 'p8-platform'
Scanning dependencies of target p8-platform
[ 50%] Building CXX object CMakeFiles/p8-platform.dir/src/util/StringUtils.cpp.o
[100%] Linking CXX static library libp8-platform.a
[100%] Built target p8-platform
[ 56%] Performing install step for 'p8-platform'
[100%] Built target p8-platform
Install the project...
-- Install configuration: "Release"
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/libp8-platform.a
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/os.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/posix/os-socket.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/posix/os-threads.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/posix/os-types.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/sockets/cdevsocket.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/sockets/socket.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/sockets/tcp.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/threads/atomics.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/threads/mutex.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/threads/threads.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/atomic.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/buffer.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/StringUtils.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/StdString.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/timeutils.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/util.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/pkgconfig/p8-platform.pc
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/p8-platform/p8-platform-config.cmake
[ 58%] Completed 'p8-platform'
[ 58%] Built target p8-platform
Scanning dependencies of target kodi-platform
[ 60%] Creating directories for 'kodi-platform'
[ 63%] Performing download step (git clone) for 'kodi-platform'
Cloning into 'kodi-platform'...
Note: checking out 'c8188d82678fec6b784597db69a68e74ff4986b5'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at c8188d8... Merge pull request #25 from hudokkow/find_package_Kodi
[ 65%] No patch step for 'kodi-platform'
[ 68%] Performing update step for 'kodi-platform'
[ 70%] Performing configure step for 'kodi-platform'
CMake Warning (dev) at /home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake:5 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation.  Run "cmake --help-policy CMP0053" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '@CMAKE_FIND_ROOT_PATH@'

  the old evaluation rules produce:

    '@CMAKE_FIND_ROOT_PATH@;/home/media/aarch64-linux-android-4.9/android-21/sysroot/usr'

  but the new evaluation rules produce:

    '@CMAKE_FIND_ROOT_PATH@'

  Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
  /home/media/pvr.sledovanitv/build/build/kodi-platform/src/kodi-platform-build/CMakeFiles/3.5.1/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:1 (project)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Checking to see if CXX compiler accepts flag -flto
-- Checking to see if CXX compiler accepts flag -flto - yes
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find TinyXML (missing: TINYXML_INCLUDE_DIR TINYXML_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  FindTinyXML.cmake:24 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:9 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/media/pvr.sledovanitv/build/build/kodi-platform/src/kodi-platform-build/CMakeFiles/CMakeOutput.log".
depends/CMakeFiles/kodi-platform.dir/build.make:105: návod pro cíl „build/kodi-platform/src/kodi-platform-stamp/kodi-platform-configure“ selhal
make[2]: *** [build/kodi-platform/src/kodi-platform-stamp/kodi-platform-configure] Chyba 1
CMakeFiles/Makefile2:293: návod pro cíl „depends/CMakeFiles/kodi-platform.dir/all“ selhal
make[1]: *** [depends/CMakeFiles/kodi-platform.dir/all] Chyba 2
Makefile:83: návod pro cíl „all“ selhal
make: *** [all] Chyba 2

The output ended with error about "Could NOT find TinyXML (missing: TINYXML_INCLUDE_DIR TINYXML_LIBRARIES)"

When build addon for x86 without DCMAKE_TOOLCHAIN_FILE option so works fine and build end with success. Host machine Ubuntu 16. 04., amd64.


RE: Develop PVR addons with new cmake build system - bendy - 2017-11-24

what about to install libtinyxml-dev ? sudo apt-get install libtinyxml-dev
(2017-07-29, 10:45)BrozikCZ Wrote: Hi, please for hint.

I want build own PVR addon for Shield TV (Android aarch64, Krypton) but without without success.

./configure --with-tarballs=/$HOME/xbmc-tarballs --host=aarch64-linux-android --with-sdk-path=/$HOME/android-sdk-linux --with-ndk=/$HOME/android-ndk-r14b --with-toolchain=/home/media/aarch64-linux-android-4.9/android-21 --prefix=/$HOME/xbmc-depends

cmake -DADDONS_TO_BUILD=pvr.sledovanitv -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DCMAKE_TOOLCHAIN_FILE=/home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons

make
Code:
Scanning dependencies of target jsoncpp
[ 2%] Creating directories for 'jsoncpp'
[ 4%] Performing download step (download, verify and extract) for 'jsoncpp'
-- downloading...
src='http://mirrors.kodi.tv/build-deps/sources/jsoncpp-src-0.5.0.tar.gz'
dst='/home/media/pvr.sledovanitv/build/build/download/jsoncpp-src-0.5.0.tar.gz'
timeout='none'
-- [download 0% complete]
-- [download 15% complete]
-- [download 30% complete]
-- [download 46% complete]
-- [download 61% complete]
-- [download 76% complete]
-- [download 91% complete]
-- [download 100% complete]
-- downloading... done
-- verifying file...
file='/home/media/pvr.sledovanitv/build/build/download/jsoncpp-src-0.5.0.tar.gz'
-- verifying file... warning: did not verify file - no URL_HASH specified?
-- extracting...
src='/home/media/pvr.sledovanitv/build/build/download/jsoncpp-src-0.5.0.tar.gz'
dst='/home/media/pvr.sledovanitv/build/build/jsoncpp/src/jsoncpp'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 7%] Performing patch step for 'jsoncpp'
[ 9%] No update step for 'jsoncpp'
[ 12%] Performing configure step for 'jsoncpp'
CMake Warning (dev) at /home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake:5 (set):
Policy CMP0053 is not set: Simplify variable reference and escape sequence
evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

For input:

'@CMAKE_FIND_ROOT_PATH@'

the old evaluation rules produce:

'@CMAKE_FIND_ROOT_PATH@;/home/media/aarch64-linux-android-4.9/android-21/sysroot/usr'

but the new evaluation rules produce:

'@CMAKE_FIND_ROOT_PATH@'

Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
/home/media/pvr.sledovanitv/build/build/jsoncpp/src/jsoncpp-build/CMakeFiles/3.5.1/CMakeSystem.cmake:6 (include)
CMakeLists.txt:1 (project)
This warning is for project developers. Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

CMAKE_INCLUDE_PATH
CMAKE_LIBRARY_PATH
ENABLE_STATIC
PACKAGE_CONFIG_PATH


-- Build files have been written to: /home/media/pvr.sledovanitv/build/build/jsoncpp/src/jsoncpp-build
[ 14%] Performing build step for 'jsoncpp'
Scanning dependencies of target jsoncpp
[ 25%] Building CXX object CMakeFiles/jsoncpp.dir/src/lib_json/json_reader.cpp.o
[ 50%] Building CXX object CMakeFiles/jsoncpp.dir/src/lib_json/json_value.cpp.o
[ 75%] Building CXX object CMakeFiles/jsoncpp.dir/src/lib_json/json_writer.cpp.o
[100%] Linking CXX static library libjsoncpp.a
[100%] Built target jsoncpp
[ 17%] Performing install step for 'jsoncpp'
[100%] Built target jsoncpp
Install the project...
-- Install configuration: "Release"
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/libjsoncpp.a
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/value.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/writer.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/forwards.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/config.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/json.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/autolink.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/features.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/jsoncpp/json/reader.h
[ 19%] Completed 'jsoncpp'
[ 19%] Built target jsoncpp
Scanning dependencies of target tinyxml
[ 21%] Creating directories for 'tinyxml'
[ 24%] Performing download step (download, verify and extract) for 'tinyxml'
-- downloading...
src='http://mirrors.kodi.tv/build-deps/sources/tinyxml-2.6.2_2.tar.gz'
dst='/home/media/pvr.sledovanitv/build/build/download/tinyxml-2.6.2_2.tar.gz'
timeout='none'
-- [download 0% complete]
-- [download 8% complete]
-- [download 15% complete]
-- [download 23% complete]
-- [download 30% complete]
-- [download 38% complete]
-- [download 45% complete]
-- [download 53% complete]
-- [download 60% complete]
-- [download 68% complete]
-- [download 75% complete]
-- [download 83% complete]
-- [download 90% complete]
-- [download 98% complete]
-- [download 100% complete]
-- downloading... done
-- verifying file...
file='/home/media/pvr.sledovanitv/build/build/download/tinyxml-2.6.2_2.tar.gz'
-- verifying file... warning: did not verify file - no URL_HASH specified?
-- extracting...
src='/home/media/pvr.sledovanitv/build/build/download/tinyxml-2.6.2_2.tar.gz'
dst='/home/media/pvr.sledovanitv/build/build/tinyxml/src/tinyxml'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 26%] Performing patch step for 'tinyxml'
[ 29%] No update step for 'tinyxml'
[ 31%] Performing configure step for 'tinyxml'
-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

CMAKE_INCLUDE_PATH
CMAKE_LIBRARY_PATH
ENABLE_STATIC
PACKAGE_CONFIG_PATH


-- Build files have been written to: /home/media/pvr.sledovanitv/build/build/tinyxml/src/tinyxml-build
[ 34%] Performing build step for 'tinyxml'
Scanning dependencies of target tinyxml
[ 20%] Building CXX object CMakeFiles/tinyxml.dir/src/tinystr.cpp.o
[ 40%] Building CXX object CMakeFiles/tinyxml.dir/src/tinyxml.cpp.o
[ 60%] Building CXX object CMakeFiles/tinyxml.dir/src/tinyxmlerror.cpp.o
[ 80%] Building CXX object CMakeFiles/tinyxml.dir/src/tinyxmlparser.cpp.o
[100%] Linking CXX static library libtinyxml.a
[100%] Built target tinyxml
[ 36%] Performing install step for 'tinyxml'
[100%] Built target tinyxml
Install the project...
-- Install configuration: "Release"
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/tinystr.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/tinyxml.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/libtinyxml.a
[ 39%] Completed 'tinyxml'
[ 39%] Built target tinyxml
Scanning dependencies of target p8-platform
[ 41%] Creating directories for 'p8-platform'
[ 43%] Performing download step (git clone) for 'p8-platform'
Cloning into 'p8-platform'...
Note: checking out '38343e0acd6a636ac46139aa666aee4a8d1f13db'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

git checkout -b <new-branch-name>

HEAD is now at 38343e0... bump to 2.0.1
[ 46%] No patch step for 'p8-platform'
[ 48%] Performing update step for 'p8-platform'
[ 51%] Performing configure step for 'p8-platform'
CMake Warning (dev) at /home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake:5 (set):
Policy CMP0053 is not set: Simplify variable reference and escape sequence
evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

For input:

'@CMAKE_FIND_ROOT_PATH@'

the old evaluation rules produce:

'@CMAKE_FIND_ROOT_PATH@;/home/media/aarch64-linux-android-4.9/android-21/sysroot/usr'

but the new evaluation rules produce:

'@CMAKE_FIND_ROOT_PATH@'

Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
/home/media/pvr.sledovanitv/build/build/p8-platform/src/p8-platform-build/CMakeFiles/3.5.1/CMakeSystem.cmake:6 (include)
CMakeLists.txt:1 (project)
This warning is for project developers. Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Looking for __atomic_fetch_add_4 in atomic
-- Looking for __atomic_fetch_add_4 in atomic - found
-- Performing Test HAS_BUILTIN_SYNC_ADD_AND_FETCH
-- Performing Test HAS_BUILTIN_SYNC_ADD_AND_FETCH - Success
-- Performing Test HAS_BUILTIN_SYNC_SUB_AND_FETCH
-- Performing Test HAS_BUILTIN_SYNC_SUB_AND_FETCH - Success
-- Performing Test HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP
-- Performing Test HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP - Success
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:

ENABLE_STATIC
OUTPUT_DIR


-- Build files have been written to: /home/media/pvr.sledovanitv/build/build/p8-platform/src/p8-platform-build
[ 53%] Performing build step for 'p8-platform'
Scanning dependencies of target p8-platform
[ 50%] Building CXX object CMakeFiles/p8-platform.dir/src/util/StringUtils.cpp.o
[100%] Linking CXX static library libp8-platform.a
[100%] Built target p8-platform
[ 56%] Performing install step for 'p8-platform'
[100%] Built target p8-platform
Install the project...
-- Install configuration: "Release"
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/libp8-platform.a
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/os.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/posix/os-socket.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/posix/os-threads.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/posix/os-types.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/sockets/cdevsocket.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/sockets/socket.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/sockets/tcp.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/threads/atomics.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/threads/mutex.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/threads/threads.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/atomic.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/buffer.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/StringUtils.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/StdString.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/timeutils.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/include/p8-platform/util/util.h
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/pkgconfig/p8-platform.pc
-- Installing: /home/media/pvr.sledovanitv/build/build/depends/lib/p8-platform/p8-platform-config.cmake
[ 58%] Completed 'p8-platform'
[ 58%] Built target p8-platform
Scanning dependencies of target kodi-platform
[ 60%] Creating directories for 'kodi-platform'
[ 63%] Performing download step (git clone) for 'kodi-platform'
Cloning into 'kodi-platform'...
Note: checking out 'c8188d82678fec6b784597db69a68e74ff4986b5'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

git checkout -b <new-branch-name>

HEAD is now at c8188d8... Merge pull request #25 from hudokkow/find_package_Kodi
[ 65%] No patch step for 'kodi-platform'
[ 68%] Performing update step for 'kodi-platform'
[ 70%] Performing configure step for 'kodi-platform'
CMake Warning (dev) at /home/media/xbmc-depends/aarch64-linux-android-android-21/share/Toolchain_binaddons.cmake:5 (set):
Policy CMP0053 is not set: Simplify variable reference and escape sequence
evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

For input:

'@CMAKE_FIND_ROOT_PATH@'

the old evaluation rules produce:

'@CMAKE_FIND_ROOT_PATH@;/home/media/aarch64-linux-android-4.9/android-21/sysroot/usr'

but the new evaluation rules produce:

'@CMAKE_FIND_ROOT_PATH@'

Using the old result for compatibility since the policy is not set.
Call Stack (most recent call first):
/home/media/pvr.sledovanitv/build/build/kodi-platform/src/kodi-platform-build/CMakeFiles/3.5.1/CMakeSystem.cmake:6 (include)
CMakeLists.txt:1 (project)
This warning is for project developers. Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 4.9.0
-- The CXX compiler identification is GNU 4.9.0
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc
-- Check for working C compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++
-- Check for working CXX compiler: /home/media/aarch64-linux-android-4.9/android-21/bin/aarch64-linux-android-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Checking to see if CXX compiler accepts flag -flto
-- Checking to see if CXX compiler accepts flag -flto - yes
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find TinyXML (missing: TINYXML_INCLUDE_DIR TINYXML_LIBRARIES)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
FindTinyXML.cmake:24 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:9 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/media/pvr.sledovanitv/build/build/kodi-platform/src/kodi-platform-build/CMakeFiles/CMakeOutput.log".
depends/CMakeFiles/kodi-platform.dir/build.make:105: návod pro cíl „build/kodi-platform/src/kodi-platform-stamp/kodi-platform-configure“ selhal
make[2]: *** [build/kodi-platform/src/kodi-platform-stamp/kodi-platform-configure] Chyba 1
CMakeFiles/Makefile2:293: návod pro cíl „depends/CMakeFiles/kodi-platform.dir/all“ selhal
make[1]: *** [depends/CMakeFiles/kodi-platform.dir/all] Chyba 2
Makefile:83: návod pro cíl „all“ selhal
make: *** [all] Chyba 2

The output ended with error about "Could NOT find TinyXML (missing: TINYXML_INCLUDE_DIR TINYXML_LIBRARIES)"

When build addon for x86 without DCMAKE_TOOLCHAIN_FILE option so works fine and build end with success. Host machine Ubuntu 16. 04., amd64. 



RE: Develop PVR addons with new cmake build system - Rechi - 2017-11-26

(2017-07-29, 10:45)BrozikCZ Wrote: ./configure --with-tarballs=/$HOME/xbmc-tarballs --host=aarch64-linux-android --with-sdk-path=/$HOME/android-sdk-linux --with-ndk=/$HOME/android-ndk-r14b --with-toolchain=/home/media/aarch64-linux-android-4.9/android-21 --prefix=/$HOME/xbmc-depends
Post the complete output of the configure command.
 
(2017-11-24, 23:13)bendy Wrote: what about to install libtinyxml-dev ? sudo apt-get install libtinyxml-dev
That won't help. It would install the package for the host (x64) but not for android aarch64.


RE: Develop PVR addons with new cmake build system - el_gonz87 - 2018-01-20

Can someone shed some light on how I can compile a PVR addon for Android?

I'm using Ubuntu 16.04 LTS with Kodi 17.5 Krypton to compile for an Android Fire Tablet 8 also running 17.5 Krypton.

I followed the Readme.android and created an ARM toolchain, then built the kodi dependencies sucessfully.

However I cannot get my addon to work at all, here are the 2 issues:

1) After a successful cmake with option -DCMAKE_TOOLCHAIN_FILE=/opt/xbmc-depends/arm-linux-androideabi-android-21/share/Toolchain_binaddons.cmake, I get the following error when I try to make:
Quote:
Code:
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find TinyXML (missing: TINYXML_INCLUDE_DIR TINYXML_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  FindTinyXML.cmake:24 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:9 (find_package)

Full terminal output of failed build at: https://pastebin.com/DeEd7kJw
2) If I cmake with -DCMAKE_TOOLCHAIN_FILE=/opt/xbmc-depends/arm-linux-androideabi-android-21/share/Toolchain.cmake, the build is successful, but the addon does not load in Kodi for a couple of reasons:
  1. The original package zip, had the addon XML pointing to libpvr.iptvsimple.dvr.so, which upon inspection was a symlink to libpvr.iptvsimple.dvr.so.2.4.15 and the kodi log produced the following error
Quote:23:14:57.807 T:18446744073584128296   ERROR: Unable to load /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/pvr.iptvsimple.dvr/libpvr.iptvsimple.dvr.so, reason: dlopen failed: "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/pvr.iptvsimple.dvr/libpvr.iptvsimple.dvr.so" is too small to be an ELF executable: only found 29 bytes
23:15:00.337 T:18446744073584128296   ERROR: UpdateAddons - failed to create add-on PVR IPTV Simple Client DVR, status = 6
  1. If I changed the addon XML to point reference libpvr.iptvsimple.dvr.so.2.4.15, then the addon also failed to load due to a different error:
Quote:23:21:28.721 T:18446744073583052232   ERROR: Unable to load /storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/pvr.iptvsimple.dvr/libpvr.iptvsimple.dvr.so.2.4.15, reason: dlopen failed: couldn't map "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/pvr.iptvsimple.dvr/libpvr.iptvsimple.dvr.so.2.4.15" segment 2: Permission denied
23:21:30.794 T:18446744073583052232   ERROR: UpdateAddons - failed to create add-on PVR IPTV Simple Client DVR, status = 6
   Full terminal output of build at: https://pastebin.com/mp0H6NDS

Is there something big I am missing hereHuh This is giving me a heck of a headache...

EDIT:

Welp, 30 mins after posting I think I've answered my own question... Looks like for android, the addons must be either:
1) Packaged with Kodi in an APK (so I have to rebuild kodi with my addon, and every timw I update...)
2) Create a wrapper APK that will install addon into the kodi directory....

Yikes! Back to the drawing board....


RE: Develop PVR addons with new cmake build system - wsnipex - 2018-01-20

1.) add your addon to (a clone of) https://github.com/xbmc/repo-binary-addons/
if you use a clone, see https://github.com/xbmc/xbmc/tree/master/cmake/addons/bootstrap on how to use that
2.) the tinyxml dependency is then automatically added
3.) as you have already figured out, you have to build kodi with all binary addons included


RE: Develop PVR addons with new cmake build system - el_gonz87 - 2018-01-20

(2018-01-20, 10:24)wsnipex Wrote: 1.) add your addon to (a clone of) https://github.com/xbmc/repo-binary-addons/
if you use a clone, see https://github.com/xbmc/xbmc/tree/master/cmake/addons/bootstrap on how to use that
2.) the tinyxml dependency is then automatically added
3.) as you have already figured out, you have to build kodi with all binary addons included
Thanks I was trying to build latest IPTV Simple client so it definitely found it in the repo for bin addons because of the cmake output. The issue was using Toolchain_binaddons.cmake was not working, if I use Toolchain.cmake, it works.
I checked the tools/depends/target by using "make -C target/binary-addons ADDONS="pvr.iptvsimple" and when it executed, it used Toolchain.cmake, so this must be the appropriate call.

So I've build APK sucessfully, but get the following error when enabling a binary addon:
Quote:10:10:47.388 T:18446744073573319120   DEBUG: PVR - Create - creating PVR add-on instance 'Tvheadend HTSP Client'
10:10:47.388 T:18446744073573319120   DEBUG: ADDON: Dll Initializing - Tvheadend HTSP Client
10:10:47.389 T:18446744073573319120   ERROR: ADDON: Could not locate libpvr.hts.so
10:10:47.389 T:18446744073573319120   ERROR: UpdateAddons - failed to create add-on Tvheadend HTSP Client, status = 6
I checked to make sure those dependencies where built, and they exist but like this:
Quote:gonzalo@GONZALO-S256GB:/opt/xbmc-depends/arm-linux-androideabi-android-21/lib/kodi/addons/pvr.hts$ ls -l
total 6328
lrwxrwxrwx 1 gonzalo gonzalo      18 Jan 20 02:10 libpvr.hts.so -> libpvr.hts.so.17.5
lrwxrwxrwx 1 gonzalo gonzalo      20 Jan 20 02:10 libpvr.hts.so.17.5 -> libpvr.hts.so.3.4.27
-rw-r--r-- 1 gonzalo gonzalo 6479076 Jan 20 02:10 libpvr.hts.so.3.4.27
gonzalo@GONZALO-S256GB:/opt/xbmc-depends/arm-linux-androideabi-android-21/lib/kodi/addons/pvr.hts$
When I look at addon.xml, it points to libpvr.hts.so, but this is a symlink and it cannot resolve it to libprv.hts.so.17.5 which is also a symlink and resolves to libpvr.hts.so.3.4.27 which is the actual binary.... My head hurts!

Is there a reason the addons build with symlinks? how can I fix this?

EDIT: just for fun I tried changing the addon.xml to library_android="libpvr.iptvsimple.so.3.4.27", and it says could not locate either... I'm puzzled, but it seems as if the final APK does not contain these files.


RE: Develop PVR addons with new cmake build system - el_gonz87 - 2018-10-02

Is there a way for us to use <Python.h> in binary addons when cross compiling?

If I build natively for linux, it builds no problem (after installing python-dev).

However if I try to cross-compile for android, I got stuck at:
Could NOT find PythonLibs (missing:  PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)

I went and looked at the toolchain, to determine where it was looking for the libs at. After copying libpython2.7.a and include from xbmc/tools/depends/target/python27 to xbmc/tools/depends/target/binarry_addons/build/depends

Then it build sucessfully as it was able to find the python library compiled by the toolchain for android, but when I run my addon I get the following in log:
could not locate symbol GENERAL_NAME_free required by ...

Can anyone point me in the right direction, I'm trying to compile the following addon for Android:
https://forum.kodi.tv/showthread.php?tid=301993


RE: Develop PVR addons with new cmake build system - ssdanie - 2020-04-28

Hello, 
i'm try to compile the pvr.demo addons in Windows, with visual studio 2019, but when i have the two solution correctly generated, how i can generate the pvr.demo with my changes?
Where i must edit and recompile when i need to edit the code of pvr.demo? In kodi.sln or in kodi-addon.sln? when i recompile the solution, the changes of the addon are in the kodi-build/addon or in cmake/addons/build/pvr.demo-prefix/src/pvr.demo-build?

Sorry for the bad english and the stupid question...


RE: Develop PVR addons with new cmake build system - blunden - 2021-02-26

(2018-01-20, 10:24)wsnipex Wrote: 1.) add your addon to (a clone of) https://github.com/xbmc/repo-binary-addons/
if you use a clone, see https://github.com/xbmc/xbmc/tree/master/cmake/addons/bootstrap on how to use that
2.) the tinyxml dependency is then automatically added
3.) as you have already figured out, you have to build kodi with all binary addons included
How does one handle the p8-platform dependency when building like that (for Android)? I get it to pick up my source code but it fails to resolve that dependency.