libyang 1.0.73 (#3710)
- build libyang1.0.73 debian pacakge from libyang github source - build libyang python2 and python3 debian packages
This commit is contained in:
parent
a5e2799b33
commit
bdf1b7c607
@ -1,23 +1,32 @@
|
||||
# libyang
|
||||
|
||||
LIBYANG_VERSION_BASE = 0.16
|
||||
LIBYANG_VERSION = $(LIBYANG_VERSION_BASE).105
|
||||
LIBYANG_VERSION_BASE = 1.0
|
||||
LIBYANG_VERSION = $(LIBYANG_VERSION_BASE).73
|
||||
LIBYANG_SUBVERSION = 1
|
||||
|
||||
export LIBYANG_VERSION_BASE
|
||||
export LIBYANG_VERSION
|
||||
export LIBYANG_SUBVERSION
|
||||
|
||||
LIBYANG = libyang$(LIBYANG_VERSION_BASE)_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
LIBYANG = libyang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(LIBYANG)_SRC_PATH = $(SRC_PATH)/libyang
|
||||
$(LIBYANG)_DEPENDS += $(SWIG_BASE) $(SWIG)
|
||||
SONIC_MAKE_DEBS += $(LIBYANG)
|
||||
SONIC_STRETCH_DEBS += $(LIBYANG)
|
||||
|
||||
LIBYANG_DEV = libyang-dev_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
LIBYANG_DEV = libyang-dev_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_DEV)))
|
||||
|
||||
LIBYANG_DBG = libyang$(LIBYANG_VERSION_BASE)-dbgsym_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
|
||||
LIBYANG_DBG = libyang-dbg_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_DBG)))
|
||||
|
||||
export LIBYANG LIBYANG_DEV LIBYANG_DBG
|
||||
LIBYANG_CPP = libyang-cpp_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_CPP)))
|
||||
|
||||
LIBYANG_PY3 = python3-yang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_PY3)))
|
||||
|
||||
LIBYANG_PY2 = python2-yang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_PY2)))
|
||||
|
||||
export LIBYANG LIBYANG_DBG LIBYANG_DEV LIBYANG_CPP LIBYANG_PY3 LIBYANG_PY2
|
||||
|
@ -3,19 +3,26 @@ SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MAIN_TARGET = $(LIBYANG)
|
||||
DERIVED_TARGETS = $(LIBYANG_DEV) $(LIBYANG_DBG)
|
||||
DERIVED_TARGETS = $(LIBYANG_DEV) $(LIBYANG_DBG) $(LIBYANG_PY2) $(LIBYANG_PY3) $(LIBYANG_CPP)
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
# Obtaining the libyang
|
||||
rm -fr ./libyang-$(LIBYANG_VERSION)
|
||||
wget -O libyang_$(LIBYANG_VERSION).orig.tar.gz 'https://sonicstorage.blob.core.windows.net/packages/libyang_0.16.105.orig.tar.gz?sv=2015-04-05&sr=b&sig=yTWDhl6B9TTXWAQ46zpLiNxUib61W7U0%2F%2FGvhRibKOc%3D&se=2046-09-30T22%3A10%3A27Z&sp=r'
|
||||
wget -O libyang_$(LIBYANG_VERSION).dsc 'https://sonicstorage.blob.core.windows.net/packages/libyang_0.16.105-1.dsc?sv=2015-04-05&sr=b&sig=eLkO5wzB1C5oKNIaUPro4gwrgEC3EygIO6eCyTzHmeI%3D&se=2046-09-30T22%3A10%3A12Z&sp=r'
|
||||
wget -O libyang_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION).debian.tar.xz 'https://sonicstorage.blob.core.windows.net/packages/libyang_0.16.105-1.debian.tar.xz?sv=2015-04-05&sr=b&sig=AH18p7pKK0xIBVxZuA8EMv9%2FhXbCFKmbWAn7Za8%2BZW4%3D&se=2046-09-30T22%3A09%3A36Z&sp=r'
|
||||
dpkg-source -x libyang_$(LIBYANG_VERSION).dsc
|
||||
git clone https://github.com/CESNET/libyang.git libyang-$(LIBYANG_VERSION)
|
||||
pushd libyang-$(LIBYANG_VERSION)
|
||||
git checkout tags/v1.0-r4 -b libyang
|
||||
# Apply patch series
|
||||
stg init
|
||||
stg import -s ../patch/series
|
||||
|
||||
pushd ./libyang-$(LIBYANG_VERSION)
|
||||
dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS)
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake ..
|
||||
make build-deb
|
||||
|
||||
pushd debs
|
||||
mv $* $(DEST)/
|
||||
mv $(DERIVED_TARGETS) $(DEST)/
|
||||
popd
|
||||
|
||||
mv $(DERIVED_TARGETS) $* $(DEST)/
|
||||
|
||||
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)
|
||||
|
134
src/libyang/patch/libyang.patch
Normal file
134
src/libyang/patch/libyang.patch
Normal file
@ -0,0 +1,134 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fa562dd3..8635ba15 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -33,6 +33,7 @@ set(LIBYANG_MICRO_SOVERSION 2)
|
||||
set(LIBYANG_SOVERSION_FULL ${LIBYANG_MAJOR_SOVERSION}.${LIBYANG_MINOR_SOVERSION}.${LIBYANG_MICRO_SOVERSION})
|
||||
set(LIBYANG_SOVERSION ${LIBYANG_MAJOR_SOVERSION})
|
||||
|
||||
+set(CMAKE_INSTALL_PREFIX /usr)
|
||||
# set default build type if not specified by user
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE debug)
|
||||
diff --git a/packages/debian.control.in b/packages/debian.control.in
|
||||
index da6588b9..fb3ede48 100644
|
||||
--- a/packages/debian.control.in
|
||||
+++ b/packages/debian.control.in
|
||||
@@ -53,3 +53,15 @@ Depends: python3-yang@PACKAGE_PART_NAME@ (=@LIBYANG_VERSION@)
|
||||
Section: debug
|
||||
Architecture: any
|
||||
Description: Debug symbols of python3 bidings of libyang library.
|
||||
+
|
||||
+Package: python2-yang@PACKAGE_PART_NAME@
|
||||
+Depends: @PACKAGE_NAME@ (=@LIBYANG_VERSION@), libyang-cpp@PACKAGE_PART_NAME@ (=@LIBYANG_VERSION@)
|
||||
+Section: libs
|
||||
+Architecture: any
|
||||
+Description: Bindings of libyang library to python2 language.
|
||||
+
|
||||
+Package: python2-yang@PACKAGE_PART_NAME@-dbg
|
||||
+Depends: python2-yang@PACKAGE_PART_NAME@ (=@LIBYANG_VERSION@)
|
||||
+Section: debug
|
||||
+Architecture: any
|
||||
+Description: Debug symbols of python2 bidings of libyang library.
|
||||
diff --git a/packages/debian.python2-yang.install b/packages/debian.python2-yang.install
|
||||
new file mode 100644
|
||||
index 00000000..14ce2f3c
|
||||
--- /dev/null
|
||||
+++ b/packages/debian.python2-yang.install
|
||||
@@ -0,0 +1 @@
|
||||
+usr/lib/python2.7/dist-packages/*
|
||||
diff --git a/packages/debian.rules.in b/packages/debian.rules.in
|
||||
index d565819e..e92fe4a1 100644
|
||||
--- a/packages/debian.rules.in
|
||||
+++ b/packages/debian.rules.in
|
||||
@@ -9,10 +9,14 @@ export DH_VERBOSE=1
|
||||
override_dh_strip:
|
||||
dh_strip -plibyang@PACKAGE_PART_NAME@ --dbg-package=libyang@PACKAGE_PART_NAME@-dbg
|
||||
dh_strip -plibyang-cpp@PACKAGE_PART_NAME@ --dbg-package=libyang-cpp@PACKAGE_PART_NAME@-dbg
|
||||
+ dh_strip -ppython2-yang@PACKAGE_PART_NAME@ --dbg-package=python2-yang@PACKAGE_PART_NAME@-dbg
|
||||
dh_strip -ppython3-yang@PACKAGE_PART_NAME@ --dbg-package=python3-yang@PACKAGE_PART_NAME@-dbg
|
||||
|
||||
override_dh_auto_configure:
|
||||
- cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE:String="@BUILD_TYPE@" -DGEN_LANGUAGE_BINDINGS=ON .
|
||||
+ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE:String="@BUILD_TYPE@" -DENABLE_LYD_PRIV=ON -DGEN_LANGUAGE_BINDINGS=ON -DGEN_PYTHON_VERSION=2 .
|
||||
+
|
||||
+override_dh_makeshlibs:
|
||||
+ dh_makeshlibs -Xextensions -Xuser_types
|
||||
|
||||
override_dh_auto_test:
|
||||
ctest --output-on-failure
|
||||
diff --git a/packages/libyang.dsc.in b/packages/libyang.dsc.in
|
||||
index fdfa402b..f75ba184 100644
|
||||
--- a/packages/libyang.dsc.in
|
||||
+++ b/packages/libyang.dsc.in
|
||||
@@ -1,10 +1,10 @@
|
||||
Format: 3.0 (quilt)
|
||||
Source: @PACKAGE_NAME@
|
||||
-Binary: @PACKAGE_NAME@, @PACKAGE_NAME@-dbg, @PACKAGE_NAME@-dev, libyang-cpp@PACKAGE_PART_NAME@, libyang-cpp@PACKAGE_PART_NAME@-dev, libyang-cpp@PACKAGE_PART_NAME@-dbg, python3-yang@PACKAGE_PART_NAME@, python3-yang@PACKAGE_PART_NAME@-dbg
|
||||
+Binary: @PACKAGE_NAME@, @PACKAGE_NAME@-dbg, @PACKAGE_NAME@-dev, libyang-cpp@PACKAGE_PART_NAME@, libyang-cpp@PACKAGE_PART_NAME@-dev, libyang-cpp@PACKAGE_PART_NAME@-dbg, python3-yang@PACKAGE_PART_NAME@, python3-yang@PACKAGE_PART_NAME@-dbg python2-yang@PACKAGE_PART_NAME@, python2-yang@PACKAGE_PART_NAME@-dbg
|
||||
Maintainer: CESNET <rkrejci@cesnet.cz>
|
||||
Version: @LIBYANG_VERSION@
|
||||
Architecture: any
|
||||
Standards-Version: 3.8.2
|
||||
Homepage: https://github.com/CESNET/libyang
|
||||
Vcs-Git: https://github.com/CESNET/libyang
|
||||
-Build-Depends: debhelper (>= 9), make, gcc, doxygen, cmake, pkg-config, libpcre3-dev, libcmocka-dev, python3-dev, g++, swig (>= 3.0.12)
|
||||
+Build-Depends: debhelper (>= 9), make, gcc, doxygen, cmake, pkg-config, libpcre3-dev, libcmocka-dev, python3-dev, python2-dev, g++, swig (>= 3.0.12)
|
||||
diff --git a/packages/libyang.spec.in b/packages/libyang.spec.in
|
||||
index 6a4ac615..6939f028 100644
|
||||
--- a/packages/libyang.spec.in
|
||||
+++ b/packages/libyang.spec.in
|
||||
@@ -46,6 +46,8 @@ BuildRequires: python3-devel
|
||||
%else
|
||||
BuildRequires: python34-devel
|
||||
%endif
|
||||
+
|
||||
+BuildRequires: python2-devel
|
||||
%endif
|
||||
|
||||
Conflicts: @CONFLICT_PACKAGE_NAME@ = @LIBYANG_MAJOR_VERSION@.@LIBYANG_MINOR_VERSION@
|
||||
@@ -70,6 +72,11 @@ Summary: Binding to python
|
||||
Requires: libyang-cpp@PACKAGE_PART_NAME@ = %{version}-%{release}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
+%package -n python2-yang@PACKAGE_PART_NAME@
|
||||
+Summary: Binding to python
|
||||
+Requires: libyang-cpp@PACKAGE_PART_NAME@ = %{version}-%{release}
|
||||
+Requires: %{name} = %{version}-%{release}
|
||||
+
|
||||
%description -n libyang-cpp@PACKAGE_PART_NAME@
|
||||
Bindings of libyang library to C++ language.
|
||||
|
||||
@@ -80,6 +87,10 @@ Headers of bindings to c++ language.
|
||||
Bindings of libyang library to python language.
|
||||
%endif
|
||||
|
||||
+%description -n python2-yang@PACKAGE_PART_NAME@
|
||||
+Bindings of libyang library to python language.
|
||||
+%endif
|
||||
+
|
||||
%description devel
|
||||
Headers of libyang library.
|
||||
|
||||
@@ -167,4 +178,9 @@ make DESTDIR=%{buildroot} install
|
||||
%{_libdir}/python*
|
||||
%endif
|
||||
|
||||
+%files -n python2-yang@PACKAGE_PART_NAME@
|
||||
+%defattr(-,root,root)
|
||||
+%{_libdir}/python*
|
||||
+%endif
|
||||
+
|
||||
%changelog
|
||||
diff --git a/packages/local-deb.sh.in b/packages/local-deb.sh.in
|
||||
index 057bbc67..4318a49d 100755
|
||||
--- a/packages/local-deb.sh.in
|
||||
+++ b/packages/local-deb.sh.in
|
||||
@@ -18,6 +18,7 @@ fi
|
||||
cp "@PROJECT_SOURCE_DIR@/packages/debian.libyang-dev.install" debian/@PACKAGE_NAME@-dev.install
|
||||
cp "@PROJECT_SOURCE_DIR@/packages/debian.libyang-cpp.install" debian/libyang-cpp@PACKAGE_PART_NAME@.install
|
||||
cp "@PROJECT_SOURCE_DIR@/packages/debian.libyang-cpp-dev.install" debian/libyang-cpp@PACKAGE_PART_NAME@-dev.install
|
||||
+cp "@PROJECT_SOURCE_DIR@/packages/debian.python2-yang.install" debian/python2-yang@PACKAGE_PART_NAME@.install
|
||||
cp "@PROJECT_SOURCE_DIR@/packages/debian.python3-yang.install" debian/python3-yang@PACKAGE_PART_NAME@.install
|
||||
echo -e "@PACKAGE_NAME@ (@LIBYANG_VERSION@) stable; urgency=low\n" >debian/changelog
|
||||
git log -10 --pretty=format:' * %s (%aN)%n' 2>/dev/null >>debian/changelog || echo -e " * unknown changes \n" >>debian/changelog
|
2
src/libyang/patch/series
Normal file
2
src/libyang/patch/series
Normal file
@ -0,0 +1,2 @@
|
||||
libyang.patch
|
||||
swig.patch
|
136
src/libyang/patch/swig.patch
Normal file
136
src/libyang/patch/swig.patch
Normal file
@ -0,0 +1,136 @@
|
||||
diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt
|
||||
index 4cee36ec..0baa69ab 100644
|
||||
--- a/swig/CMakeLists.txt
|
||||
+++ b/swig/CMakeLists.txt
|
||||
@@ -20,27 +20,34 @@ endif()
|
||||
|
||||
# find Python package
|
||||
if(GEN_PYTHON_BINDINGS AND SWIG_FOUND)
|
||||
- message(STATUS "Python version ${GEN_PYTHON_VERSION} was selected")
|
||||
- unset(PYTHON_LIBRARY CACHE)
|
||||
- unset(PYTHON_EXECUTABLE CACHE)
|
||||
- unset(PYTHON_INCLUDE_DIR CACHE)
|
||||
- unset(PYTHON_LIBRARY_DEBUG CACHE)
|
||||
- if(${GEN_PYTHON_VERSION} STREQUAL "2")
|
||||
- find_package(PythonLibs 2 REQUIRED)
|
||||
- find_package(PythonInterp 2 REQUIRED)
|
||||
- if(NOT PYTHONLIBS_FOUND)
|
||||
- message(WARNING "Did not found Python version 2.x")
|
||||
- message(STATUS "Sysrepo supports Python 2.x and Python 3.x")
|
||||
- endif()
|
||||
- elseif(${GEN_PYTHON_VERSION} STREQUAL "3")
|
||||
- find_package(PythonLibs 3 REQUIRED)
|
||||
- find_package(PythonInterp 3 REQUIRED)
|
||||
- if(NOT PYTHONLIBS_FOUND)
|
||||
- message(WARNING "Did not found Python version 3.x")
|
||||
- message(STATUS "Sysrepo supports Python 2.x and Python 3.x")
|
||||
- endif()
|
||||
+ if(ENABLE_STATIC)
|
||||
+ message(WARNING "Can't create a static Python module")
|
||||
else()
|
||||
- message(WARNING "Sysrepo supports Python 2.x and Python 3.x")
|
||||
+ set(GEN_PYTHON_VERSION 2 3)
|
||||
+ foreach(CUR_PYTHON_VERSION ${GEN_PYTHON_VERSION})
|
||||
+ message(STATUS "Python version ${CUR_PYTHON_VERSION} was selected")
|
||||
+
|
||||
+ unset(PYTHON_EXECUTABLE CACHE)
|
||||
+ unset(PYTHON_INCLUDE_PATH CACHE)
|
||||
+ unset(PYTHON_EXT_SUFFIX CACHE)
|
||||
+ unset(PYTHON_MODULE_PATH CACHE)
|
||||
+ set(PYTHON_EXT_SUFFIX ".so")
|
||||
+
|
||||
+ find_program(PYTHON_EXECUTABLE NAMES python${CUR_PYTHON_VERSION})
|
||||
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
|
||||
+ "from distutils.sysconfig import get_config_var; print(get_config_var('INCLUDEPY'))"
|
||||
+ OUTPUT_VARIABLE PYTHON_INCLUDE_PATH
|
||||
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
+ #execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
|
||||
+ # "from distutils.sysconfig import get_config_var; print(get_config_var('EXT_SUFFIX'))"
|
||||
+ # OUTPUT_VARIABLE PYTHON_EXT_SUFFIX
|
||||
+ # OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
|
||||
+ "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True))"
|
||||
+ OUTPUT_VARIABLE PYTHON_MODULE_PATH
|
||||
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
+ add_subdirectory(python python${CUR_PYTHON_VERSION})
|
||||
+ endforeach(CUR_PYTHON_VERSION)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -99,12 +106,6 @@ if (GEN_CPP_BINDINGS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-if(ENABLE_STATIC AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND AND (${GEN_PYTHON_VERSION} STREQUAL "2" OR ${GEN_PYTHON_VERSION} STREQUAL "3"))
|
||||
- message(WARNING "Can't create a static Python module")
|
||||
-elseif(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND AND (${GEN_PYTHON_VERSION} STREQUAL "2" OR ${GEN_PYTHON_VERSION} STREQUAL "3"))
|
||||
- add_subdirectory(python)
|
||||
-endif()
|
||||
-
|
||||
if(NOT ENABLE_STATIC AND GEN_JAVASCRIPT_BINDINGS)
|
||||
message(WARNING "Can't create Javascript bindings with a shared library, please use -DENABLE_STATIC")
|
||||
elseif(ENABLE_STATIC AND GEN_JAVASCRIPT_BINDINGS)
|
||||
diff --git a/swig/python/CMakeLists.txt b/swig/python/CMakeLists.txt
|
||||
index 994b1234..5d18b8bf 100644
|
||||
--- a/swig/python/CMakeLists.txt
|
||||
+++ b/swig/python/CMakeLists.txt
|
||||
@@ -1,30 +1,38 @@
|
||||
set(PYTHON_SWIG_BINDING yang)
|
||||
+set(PYTHON_SWIG_TARGET yang${CUR_PYTHON_VERSION})
|
||||
include_directories(${PYTHON_INCLUDE_PATH})
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
+include_directories(${PROJECT_SOURCE_DIR}/cpp/src)
|
||||
|
||||
set(CMAKE_SWIG_FLAGS "-c++")
|
||||
-set(CMAKE_SWIG_FLAGS "-I${PROJECT_SOURCE_DIR}")
|
||||
+set(CMAKE_SWIG_FLAGS "-I${PROJECT_SOURCE_DIR}" "-I${PROJECT_SOURCE_DIR}/cpp/src")
|
||||
set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
-set_source_files_properties(${PYTHON_SWIG_BINDING}.i PROPERTIES CPLUSPLUS ON PREFIX "")
|
||||
+set_source_files_properties(${PYTHON_SWIG_BINDING}.i PROPERTIES CPLUSPLUS ON PREFIX "" SWIG_MODULE_NAME ${PYTHON_SWIG_BINDING})
|
||||
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
|
||||
- swig_add_module(${PYTHON_SWIG_BINDING} python ${PYTHON_SWIG_BINDING}.i)
|
||||
+ swig_add_module(${PYTHON_SWIG_TARGET} python ${PYTHON_SWIG_BINDING}.i)
|
||||
else()
|
||||
- swig_add_library(${PYTHON_SWIG_BINDING} LANGUAGE python SOURCES ${PYTHON_SWIG_BINDING}.i)
|
||||
+ swig_add_library(${PYTHON_SWIG_TARGET} LANGUAGE python SOURCES ${PYTHON_SWIG_BINDING}.i)
|
||||
endif()
|
||||
-swig_link_libraries(${PYTHON_SWIG_BINDING} ${PYTHON_LIBRARIES} libyang-cpp)
|
||||
+swig_link_libraries(${PYTHON_SWIG_TARGET} ${PYTHON_LIBRARIES} libyang-cpp)
|
||||
+
|
||||
+set_target_properties(_${PYTHON_SWIG_TARGET} PROPERTIES OUTPUT_NAME "_yang${PYTHON_EXT_SUFFIX}" SUFFIX "")
|
||||
|
||||
# Generate header with SWIG run-time functions
|
||||
execute_process(COMMAND ${SWIG_EXECUTABLE} -python -external-runtime ${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h)
|
||||
|
||||
-file(COPY "examples" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
+add_custom_command(TARGET ${PYTHON_SWIG_TARGET}_swig_compilation POST_BUILD
|
||||
+ COMMAND sed -e "'s/\\(inst =.*tp_new.*\\)Py_None, Py_None);/PyObject *tup = PyTuple_New(0); \\1tup, Py_None); Py_DECREF(tup);/'" < swigpyrun.h > swigpyrun.h.new
|
||||
+ COMMAND sed -e "'s/\\(inst =.*tp_new.*\\)Py_None, Py_None);/PyObject *tup = PyTuple_New(0); \\1tup, Py_None); Py_DECREF(tup);/'" < yangPYTHON_wrap.cxx > yangPYTHON_wrap.cxx.new
|
||||
+ COMMAND diff -q swigpyrun.h swigpyrun.h.new || mv swigpyrun.h.new swigpyrun.h
|
||||
+ COMMAND diff -q yangPYTHON_wrap.cxx yangPYTHON_wrap.cxx.new || mv yangPYTHON_wrap.cxx.new yangPYTHON_wrap.cxx
|
||||
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
+ )
|
||||
|
||||
-execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True))"
|
||||
- OUTPUT_VARIABLE PYTHON_MODULE_PATH
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
+file(COPY "examples" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
-install( TARGETS _${PYTHON_SWIG_BINDING} DESTINATION ${PYTHON_MODULE_PATH})
|
||||
+install( TARGETS _${PYTHON_SWIG_TARGET} DESTINATION ${PYTHON_MODULE_PATH})
|
||||
install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_SWIG_BINDING}.py" DESTINATION ${PYTHON_MODULE_PATH})
|
||||
install( FILES "${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libyang)
|
||||
|
||||
@@ -51,8 +59,8 @@ if(ENABLE_BUILD_TESTS)
|
||||
ADD_PYTHON_TEST(test_tree_data)
|
||||
ADD_PYTHON_TEST(test_tree_schema)
|
||||
|
||||
- add_custom_command(TARGET ${SWIG_MODULE_${PYTHON_SWIG_BINDING}_REAL_NAME} POST_BUILD
|
||||
- COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/_${PYTHON_SWIG_BINDING}.so" ${PY2_SWIG_DIR}/tests
|
||||
+ add_custom_command(TARGET ${SWIG_MODULE_${PYTHON_SWIG_TARGET}_REAL_NAME} POST_BUILD
|
||||
+ COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/_yang${PYTHON_EXT_SUFFIX}" ${PY2_SWIG_DIR}/tests/_yang.so
|
||||
COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_SWIG_BINDING}.py" ${PY2_SWIG_DIR}/tests
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
)
|
Loading…
Reference in New Issue
Block a user