[oe] [meta-oe] [PATCH] rapidjson: fix cmake artifacts installation for non-default BASELIB case

Khem Raj raj.khem at gmail.com
Thu Feb 7 17:59:14 UTC 2019


On Thu, Feb 7, 2019 at 9:31 AM Ruslan Bilovol <rbilovol at cisco.com> wrote:
>
> Hi Khem,
>
> I see you picked up this patch to master-next, but the patch's author
> is incorrect:
> https://git.openembedded.org/meta-openembedded/commit/?h=master-next&id=cf54629463841242ce1faa90f6ad4a2383df3b2c
>
> Could you please fix it?
>

sure


> This is the same issue we faced with oe-core mailing list, I remember
> Richard Purdie had some scripts to fix it automatically
>

I wonder why is this happening? May be Michael can help us understand,
why patchwork would feed a worng author or is it
some email client error somewhere?
> Thanks,
> Ruslan
>
> On 2/7/19 1:00 PM, Ruslan Bilovol wrote:
> > If BASELIB is set to non-default value (like lib64),
> > next 'installed but not shipped' issue happens:
> >    /usr/lib
> >    /usr/lib/cmake
> >    /usr/lib/pkgconfig
> >    /usr/lib/cmake/RapidJSON
> >    /usr/lib/cmake/RapidJSON/RapidJSONConfigVersion.cmake
> >    /usr/lib/cmake/RapidJSON/RapidJSONConfig.cmake
> >    /usr/lib/pkgconfig/RapidJSON.pc
> >
> > This is because rapidjson has library installation dir set
> > to 'lib' by default and hardcoded in another place.
> > Fix this by next changes:
> >   - set appropriate LIB_INSTALL_DIR
> >   - fix hardcoded 'lib' in CMAKECONFIG_INSTALL_DIR case
> >
> > Signed-off-by: Ruslan Bilovol <rbilovol at cisco.com>
> > ---
> >   ...ve-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch | 36 ++++++++++++++++++++++
> >   .../recipes-devtools/rapidjson/rapidjson_git.bb    |  5 +--
> >   2 files changed, 39 insertions(+), 2 deletions(-)
> >   create mode 100644 meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch
> >
> > diff --git a/meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch b/meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch
> > new file mode 100644
> > index 0000000..745f5d0
> > --- /dev/null
> > +++ b/meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch
> > @@ -0,0 +1,36 @@
> > +From 8d272e53a4d1dc405e08ce2dd50159c58f4451e9 Mon Sep 17 00:00:00 2001
> > +From: Ruslan Bilovol <rbilovol at cisco.com>
> > +Date: Thu, 24 Jan 2019 18:11:39 +0200
> > +Subject: [PATCH] CMake: remove hardcoded CMAKECONFIG_INSTALL_DIR path
> > +
> > +Currently this path is hardcoded to lib/cmake.
> > +Some distributions have different library path (like lib64).
> > +So reuse LIB_INSTALL_DIR for that to make CMAKECONFIG_INSTALL_DIR
> > +configurable and usable in such distros.
> > +
> > +Upstream-Status: Backport [https://github.com/Tencent/rapidjson/commit/8d272e53a4d1dc405e08ce2dd50159c58f4451e9]
> > +
> > +Signed-off-by: Ruslan Bilovol <rbilovol at cisco.com>
> > +---
> > + CMakeLists.txt | 4 ++--
> > + 1 file changed, 2 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/CMakeLists.txt b/CMakeLists.txt
> > +index 7c60407..0275672 100644
> > +--- a/CMakeLists.txt
> > ++++ b/CMakeLists.txt
> > +@@ -199,9 +199,9 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}ConfigVersion.cmake.in
> > +     ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake @ONLY)
> > +
> > + # ... for the install tree
> > +-SET( CMAKECONFIG_INSTALL_DIR lib/cmake/${PROJECT_NAME} )
> > ++SET( CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME} )
> > + FILE( RELATIVE_PATH REL_INCLUDE_DIR
> > +-    "${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR}"
> > ++    "${CMAKECONFIG_INSTALL_DIR}"
> > +     "${CMAKE_INSTALL_PREFIX}/include" )
> > +
> > + SET( ${PROJECT_NAME}_INCLUDE_DIR "\${${PROJECT_NAME}_CMAKE_DIR}/${REL_INCLUDE_DIR}" )
> > +--
> > +1.9.1
> > +
> > diff --git a/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
> > index c90eab0..e3ed9c6 100644
> > --- a/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
> > +++ b/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
> > @@ -4,7 +4,8 @@ SECTION = "libs"
> >   LICENSE = "MIT"
> >   LIC_FILES_CHKSUM = "file://license.txt;md5=ba04aa8f65de1396a7e59d1d746c2125"
> >
> > -SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1"
> > +SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1 \
> > +           file://0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch"
> >
> >   SRCREV = "6a905f9311f82d306da77bd963ec5aa5da07da9c"
> >
> > @@ -14,7 +15,7 @@ S = "${WORKDIR}/git"
> >
> >   inherit cmake
> >
> > -EXTRA_OECMAKE += "-DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF"
> > +EXTRA_OECMAKE += "-DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF -DLIB_INSTALL_DIR:STRING=${libdir}"
> >
> >   # RapidJSON is a header-only C++ library, so the main package will be empty.
> >
> >


More information about the Openembedded-devel mailing list