diff options
author | Jordan Augé <jordan.auge+fdio@cisco.com> | 2019-12-02 14:28:22 +0100 |
---|---|---|
committer | Luca Muscariello <muscariello@ieee.org> | 2019-12-04 09:45:43 +0000 |
commit | 2bfd3335ff11281d703cb7f422bb17da2d3a6bcd (patch) | |
tree | 278c097859d17c3f96c84d432ab1ef5c80e9a6d2 /extras/sysrepo | |
parent | 3e0ff4e7897bb8bc03538f1b2643fe73de158714 (diff) |
to fix HICN-421 by adding cpack to libyang and sysrepo
Signed-off-by: Luca Muscariello <muscariello@ieee.org>
Change-Id: Ia9e0752f877c7fc0be6df85664d18e1caad86741
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Diffstat (limited to 'extras/sysrepo')
-rw-r--r-- | extras/sysrepo/CMakeLists.txt | 47 | ||||
-rw-r--r-- | extras/sysrepo/cmake/Modules/Packaging.cmake | 35 | ||||
-rw-r--r-- | extras/sysrepo/sysrepo.patch | 46 |
3 files changed, 128 insertions, 0 deletions
diff --git a/extras/sysrepo/CMakeLists.txt b/extras/sysrepo/CMakeLists.txt new file mode 100644 index 000000000..071c7f5bd --- /dev/null +++ b/extras/sysrepo/CMakeLists.txt @@ -0,0 +1,47 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +cmake_minimum_required(VERSION 2.8) +project(sysrepo) + +set(CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules" +) + +include(ExternalProject) +include(Packaging) + +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + set(SYSREPO sysrepo) +endif() + +execute_process( + COMMAND bash -c "if [ ! -d sysrepo ]; then + git clone https://github.com/sysrepo/sysrepo.git -b devel --depth 1 sysrepo; + cd sysrepo; git apply ${CMAKE_CURRENT_SOURCE_DIR}/sysrepo.patch; + else + pushd sysrepo && git pull && popd; + fi" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +) + +add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/sysrepo ${CMAKE_CURRENT_BINARY_DIR}/sysrepo) + + +include(Packaging) +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + include(Packager) + make_packages() +endif()
\ No newline at end of file diff --git a/extras/sysrepo/cmake/Modules/Packaging.cmake b/extras/sysrepo/cmake/Modules/Packaging.cmake new file mode 100644 index 000000000..db407616a --- /dev/null +++ b/extras/sysrepo/cmake/Modules/Packaging.cmake @@ -0,0 +1,35 @@ +# Copyright (c) 2017-2019 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Generate DEB / RPM packages + +###################### +# Packages section +###################### + +set(sysrepo_DESCRIPTION +"Sysrepo is a YANG-based configuration and operational datastore." + CACHE STRING "Description for deb/rpm package." +) + +set(sysrepo_DEB_DEPENDENCIES + "libpcre3 (>= 2:8.39-9), libev4 (>= 1:4.22-1), libprotobuf-c1 (>= 1.2.1-2), libyang (>= 0.16-r2-1), libavl1 (>=0.3.5-4)" + CACHE STRING "Dependencies for deb/rpm package." +) + +set(sysrepo_RPM_DEPENDENCIES + "libpcre3 (>= 2:8.39-9), libev4 (>= 1:4.22-1), libprotobuf-c1 (>= 1.2.1-2), libyang (>= 0.16-r2-1), libavl1 (>=0.3.5-4)" + CACHE STRING "Dependencies for deb/rpm package." +) + + diff --git a/extras/sysrepo/sysrepo.patch b/extras/sysrepo/sysrepo.patch new file mode 100644 index 000000000..3412c5e17 --- /dev/null +++ b/extras/sysrepo/sysrepo.patch @@ -0,0 +1,46 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 181387b0..356bf32c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,6 +6,11 @@ include(CheckSymbolExists) + include(CheckIncludeFile) + include(CheckStructHasMember) + ++set(CMAKE_MODULE_PATH ++ ${CMAKE_MODULE_PATH} ++ "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" ++) ++ + # osx specific + set(CMAKE_MACOSX_RPATH TRUE) + +@@ -206,13 +211,13 @@ add_executable(sysrepo-plugind ${SYSREPOPLUGIND_SRC}) + target_link_libraries(sysrepo-plugind sysrepo dl) + + # installation +-install(TARGETS sysrepo DESTINATION ${CMAKE_INSTALL_LIBDIR}) +-install(FILES ${PROJECT_SOURCE_DIR}/src/sysrepo.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ++install(TARGETS sysrepo DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sysrepo) ++install(FILES ${PROJECT_SOURCE_DIR}/src/sysrepo.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT sysrepo) + install(FILES ${PROJECT_SOURCE_DIR}/src/utils/values.h ${PROJECT_SOURCE_DIR}/src/utils/xpath.h +- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sysrepo) +-install(TARGETS sysrepoctl sysrepocfg sysrepo-plugind DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sysrepo COMPONENT sysrepo) ++install(TARGETS sysrepoctl sysrepocfg sysrepo-plugind DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT sysrepo) + +-install(FILES "${PROJECT_BINARY_DIR}/libsysrepo.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++install(FILES "${PROJECT_BINARY_DIR}/libsysrepo.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT sysrepo) + + # doxygen documentation + find_package(Doxygen) +@@ -266,3 +271,9 @@ add_custom_target(sr_clean + add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_MODULE_PATH}/uninstall.cmake") + add_custom_target(uninstall_with_repo "${CMAKE_COMMAND}" -P "${CMAKE_MODULE_PATH}/uninstall.cmake" + COMMAND rm -rf ${REPOSITORY_LOC}) ++ ++ include(Packaging) ++ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) ++ include(Packager) ++ make_packages() ++ endif() +\ No newline at end of file |