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

Ruslan Bilovol rbilovol at cisco.com
Thu Feb 7 17:31:38 UTC 2019


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?

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

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