* [meta-oe][PATCH] glog: fix installation path
@ 2018-12-05 12:13 Vyacheslav Yurkov
2018-12-05 15:00 ` [PATCH][meta-oe] glog: fix libunwind search in components which depend on glog Martin Jansa
0 siblings, 1 reply; 4+ messages in thread
From: Vyacheslav Yurkov @ 2018-12-05 12:13 UTC (permalink / raw)
To: openembedded-devel; +Cc: Vyacheslav Yurkov
From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
When glog is compiled with multilib support, it shouldn't use hardcoded paths.
Paths substitued by CMake should be used instead.
Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
Tested-by: Martin Jansa <Martin.Jansa@gmail.com>
---
.../glog/0003-installation-path-fix.patch | 65 +++++++++++++++++++
meta-oe/recipes-support/glog/glog_0.3.5.bb | 1 +
2 files changed, 66 insertions(+)
create mode 100644 meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
diff --git a/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch b/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
new file mode 100644
index 000000000..641f70cb2
--- /dev/null
+++ b/meta-oe/recipes-support/glog/glog/0003-installation-path-fix.patch
@@ -0,0 +1,65 @@
+diff -uNr a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2018-12-05 12:55:59.630792054 +0100
++++ b/CMakeLists.txt 2018-12-05 13:00:22.922269200 +0100
+@@ -403,10 +403,15 @@
+
+ set_target_properties (glog PROPERTIES PUBLIC_HEADER "${GLOG_PUBLIC_H}")
+
++set (_glog_CMake_BINDIR ${CMAKE_INSTALL_BINDIR})
++set (_glog_CMake_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
++set (_glog_CMake_LIBDIR ${CMAKE_INSTALL_LIBDIR})
++set (_glog_CMake_INSTALLDIR ${_glog_CMake_LIBDIR}/cmake/glog)
++
+ target_include_directories (glog BEFORE PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
+- "$<INSTALL_INTERFACE:include>"
++ "$<INSTALL_INTERFACE:${_glog_CMake_INCLUDE_DIR}>"
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
+
+@@ -543,10 +548,10 @@
+
+ install (TARGETS glog
+ EXPORT glog-targets
+- RUNTIME DESTINATION bin
+- PUBLIC_HEADER DESTINATION include/glog
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib)
++ RUNTIME DESTINATION ${_glog_CMake_BINDIR}
++ PUBLIC_HEADER DESTINATION ${_glog_CMake_INCLUDE_DIR}/glog
++ LIBRARY DESTINATION ${_glog_CMake_LIBDIR}
++ ARCHIVE DESTINATION ${_glog_CMake_LIBDIR})
+
+ if (gflags_FOUND)
+ set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})")
+@@ -554,7 +559,7 @@
+
+ configure_package_config_file (glog-config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+- INSTALL_DESTINATION lib/cmake/glog
++ INSTALL_DESTINATION ${_glog_CMake_INSTALLDIR}
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+
+ write_basic_package_version_file (glog-config-version.cmake VERSION
+@@ -567,6 +572,7 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibunwind.cmake
+- DESTINATION lib/cmake/glog)
++ DESTINATION ${_glog_CMake_INSTALLDIR})
+
+-install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
++install (EXPORT glog-targets NAMESPACE glog:: DESTINATION
++ ${_glog_CMake_INSTALLDIR})
+diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
+--- a/glog-config.cmake.in 2018-12-05 12:55:59.630792054 +0100
++++ b/glog-config.cmake.in 2018-12-05 13:05:19.547196843 +0100
+@@ -4,6 +4,7 @@
+
+ @gflags_DEPENDENCY@
+
++list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+ find_dependency (Libunwind)
+
+ include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
diff --git a/meta-oe/recipes-support/glog/glog_0.3.5.bb b/meta-oe/recipes-support/glog/glog_0.3.5.bb
index 5e58450c2..3de01ef5b 100644
--- a/meta-oe/recipes-support/glog/glog_0.3.5.bb
+++ b/meta-oe/recipes-support/glog/glog_0.3.5.bb
@@ -12,6 +12,7 @@ SRC_URI = " \
git://github.com/google/glog.git;branch=v035 \
file://0001-Rework-CMake-glog-VERSION-management.patch \
file://0002-Find-Libunwind-during-configure.patch \
+ file://0003-installation-path-fix.patch \
"
SRCREV = "a6a166db069520dbbd653c97c2e5b12e08a8bb26"
--
2.19.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH][meta-oe] glog: fix libunwind search in components which depend on glog
2018-12-05 12:13 [meta-oe][PATCH] glog: fix installation path Vyacheslav Yurkov
@ 2018-12-05 15:00 ` Martin Jansa
2018-12-05 16:58 ` Martin Jansa
0 siblings, 1 reply; 4+ messages in thread
From: Martin Jansa @ 2018-12-05 15:00 UTC (permalink / raw)
To: openembedded-devel
* libunwind is not found when using find_package(glog) from some
other recipe, without this change it fails with:
CMake Error at /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot-native/usr/share/cmake-3.12/Modules/CMakeFindDependencyMacro.cmake:48 (find_package):
By not providing "FindLibunwind.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"Libunwind", but CMake did not find one.
Could not find a package configuration file provided by "Libunwind" with
any of the following names:
LibunwindConfig.cmake
libunwind-config.cmake
Add the installation prefix of "Libunwind" to CMAKE_PREFIX_PATH or set
"Libunwind_DIR" to a directory containing one of the above files. If
"Libunwind" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
/OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot/usr/lib/cmake/glog/glog-config.cmake:31 (find_dependency)
CMakeLists.txt:17 (find_package)
-- Configuring incomplete, errors occurred!
* this might help others when upgrading to thud which has newer glog:
mtp-server in meta-luneos layer is the only user of glog I could find
in public layers, it was failing to build with 0.3.5 version of glog
(and building fine with 0.3.4 glog which was built with autotools
instead of cmake and provided pkg-config instead of glog-config.cmake)
First part is relatively simple, update CMakeLists.txt to use cmake
machinery instead of pkg-config:
-pkg_check_modules(GLOG REQUIRED libglog)
+find_package(glog 0.3.5 REQUIRED)
and update the use of GLOG_* variables, e.g.:
- ${GLOG_LIBRARIES}
+ glog::glog
interestingly glog::glog passes the glog library with whole path, in my
case:
/OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/ \
mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot/usr/lib/ \
libglog.so.0.3.5 -lunwind -lunwind-aarch64
instead of just -lglog -unwind -lunwind-aarch64 which would work as
well, because sysroot is configured correctly elsewhere.
I'm not sure if this is really expected behavior of glog::glog or
another bug in glog-config.cmake.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
.../0002-Find-Libunwind-during-configure.patch | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
index 15cf67fd2e..4d7642a907 100644
--- a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
+++ b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
@@ -109,12 +109,21 @@ diff -uNr a/CMakeLists.txt b/CMakeLists.txt
install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
---- a/glog-config.cmake.in 2018-11-20 15:49:07.576278417 +0100
-+++ b/glog-config.cmake.in 2018-11-20 15:52:32.330418489 +0100
-@@ -4,4 +4,6 @@
+--- a/glog-config.cmake.in 2018-11-02 14:02:21.784835854 +0100
++++ b/glog-config.cmake.in 2018-11-02 14:03:16.796935594 +0100
+@@ -4,4 +4,15 @@
@gflags_DEPENDENCY@
++# Record the state of the CMake module path when this script was
++# called so that we can ensure that we leave it in the same state on
++# exit as it was on entry, but modify it locally.
++set(UNWIND_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
++
++set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+find_dependency (Libunwind)
++
++# Restore original module path
++set(CMAKE_MODULE_PATH "${UNWIND_CMAKE_MODULE_PATH}")
+
include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH][meta-oe] glog: fix libunwind search in components which depend on glog
2018-12-05 15:00 ` [PATCH][meta-oe] glog: fix libunwind search in components which depend on glog Martin Jansa
@ 2018-12-05 16:58 ` Martin Jansa
2018-12-05 21:33 ` Khem Raj
0 siblings, 1 reply; 4+ messages in thread
From: Martin Jansa @ 2018-12-05 16:58 UTC (permalink / raw)
To: openembedded-devel
This might be actually unnecessary with the:
+list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
which sneaked in, in the "glog: fix installation path"
On Wed, Dec 5, 2018 at 4:00 PM Martin Jansa <martin.jansa@gmail.com> wrote:
> * libunwind is not found when using find_package(glog) from some
> other recipe, without this change it fails with:
>
> CMake Error at
> /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot-native/usr/share/cmake-3.12/Modules/CMakeFindDependencyMacro.cmake:48
> (find_package):
> By not providing "FindLibunwind.cmake" in CMAKE_MODULE_PATH this project
> has asked CMake to find a package configuration file provided by
> "Libunwind", but CMake did not find one.
>
> Could not find a package configuration file provided by "Libunwind" with
> any of the following names:
>
> LibunwindConfig.cmake
> libunwind-config.cmake
>
> Add the installation prefix of "Libunwind" to CMAKE_PREFIX_PATH or set
> "Libunwind_DIR" to a directory containing one of the above files. If
> "Libunwind" provides a separate development package or SDK, be sure it
> has
> been installed.
> Call Stack (most recent call first):
>
> /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot/usr/lib/cmake/glog/glog-config.cmake:31
> (find_dependency)
> CMakeLists.txt:17 (find_package)
>
> -- Configuring incomplete, errors occurred!
>
> * this might help others when upgrading to thud which has newer glog:
>
> mtp-server in meta-luneos layer is the only user of glog I could find
> in public layers, it was failing to build with 0.3.5 version of glog
> (and building fine with 0.3.4 glog which was built with autotools
> instead of cmake and provided pkg-config instead of glog-config.cmake)
>
> First part is relatively simple, update CMakeLists.txt to use cmake
> machinery instead of pkg-config:
>
> -pkg_check_modules(GLOG REQUIRED libglog)
> +find_package(glog 0.3.5 REQUIRED)
>
> and update the use of GLOG_* variables, e.g.:
> - ${GLOG_LIBRARIES}
> + glog::glog
>
> interestingly glog::glog passes the glog library with whole path, in my
> case:
> /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/ \
> mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot/usr/lib/ \
> libglog.so.0.3.5 -lunwind -lunwind-aarch64
> instead of just -lglog -unwind -lunwind-aarch64 which would work as
> well, because sysroot is configured correctly elsewhere.
>
> I'm not sure if this is really expected behavior of glog::glog or
> another bug in glog-config.cmake.
>
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
> .../0002-Find-Libunwind-during-configure.patch | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git
> a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> index 15cf67fd2e..4d7642a907 100644
> ---
> a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> +++
> b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> @@ -109,12 +109,21 @@ diff -uNr a/CMakeLists.txt b/CMakeLists.txt
>
> install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
> diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
> ---- a/glog-config.cmake.in 2018-11-20 15:49:07.576278417 +0100
> -+++ b/glog-config.cmake.in 2018-11-20 15:52:32.330418489 +0100
> -@@ -4,4 +4,6 @@
> +--- a/glog-config.cmake.in 2018-11-02 14:02:21.784835854 +0100
> ++++ b/glog-config.cmake.in 2018-11-02 14:03:16.796935594 +0100
> +@@ -4,4 +4,15 @@
>
> @gflags_DEPENDENCY@
>
> ++# Record the state of the CMake module path when this script was
> ++# called so that we can ensure that we leave it in the same state on
> ++# exit as it was on entry, but modify it locally.
> ++set(UNWIND_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
> ++
> ++set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
> +find_dependency (Libunwind)
> ++
> ++# Restore original module path
> ++set(CMAKE_MODULE_PATH "${UNWIND_CMAKE_MODULE_PATH}")
> +
> include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
> --
> 2.17.1
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH][meta-oe] glog: fix libunwind search in components which depend on glog
2018-12-05 16:58 ` Martin Jansa
@ 2018-12-05 21:33 ` Khem Raj
0 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2018-12-05 21:33 UTC (permalink / raw)
To: Martin Jansa; +Cc: openembeded-devel
Thanks Martin, I have picked https://patchwork.openembedded.org/patch/156922/
hopefully that is all we need
On Wed, Dec 5, 2018 at 8:58 AM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> This might be actually unnecessary with the:
>
> +list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
>
> which sneaked in, in the "glog: fix installation path"
>
> On Wed, Dec 5, 2018 at 4:00 PM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> > * libunwind is not found when using find_package(glog) from some
> > other recipe, without this change it fails with:
> >
> > CMake Error at
> > /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot-native/usr/share/cmake-3.12/Modules/CMakeFindDependencyMacro.cmake:48
> > (find_package):
> > By not providing "FindLibunwind.cmake" in CMAKE_MODULE_PATH this project
> > has asked CMake to find a package configuration file provided by
> > "Libunwind", but CMake did not find one.
> >
> > Could not find a package configuration file provided by "Libunwind" with
> > any of the following names:
> >
> > LibunwindConfig.cmake
> > libunwind-config.cmake
> >
> > Add the installation prefix of "Libunwind" to CMAKE_PREFIX_PATH or set
> > "Libunwind_DIR" to a directory containing one of the above files. If
> > "Libunwind" provides a separate development package or SDK, be sure it
> > has
> > been installed.
> > Call Stack (most recent call first):
> >
> > /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot/usr/lib/cmake/glog/glog-config.cmake:31
> > (find_dependency)
> > CMakeLists.txt:17 (find_package)
> >
> > -- Configuring incomplete, errors occurred!
> >
> > * this might help others when upgrading to thud which has newer glog:
> >
> > mtp-server in meta-luneos layer is the only user of glog I could find
> > in public layers, it was failing to build with 0.3.5 version of glog
> > (and building fine with 0.3.4 glog which was built with autotools
> > instead of cmake and provided pkg-config instead of glog-config.cmake)
> >
> > First part is relatively simple, update CMakeLists.txt to use cmake
> > machinery instead of pkg-config:
> >
> > -pkg_check_modules(GLOG REQUIRED libglog)
> > +find_package(glog 0.3.5 REQUIRED)
> >
> > and update the use of GLOG_* variables, e.g.:
> > - ${GLOG_LIBRARIES}
> > + glog::glog
> >
> > interestingly glog::glog passes the glog library with whole path, in my
> > case:
> > /OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/ \
> > mtp-server/0.0.3+gitrAUTOINC+6159f1a143-r0/recipe-sysroot/usr/lib/ \
> > libglog.so.0.3.5 -lunwind -lunwind-aarch64
> > instead of just -lglog -unwind -lunwind-aarch64 which would work as
> > well, because sysroot is configured correctly elsewhere.
> >
> > I'm not sure if this is really expected behavior of glog::glog or
> > another bug in glog-config.cmake.
> >
> > Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> > ---
> > .../0002-Find-Libunwind-during-configure.patch | 15 ++++++++++++---
> > 1 file changed, 12 insertions(+), 3 deletions(-)
> >
> > diff --git
> > a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> > b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> > index 15cf67fd2e..4d7642a907 100644
> > ---
> > a/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> > +++
> > b/meta-oe/recipes-support/glog/glog/0002-Find-Libunwind-during-configure.patch
> > @@ -109,12 +109,21 @@ diff -uNr a/CMakeLists.txt b/CMakeLists.txt
> >
> > install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
> > diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
> > ---- a/glog-config.cmake.in 2018-11-20 15:49:07.576278417 +0100
> > -+++ b/glog-config.cmake.in 2018-11-20 15:52:32.330418489 +0100
> > -@@ -4,4 +4,6 @@
> > +--- a/glog-config.cmake.in 2018-11-02 14:02:21.784835854 +0100
> > ++++ b/glog-config.cmake.in 2018-11-02 14:03:16.796935594 +0100
> > +@@ -4,4 +4,15 @@
> >
> > @gflags_DEPENDENCY@
> >
> > ++# Record the state of the CMake module path when this script was
> > ++# called so that we can ensure that we leave it in the same state on
> > ++# exit as it was on entry, but modify it locally.
> > ++set(UNWIND_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
> > ++
> > ++set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
> > +find_dependency (Libunwind)
> > ++
> > ++# Restore original module path
> > ++set(CMAKE_MODULE_PATH "${UNWIND_CMAKE_MODULE_PATH}")
> > +
> > include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
> > --
> > 2.17.1
> >
> >
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-12-05 21:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-05 12:13 [meta-oe][PATCH] glog: fix installation path Vyacheslav Yurkov
2018-12-05 15:00 ` [PATCH][meta-oe] glog: fix libunwind search in components which depend on glog Martin Jansa
2018-12-05 16:58 ` Martin Jansa
2018-12-05 21:33 ` Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.