After a bit of further study, it turns out that adding the explicit dependency to the recipe:
DEPENDS = "libisl" resolves the issue. Br, Martin ________________________________ From: Martin Siegumfeldt Sent: Tuesday, February 13, 2018 2:10:48 PM To: yocto@yoctoproject.org Subject: Exposure of Shared Library Functionality through eSDK - missing include file Hi, We are implementing certain logic within a shared library and aims at exposing this through the extensible SDK, unfortunately without success so far. The library and it's associated header file is successfully added to the image and appears also present from the eSDK: martin@dell:~/gomspace_sdk$ find . -name libgsisl.so ./tmp/sysroots/nanomind-ultra-zu6eg-zcu102/usr/lib/libgsisl.so ./tmp/work/aarch64-gomspace-linux/libisl/develop-r0/sysroot-destdir/usr/lib/libgsisl.so ./tmp/sysroots-components/aarch64/libisl/usr/lib/libgsisl.so martin@dell:~/gomspace_sdk$ find . -name isl.h ./tmp/sysroots/nanomind-ultra-zu6eg-zcu102/usr/include/gs/isl/isl.h ./tmp/work/aarch64-gomspace-linux/libisl/develop-r0/sysroot-destdir/usr/include/gs/isl/isl.h ./tmp/sysroots-components/aarch64/libisl/usr/include/gs/isl/isl.h martin@dell:~/gomspace_sdk$ For testing, I have implemented a small application, built through CMake: martin@dell:~/work/xsllibtest$ cat CMakeLists.txt add_executable (xsllibtest xsllibtest.c) target_link_libraries (xsllibtest gsisl) with the library- and test application build natively the library call works on my host machine, however the cross-compilation fails to find the header file: martin@dell:~/gomspace_sdk$ devtool add xsllibtest ~/work/xsllibtest/ NOTE: Starting bitbake server... NOTE: Starting bitbake server... NOTE: Starting bitbake server... NOTE: Recipe /home/martin/gomspace_sdk/workspace/recipes/xsllibtest/xsllibtest.bb has been automatically created; further editing may be required to make it fully functional martin@dell:~/gomspace_sdk$ cat workspace/recipes/xsllibtest/xsllibtest.bb # Recipe created by recipetool # This is the basis of a recipe and may need further editing in order to be fully functional. # (Feel free to remove these comments when editing.) # Unable to find any files that looked like license statements. Check the accompanying # documentation and source headers and set LICENSE and LIC_FILES_CHKSUM accordingly. # # NOTE: LICENSE is being set to "CLOSED" to allow you to at least start building - if # this is not accurate with respect to the licensing of the software being built (it # will not be in most cases) you must specify the correct value before using this # recipe for anything other than initial testing/development! LICENSE = "CLOSED" LIC_FILES_CHKSUM = "" # No information for SRC_URI yet (only an external source tree was specified) SRC_URI = "" inherit cmake # Specify any options you want to pass to cmake using EXTRA_OECMAKE: EXTRA_OECMAKE = "" martin@dell:~/gomspace_sdk$ cat workspace/appends/xsllibtest.bbappend inherit externalsrc EXTERNALSRC = "/home/martin/work/xsllibtest" during the compilation: . . . Log data follows: | DEBUG: Executing python function externalsrc_compile_prefunc | NOTE: xsllibtest: compiling from external source tree /home/martin/work/xsllibtest | DEBUG: Python function externalsrc_compile_prefunc finished | DEBUG: Executing shell function do_compile | NOTE: VERBOSE=1 cmake --build /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/ -- -j 8 | /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot-native/usr/bin/cmake -H/home/martin/work/xsllibtest -B/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0 --check-build-system CMakeFiles/Makefile.cmake 0 | /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot-native/usr/bin/cmake -E cmake_progress_start /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles/progress.mar ks | make -f CMakeFiles/Makefile2 all | make[1]: Entering directory '/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0' | make -f CMakeFiles/xsllibtest.dir/build.make CMakeFiles/xsllibtest.dir/depend | make[2]: Entering directory '/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0' | cd /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0 && /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot-native/usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/martin/work/xsllibtest /home/martin/work/xsllibtest /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace -linux/xsllibtest/1.0-r0/xsllibtest-1.0 /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0 /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles/xsllibtest.dir/DependInfo.cmake --color= | Dependee "/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles/xsllibtest.dir/DependInfo.cmake" is newer than depender "/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles/xsllibtest.dir/depend.internal". | Dependee "/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0/CMakeFiles/xsllibtest.dir/depend.internal". | Scanning dependencies of target xsllibtest | make[2]: Leaving directory '/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0' | make -f CMakeFiles/xsllibtest.dir/build.make CMakeFiles/xsllibtest.dir/build | make[2]: Entering directory '/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0' | [ 50%] Building C object CMakeFiles/xsllibtest.dir/xsllibtest.c.o | /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-gomspace-linux/aarch64-gomspace-linux-gcc --sysroot=/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0=/usr/src/debug/xsllibtest/1.0-r0 -fdebug-prefix-map=/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot= --sysroot=/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/recipe-sysroot -o CMakeFiles/xsllibtest.dir/xsllibtest.c.o -c /home/martin/work/xsllibtest/xsllibtest.c | /home/martin/work/xsllibtest/xsllibtest.c:1:10: fatal error: gs/isl/isl.h: No such file or directory | #include <gs/isl/isl.h> | ^~~~~~~~~~~~~~ | compilation terminated. | make[2]: *** [CMakeFiles/xsllibtest.dir/build.make:66: CMakeFiles/xsllibtest.dir/xsllibtest.c.o] Error 1 | make[2]: Leaving directory '/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0' | make[1]: *** [CMakeFiles/Makefile2:71: CMakeFiles/xsllibtest.dir/all] Error 2 | make[1]: Leaving directory '/home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/xsllibtest-1.0' | make: *** [Makefile:87: all] Error 2 | WARNING: exit code 2 from a shell command. | ERROR: Function failed: do_compile (log file is located at /home/martin/gomspace_sdk/tmp/work/aarch64-gomspace-linux/xsllibtest/1.0-r0/temp/log.do_compile.17008) ERROR: Task (/home/martin/gomspace_sdk/workspace/recipes/xsllibtest/xsllibtest.bb:do_compile) failed with exit code '1' NOTE: Tasks Summary: Attempted 464 tasks of which 460 didn't need to be rerun and 1 failed. Since the header file resides with the standard '/usr/include' location I assume no explicit include path configuration is needed (I have tried setting this explicitly from CMakeLists.txt with the same outcome). Am I missing something obvious here? Configure/compilation log files attached.... Thanks, Martin
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto