summaryrefslogtreecommitdiffstats
path: root/extras/sysrepo
diff options
context:
space:
mode:
authorJordan Augé <jordan.auge+fdio@cisco.com>2019-12-02 14:28:22 +0100
committerLuca Muscariello <muscariello@ieee.org>2019-12-04 09:45:43 +0000
commit2bfd3335ff11281d703cb7f422bb17da2d3a6bcd (patch)
tree278c097859d17c3f96c84d432ab1ef5c80e9a6d2 /extras/sysrepo
parent3e0ff4e7897bb8bc03538f1b2643fe73de158714 (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.txt47
-rw-r--r--extras/sysrepo/cmake/Modules/Packaging.cmake35
-rw-r--r--extras/sysrepo/sysrepo.patch46
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