From d9369d1ea055a20e5fc8747b0e38916dd6d604a5 Mon Sep 17 00:00:00 2001 From: Thomas Witt Date: Mon, 22 Aug 2016 16:27:11 +0200 Subject: cmake.bbclass: call cmake with a relative path CMake wants a relative path for CMAKE_INSTALL_*DIR, an absolute path breaks cross-compilation. This fact is documented in the following ticket: https://cmake.org/Bug/view.php?id=14367 $sysconfdir and $localstatedir are not relative to $prefix, so they are still set as absolute paths. With his change ${PROJECT}Targets.cmake that are generated by cmakes "export" function will contain relative paths instead of absolute ones. (From OE-Core rev: c03b32bd71dbe04f2f239556fea0b53215e403d7) (From OE-Core rev: 3d37394f8f279d127db85784cf01056d27c19b36) Signed-off-by: Thomas Witt Signed-off-by: Clemens Lang Signed-off-by: Ross Burton Signed-off-by: Richard Purdie Signed-off-by: Armin Kuster Signed-off-by: Richard Purdie --- meta/classes/cmake.bbclass | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'meta/classes') diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 02f313a861..77ab626f9f 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -108,15 +108,15 @@ cmake_do_configure() { ${OECMAKE_SITEFILE} \ ${OECMAKE_SOURCEPATH} \ -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \ - -DCMAKE_INSTALL_BINDIR:PATH=${bindir} \ - -DCMAKE_INSTALL_SBINDIR:PATH=${sbindir} \ - -DCMAKE_INSTALL_LIBEXECDIR:PATH=${libexecdir} \ + -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir', True), d.getVar('prefix', True))} \ + -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir', True), d.getVar('prefix', True))} \ + -DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir', True), d.getVar('prefix', True))} \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \ - -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${sharedstatedir} \ + -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir', True), d. getVar('prefix', True))} \ -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=${localstatedir} \ - -DCMAKE_INSTALL_LIBDIR:PATH=${libdir} \ - -DCMAKE_INSTALL_INCLUDEDIR:PATH=${includedir} \ - -DCMAKE_INSTALL_DATAROOTDIR:PATH=${datadir} \ + -DCMAKE_INSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('libdir', True), d.getVar('prefix', True))} \ + -DCMAKE_INSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('includedir', True), d.getVar('prefix', True))} \ + -DCMAKE_INSTALL_DATAROOTDIR:PATH=${@os.path.relpath(d.getVar('datadir', True), d.getVar('prefix', True))} \ -DCMAKE_INSTALL_SO_NO_EXE=0 \ -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \ -DCMAKE_VERBOSE_MAKEFILE=1 \ -- cgit v1.2.3-54-g00ecf