From 34cc9b34ece4e078343c264acaf4b9962a57969b Mon Sep 17 00:00:00 2001 From: Anssi Jaatinen Date: Fri, 8 May 2020 20:48:22 +0300 Subject: dev-libs/json-c: add patch for static-libs support Enable building both static and shared libraries. Closes: https://bugs.gentoo.org/720742 Signed-off-by: Anssi Jaatinen Signed-off-by: Jakov Smolic Signed-off-by: Luka Perkov Signed-off-by: Joonas Niilola --- .../files/json-c-0.14_cmake-static-libs.patch | 56 ++++++++++++++++++++++ dev-libs/json-c/json-c-0.14-r1.ebuild | 52 ++++++++++++++++++++ dev-libs/json-c/json-c-0.14.ebuild | 47 ------------------ 3 files changed, 108 insertions(+), 47 deletions(-) create mode 100644 dev-libs/json-c/files/json-c-0.14_cmake-static-libs.patch create mode 100644 dev-libs/json-c/json-c-0.14-r1.ebuild delete mode 100644 dev-libs/json-c/json-c-0.14.ebuild (limited to 'dev-libs/json-c') diff --git a/dev-libs/json-c/files/json-c-0.14_cmake-static-libs.patch b/dev-libs/json-c/files/json-c-0.14_cmake-static-libs.patch new file mode 100644 index 000000000000..3913fc320bca --- /dev/null +++ b/dev-libs/json-c/files/json-c-0.14_cmake-static-libs.patch @@ -0,0 +1,56 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ba692ff..fc2edff 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -65,6 +65,7 @@ include(GNUInstallDirs) + include(CMakePackageConfigHelpers) + + option(BUILD_SHARED_LIBS "Default to building shared libraries" ON) ++option(BUILD_STATIC_LIBS "Default to building static libraries" OFF) + + # Generate a release merge and test it to verify the correctness of republishing the package. + ADD_CUSTOM_TARGET(distcheck +@@ -383,7 +384,7 @@ add_library(${PROJECT_NAME} + set_target_properties(${PROJECT_NAME} PROPERTIES + VERSION 5.0.0 + SOVERSION 5) +- ++list(APPEND CMAKE_TARGETS ${PROJECT_NAME}) + # If json-c is used as subroject it set to target correct interface -I flags and allow + # to build external target without extra include_directories(...) + target_include_directories(${PROJECT_NAME} +@@ -392,7 +393,33 @@ target_include_directories(${PROJECT_NAME} + $ + ) + +-install(TARGETS ${PROJECT_NAME} ++# Allow to build static and shared libraries at the same time ++if (BUILD_STATIC_LIBS) ++ set(STATIC_LIB ${PROJECT_NAME}-static) ++ add_library(${STATIC_LIB} STATIC ++ ${JSON_C_SOURCES} ++ ${JSON_C_HEADERS} ++ ) ++ ++ # rename the static library ++ set_target_properties(${STATIC_LIB} PROPERTIES ++ OUTPUT_NAME ${PROJECT_NAME} ++ ) ++ list(APPEND CMAKE_TARGETS ${STATIC_LIB}) ++endif () ++ ++# Always create new install dirs with 0755 permissions, regardless of umask ++set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS ++ OWNER_READ ++ OWNER_WRITE ++ OWNER_EXECUTE ++ GROUP_READ ++ GROUP_EXECUTE ++ WORLD_READ ++ WORLD_EXECUTE ++ ) ++ ++install(TARGETS ${CMAKE_TARGETS} + EXPORT ${PROJECT_NAME}-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/dev-libs/json-c/json-c-0.14-r1.ebuild b/dev-libs/json-c/json-c-0.14-r1.ebuild new file mode 100644 index 000000000000..90731d8f93d0 --- /dev/null +++ b/dev-libs/json-c/json-c-0.14-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +CMAKE_ECLASS=cmake +inherit cmake-multilib + +DESCRIPTION="A JSON implementation in C" +HOMEPAGE="https://github.com/json-c/json-c/wiki" +SRC_URI="https://s3.amazonaws.com/json-c_releases/releases/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="doc static-libs threads" + +PATCHES=( + "${FILESDIR}/${P}_cmake-static-libs.patch" +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/json-c/config.h +) + +src_prepare() { + cmake_src_prepare +} + +multilib_src_configure() { + local mycmakeargs=( + -DBUILD_DOCUMENTATION=$(multilib_native_usex doc) + -DBUILD_STATIC_LIBS=$(usex static-libs) + -DDISABLE_WERROR=ON + -DENABLE_THREADING=$(usex threads) + ) + + cmake_src_configure +} + +multilib_src_compile() { + cmake_src_compile +} + +multilib_src_test() { + multilib_is_native_abi && cmake_src_test +} + +multilib_src_install_all() { + use doc && HTML_DOCS=( "${S}"/doc/html/. ) + einstalldocs +} diff --git a/dev-libs/json-c/json-c-0.14.ebuild b/dev-libs/json-c/json-c-0.14.ebuild deleted file mode 100644 index 5ce2710a3816..000000000000 --- a/dev-libs/json-c/json-c-0.14.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -CMAKE_ECLASS=cmake -inherit cmake-multilib - -DESCRIPTION="A JSON implementation in C" -HOMEPAGE="https://github.com/json-c/json-c/wiki" -SRC_URI="https://s3.amazonaws.com/json-c_releases/releases/${P}.tar.gz" - -LICENSE="MIT" -SLOT="0/5" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" -IUSE="doc static-libs threads" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/json-c/config.h -) - -src_prepare() { - cmake_src_prepare -} - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_DOCUMENTATION=$(multilib_native_usex doc) - -DDISABLE_WERROR=ON - -DENABLE_THREADING=$(usex threads) - ) - - cmake_src_configure -} - -multilib_src_compile() { - cmake_src_compile -} - -multilib_src_test() { - multilib_is_native_abi && cmake_src_test -} - -multilib_src_install_all() { - use doc && HTML_DOCS=( "${S}"/doc/html/. ) - einstalldocs -} -- cgit v1.2.3