[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