Please rebase the unwind fix on top of https://patchwork.openembedded.org/patch/155662/
On Wed, Oct 17, 2018 at 3:40 PM Vyacheslav Yurkov <[email protected]> wrote: > Build glog as a shared library by default. Backported CMake patch > from master that sets SONAME properly. Updated the patch for libunwind > look up > and added libunwind as a run-time dependency > > Signed-off-by: Vyacheslav Yurkov <[email protected]> > --- > ...0001-find-libunwind-during-configure.patch | 80 +++++++++++++---- > .../glog/0002-rework-cmake-glog-version.patch | 87 +++++++++++++++++++ > meta-oe/recipes-support/glog/glog_0.3.5.bb | 7 +- > 3 files changed, 153 insertions(+), 21 deletions(-) > create mode 100644 > meta-oe/recipes-support/glog/glog/0002-rework-cmake-glog-version.patch > > diff --git > a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > b/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > index 33dc9d38a..6becdc15f 100644 > --- > a/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > +++ > b/meta-oe/recipes-support/glog/glog/0001-find-libunwind-during-configure.patch > @@ -1,30 +1,74 @@ > -diff -ur git/CMakeLists.txt ../0.3.5-r0.unwind/git/CMakeLists.txt > ---- git/CMakeLists.txt 2018-10-08 08:54:15.118989400 +0200 > -+++ ../0.3.5-r0.unwind/git/CMakeLists.txt 2018-10-05 > 16:26:59.745922318 +0200 > -@@ -384,7 +384,9 @@ > +diff -ur --new-file git/cmake/FindLibunwind.cmake > ../0.3.5-r0.unwind/git/cmake/FindLibunwind.cmake > +--- git/cmake/FindLibunwind.cmake 1970-01-01 01:00:00.000000000 +0100 > ++++ ../0.3.5-r0.unwind/git/cmake/FindLibunwind.cmake 2018-10-09 > 09:43:59.803216273 +0200 > +@@ -0,0 +1,17 @@ > ++# - Try to find libunwind > ++# Once done this will define > ++# > ++# LIBUNWIND_FOUND - system has libunwind > ++# unwind - cmake target for libunwind > ++ > ++find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") > ++ > ++include(FindPackageHandleStandardArgs) > ++# handle the QUIETLY and REQUIRED arguments and set Libunwind_FOUND to > TRUE > ++# if all listed variables are TRUE > ++find_package_handle_standard_args(Libunwind DEFAULT_MSG UNWIND_LIBRARY) > ++ > ++mark_as_advanced (UNWIND_LIBRARY) > ++ > ++add_library(unwind SHARED IMPORTED) > ++set_target_properties(unwind PROPERTIES IMPORTED_LOCATION > ${UNWIND_LIBRARY}) > +diff -ur --new-file git/CMakeLists.txt > ../0.3.5-r0.unwind/git/CMakeLists.txt > +--- git/CMakeLists.txt 2018-10-09 10:31:33.483584675 +0200 > ++++ ../0.3.5-r0.unwind/git/CMakeLists.txt 2018-10-09 > 09:43:59.799215966 +0200 > +@@ -118,8 +118,7 @@ > + > + check_library_exists (unwind get_static_proc_name "" HAVE_LIB_UNWIND) > + > +-find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") > +-mark_as_advanced (UNWIND_LIBRARY) > ++find_package(Libunwind) > + > + check_c_source_compiles (" > + #include <stdlib.h> > +@@ -383,9 +382,9 @@ > + > set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON) > > - if (UNWIND_LIBRARY) > +-if (UNWIND_LIBRARY) > - target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY}) > -+ add_library(unwind SHARED IMPORTED) > -+ set_target_properties(unwind PROPERTIES IMPORTED_LOCATION > ${UNWIND_LIBRARY}) > +-endif (UNWIND_LIBRARY) > ++if (Libunwind_FOUND) > + target_link_libraries (glog PUBLIC unwind) > - endif (UNWIND_LIBRARY) > ++endif (Libunwind_FOUND) > > if (HAVE_PTHREAD) > -diff -ur git/glog-config.cmake.in ../0.3.5-r0.unwind/git/ > glog-config.cmake.in > ---- git/glog-config.cmake.in 2018-10-08 08:54:15.122989699 +0200 > -+++ ../0.3.5-r0.unwind/git/glog-config.cmake.in 2018-10-08 > 08:14:48.550745810 +0200 > -@@ -4,4 +4,12 @@ > + target_link_libraries (glog PUBLIC ${CMAKE_THREAD_LIBS_INIT}) > +@@ -578,6 +577,7 @@ > + install (FILES > + ${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) > + > + install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog) > +diff -ur --new-file git/glog-config.cmake.in ../0.3.5-r0.unwind/git/ > glog-config.cmake.in > +--- git/glog-config.cmake.in 2018-10-09 10:31:33.487584975 +0200 > ++++ ../0.3.5-r0.unwind/git/glog-config.cmake.in 2018-10-09 > 09:43:59.799215966 +0200 > +@@ -4,4 +4,15 @@ > > @gflags_DEPENDENCY@ > > -+find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library") > -+mark_as_advanced (UNWIND_LIBRARY) > ++# 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) > + > -+if (UNWIND_LIBRARY) > -+ add_library(unwind SHARED IMPORTED) > -+ set_target_properties(unwind PROPERTIES IMPORTED_LOCATION > ${UNWIND_LIBRARY}) > -+endif (UNWIND_LIBRARY) > ++# Restore original module path > ++set(CMAKE_MODULE_PATH "${UNWIND_CMAKE_MODULE_PATH}") > + > include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake") > diff --git > a/meta-oe/recipes-support/glog/glog/0002-rework-cmake-glog-version.patch > b/meta-oe/recipes-support/glog/glog/0002-rework-cmake-glog-version.patch > new file mode 100644 > index 000000000..8066e2718 > --- /dev/null > +++ > b/meta-oe/recipes-support/glog/glog/0002-rework-cmake-glog-version.patch > @@ -0,0 +1,87 @@ > +diff -ur git/CMakeLists.txt ../0.3.5-r0/git/CMakeLists.txt > +--- git/CMakeLists.txt 2018-10-17 15:02:49.241749024 +0200 > ++++ ../0.3.5-r0/git/CMakeLists.txt 2018-10-17 15:13:59.703188731 +0200 > +@@ -1,3 +1,26 @@ > ++## CMake configuration file of glog project > ++## > ++## When this project is a subproject. The "glog::glog" target is in this > case > ++## an ALIAS library target for the "glog" library target. Targets which > depend > ++## on the glog library should link to the "glog::glog" library target. > ++## > ++## Example CMakeLists.txt of user project which requires separate glog > installation: > ++## cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) > ++## project(Foo) > ++## > ++## find_package(glog REQUIRED) > ++## > ++## add_executable(foo src/foo.cc) > ++## target_link_libraries(foo glog::glog) > ++## > ++## Example CMakeLists.txt of super-project which contains glog source > tree: > ++## cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) > ++## project(Foo) > ++## > ++## add_subdirectory(glog) > ++## > ++## add_executable(foo src/foo.cc) > ++## target_link_libraries(foo glog::glog) > + cmake_minimum_required (VERSION 3.0) > + > + if (POLICY CMP0042) > +@@ -8,23 +31,14 @@ > + cmake_policy (SET CMP0063 NEW) > + endif (POLICY CMP0063) > + > +-project (google-glog) > +- > +-enable_testing () > +- > +-set (GLOG_MAJOR_VERSION 0) > +-set (GLOG_MINOR_VERSION 3) > +-set (GLOG_PATCH_VERSION 5) > +- > +-set (GLOG_VERSION > +- ${GLOG_MAJOR_VERSION}.${GLOG_MINOR_VERSION}.${GLOG_PATCH_VERSION}) > ++project(glog VERSION 0.3.5 LANGUAGES C CXX) > + > + set (CPACK_PACKAGE_NAME glog) > + set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "") > +-set (CPACK_PACKAGE_VERSION_MAJOR ${GLOG_MAJOR_VERSION}) > +-set (CPACK_PACKAGE_VERSION_MINOR ${GLOG_MINOR_VERSION}) > +-set (CPACK_PACKAGE_VERSION_PATCH ${GLOG_PATCH_VERSION}) > +-set (CPACK_PACKAGE_VERSION ${GLOG_VERSION}) > ++set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_MAJOR_VERSION}) > ++set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_MINOR_VERSION}) > ++set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_PATCH_VERSION}) > ++set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) > + > + option (WITH_GFLAGS "Use gflags" ON) > + option (WITH_THREADS "Enable multithreading support" ON) > +@@ -379,6 +393,7 @@ > + add_library (glog > + ${GLOG_SRCS} > + ) > ++add_library(glog::glog ALIAS glog) > + > + set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON) > + > +@@ -405,8 +420,8 @@ > + endif (NOT BUILD_SHARED_LIBS) > + endif (gflags_FOUND) > + > +-set_target_properties (glog PROPERTIES VERSION ${GLOG_MAJOR_VERSION}) > +-set_target_properties (glog PROPERTIES SOVERSION ${GLOG_VERSION}) > ++set_target_properties (glog PROPERTIES VERSION ${PROJECT_VERSION}) > ++set_target_properties (glog PROPERTIES SOVERSION > ${PROJECT_VERSION_MAJOR}) > + > + if (WIN32) > + target_compile_definitions (glog PUBLIC GLOG_NO_ABBREVIATED_SEVERITIES) > +@@ -569,7 +584,7 @@ > + NO_CHECK_REQUIRED_COMPONENTS_MACRO) > + > + write_basic_package_version_file (glog-config-version.cmake VERSION > +- ${GLOG_VERSION} COMPATIBILITY SameMajorVersion) > ++ ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion) > + > + export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake) > + export (PACKAGE glog) > 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 bf7df53f3..10347bb36 100644 > --- a/meta-oe/recipes-support/glog/glog_0.3.5.bb > +++ b/meta-oe/recipes-support/glog/glog_0.3.5.bb > @@ -11,6 +11,7 @@ DEPENDS = "libunwind" > SRC_URI = " \ > git://github.com/google/glog.git;branch=v035 \ > file://0001-find-libunwind-during-configure.patch \ > + file://0002-rework-cmake-glog-version.patch \ > " > > SRCREV = "a6a166db069520dbbd653c97c2e5b12e08a8bb26" > @@ -19,6 +20,6 @@ S = "${WORKDIR}/git" > > inherit cmake > > -RDEPENDS_${PN}-dev = "" > -RRECOMMENDS_${PN}-dev = "${PN}-staticdev" > -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" > +EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON" > + > +RDEPENDS_${PN} += "libunwind" > -- > 2.19.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-devel > -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
