Patchwork cmake.bbclass, perlnative.bbclass: arrange for cmake to find perl-native

login
register
mail settings
Submitter Phil Blundell
Date Aug. 15, 2011, 4:16 p.m.
Message ID <1313424992.6733.187.camel@phil-desktop>
Download mbox | patch
Permalink /patch/9873/
State New, archived
Headers show

Comments

Phil Blundell - Aug. 15, 2011, 4:16 p.m.
When CMake is looking for perl, it only searches in the specific directories
that it's told about and ignores ${PATH}.  If perlnative is in use, ensure
that the appropriate installation path is added to the list of places that
cmake will look for perl, otherwise it won't ever be found.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 meta/classes/cmake.bbclass      |    3 ++-
 meta/classes/perlnative.bbclass |    1 +
 2 files changed, 3 insertions(+), 1 deletions(-)
Phil Blundell - Aug. 15, 2011, 4:17 p.m.
On Mon, 2011-08-15 at 17:16 +0100, Phil Blundell wrote:
> When CMake is looking for perl, it only searches in the specific directories
> that it's told about and ignores ${PATH}.  If perlnative is in use, ensure
> that the appropriate installation path is added to the list of places that
> cmake will look for perl, otherwise it won't ever be found.
> 
> Signed-off-by: Phil Blundell <philb@gnu.org>
> ---
>  meta/classes/cmake.bbclass      |    3 ++-
>  meta/classes/perlnative.bbclass |    1 +
>  2 files changed, 3 insertions(+), 1 deletions(-)

This is not very pretty, but then I guess nothing to do with cmake ever
is.  Better suggestions for how to make this work are of course welcome.

p.
Saul Wold - Aug. 22, 2011, 10:36 p.m.
On 08/15/2011 09:16 AM, Phil Blundell wrote:
> When CMake is looking for perl, it only searches in the specific directories
> that it's told about and ignores ${PATH}.  If perlnative is in use, ensure
> that the appropriate installation path is added to the list of places that
> cmake will look for perl, otherwise it won't ever be found.
>
> Signed-off-by: Phil Blundell<philb@gnu.org>
> ---
>   meta/classes/cmake.bbclass      |    3 ++-
>   meta/classes/perlnative.bbclass |    1 +
>   2 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
> index 89a154f..ab23bed 100644
> --- a/meta/classes/cmake.bbclass
> +++ b/meta/classes/cmake.bbclass
> @@ -25,6 +25,7 @@ OECMAKE_C_FLAGS_RELEASE ?= "${SELECTED_OPTIMIZATION} ${CPPFLAGS} -DNDEBUG"
>   OECMAKE_CXX_FLAGS_RELEASE ?= "${SELECTED_OPTIMIZATION} ${CXXFLAGS} -DNDEBUG"
>
>   OECMAKE_RPATH ?= ""
> +OECMAKE_PERLNATIVE_DIR ??= ""
>
>   cmake_do_generate_toolchain_file() {
>   	cat>  ${WORKDIR}/toolchain.cmake<<EOF
> @@ -41,7 +42,7 @@ set( CMAKE_CXX_FLAGS_RELEASE "${OECMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "CXXFLA
>
>   # only search in the paths provided so cmake doesnt pick
>   # up libraries and tools from the native build machine
> -set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} )
> +set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR})
>   set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
>   set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
>   set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
> diff --git a/meta/classes/perlnative.bbclass b/meta/classes/perlnative.bbclass
> index 522344d..2211b72 100644
> --- a/meta/classes/perlnative.bbclass
> +++ b/meta/classes/perlnative.bbclass
> @@ -1,2 +1,3 @@
>   PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
>   DEPENDS += "perl-native"
> +OECMAKE_PERLNATIVE_DIR = "${STAGING_BINDIR_NATIVE}/perl-native"

Merged to OE-Core

Thanks
	Sau!

Patch

diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
index 89a154f..ab23bed 100644
--- a/meta/classes/cmake.bbclass
+++ b/meta/classes/cmake.bbclass
@@ -25,6 +25,7 @@  OECMAKE_C_FLAGS_RELEASE ?= "${SELECTED_OPTIMIZATION} ${CPPFLAGS} -DNDEBUG"
 OECMAKE_CXX_FLAGS_RELEASE ?= "${SELECTED_OPTIMIZATION} ${CXXFLAGS} -DNDEBUG"
 
 OECMAKE_RPATH ?= ""
+OECMAKE_PERLNATIVE_DIR ??= ""
 
 cmake_do_generate_toolchain_file() {
 	cat > ${WORKDIR}/toolchain.cmake <<EOF
@@ -41,7 +42,7 @@  set( CMAKE_CXX_FLAGS_RELEASE "${OECMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "CXXFLA
 
 # only search in the paths provided so cmake doesnt pick
 # up libraries and tools from the native build machine
-set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} )
+set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR})
 set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
 set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
 set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
diff --git a/meta/classes/perlnative.bbclass b/meta/classes/perlnative.bbclass
index 522344d..2211b72 100644
--- a/meta/classes/perlnative.bbclass
+++ b/meta/classes/perlnative.bbclass
@@ -1,2 +1,3 @@ 
 PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
 DEPENDS += "perl-native"
+OECMAKE_PERLNATIVE_DIR = "${STAGING_BINDIR_NATIVE}/perl-native"