JdeRobot / ThirdParty

ThirdParty software to JdeRobot project
11 stars 9 forks source link

Add ardronelib #1

Closed varhub closed 9 years ago

varhub commented 9 years ago

Porposal to add ardronelib

Requirements:

All explanations about porposal CMakeLists can be found here: https://jderobot.org/Varribas-tfm/ARDrone:cmake_advanced

varhub commented 9 years ago

I just notice two typos:

If this pull request is the solution, just alert me to fix these two typos if needed.

PS: method tested (make install, dpkg -i, build ardrone_server, etc)

varhub commented 9 years ago

I'm trying to do a full clean install (just headers). But is much more difficult that expected.

After try to compile ardonr_server, I discovered that iniparser and ffmpeg are both required. With ffmpeg this is even more difficult, because it is compiled and installed in source (as another depper level of ExternalProject, so only install structure must be preserved).

At least it finally works. But requires much more testing.

PS: I attach the key fragment. With valid and not valid tested patterns.

install(DIRECTORY ${CMAKE_BINARY_DIR}/src/ardronelib/ARDroneLib/
        DESTINATION ${CMAKE_INSTALL_PREFIX}/include/jderobot/ardrone
        FILES_MATCHING
                PATTERN "*.h"
                PATTERN "Build" EXCLUDE
#REQUIRED               PATTERN "iniparser3.0b" EXCLUDE
#REQUIRED               PATTERN "FFMPEG" EXCLUDE
                REGEX "FFMPEG/ffmpeg" EXCLUDE
)
varhub commented 9 years ago

It seems ok, and no more patches for cpack are required (ToDo: is dpkg-shlibdeps mandatory when it ¿only? scan executables?)

fqez commented 9 years ago

I tested ardrone_server (with an actual ArDrone 2.0) with the previous version of the CMakeLists and worked fine, where was the problem exactly? Dpkg-shlibdeps generates the information of the dependencies of the packages. It's better to maintain it activated in order to prevent future problems with the package installation.

varhub commented 9 years ago

Yes @fqez , my fault. Manual is not clever and I constrain its usage only to executables. It also works with shared and static libraries, but for last ones they assert same errors that linkage step of build (I supose).

Some testing:

cd /tmp
mkdir debian
touch debian/control

dpkg-shlibdeps /bin/bash -O
dpkg-shlibdeps /usr/bin/cmake -O -v
dpkg-shlibdeps /usr/local/lib/jderobot/libgeometry.so --ignore-missing-info -O -v
dpkg-shlibdeps /usr/local/lib/jderobot/libJderobotInterfaces.so --ignore-missing-info -O
dpkg-shlibdeps /usr/local/lib/jderobot/ardrone/libsdk.a --ignore-missing-info -O -v

Patch programmed into include license changeset