Skip to content

Commit bdf1b7c

Browse files
li-pingmaopavel-shirshov
authored andcommitted
libyang 1.0.73 (#3710)
- build libyang1.0.73 debian pacakge from libyang github source - build libyang python2 and python3 debian packages
1 parent a5e2799 commit bdf1b7c

File tree

5 files changed

+303
-15
lines changed

5 files changed

+303
-15
lines changed

rules/libyang.mk

+15-6
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
11
# libyang
22

3-
LIBYANG_VERSION_BASE = 0.16
4-
LIBYANG_VERSION = $(LIBYANG_VERSION_BASE).105
3+
LIBYANG_VERSION_BASE = 1.0
4+
LIBYANG_VERSION = $(LIBYANG_VERSION_BASE).73
55
LIBYANG_SUBVERSION = 1
66

77
export LIBYANG_VERSION_BASE
88
export LIBYANG_VERSION
99
export LIBYANG_SUBVERSION
1010

11-
LIBYANG = libyang$(LIBYANG_VERSION_BASE)_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
11+
LIBYANG = libyang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
1212
$(LIBYANG)_SRC_PATH = $(SRC_PATH)/libyang
1313
$(LIBYANG)_DEPENDS += $(SWIG_BASE) $(SWIG)
1414
SONIC_MAKE_DEBS += $(LIBYANG)
1515
SONIC_STRETCH_DEBS += $(LIBYANG)
1616

17-
LIBYANG_DEV = libyang-dev_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
17+
LIBYANG_DEV = libyang-dev_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
1818
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_DEV)))
1919

20-
LIBYANG_DBG = libyang$(LIBYANG_VERSION_BASE)-dbgsym_$(LIBYANG_VERSION)-$(LIBYANG_SUBVERSION)_$(CONFIGURED_ARCH).deb
20+
LIBYANG_DBG = libyang-dbg_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
2121
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_DBG)))
2222

23-
export LIBYANG LIBYANG_DEV LIBYANG_DBG
23+
LIBYANG_CPP = libyang-cpp_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
24+
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_CPP)))
25+
26+
LIBYANG_PY3 = python3-yang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
27+
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_PY3)))
28+
29+
LIBYANG_PY2 = python2-yang_$(LIBYANG_VERSION)_$(CONFIGURED_ARCH).deb
30+
$(eval $(call add_derived_package,$(LIBYANG),$(LIBYANG_PY2)))
31+
32+
export LIBYANG LIBYANG_DBG LIBYANG_DEV LIBYANG_CPP LIBYANG_PY3 LIBYANG_PY2

src/libyang/Makefile

+16-9
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,26 @@ SHELL = /bin/bash
33
.SHELLFLAGS += -e
44

55
MAIN_TARGET = $(LIBYANG)
6-
DERIVED_TARGETS = $(LIBYANG_DEV) $(LIBYANG_DBG)
6+
DERIVED_TARGETS = $(LIBYANG_DEV) $(LIBYANG_DBG) $(LIBYANG_PY2) $(LIBYANG_PY3) $(LIBYANG_CPP)
77

88
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
9+
# Obtaining the libyang
910
rm -fr ./libyang-$(LIBYANG_VERSION)
10-
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'
11-
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'
12-
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'
13-
dpkg-source -x libyang_$(LIBYANG_VERSION).dsc
11+
git clone https://github.com/CESNET/libyang.git libyang-$(LIBYANG_VERSION)
12+
pushd libyang-$(LIBYANG_VERSION)
13+
git checkout tags/v1.0-r4 -b libyang
14+
# Apply patch series
15+
stg init
16+
stg import -s ../patch/series
1417

15-
pushd ./libyang-$(LIBYANG_VERSION)
16-
dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS)
17-
popd
18+
mkdir build
19+
pushd build
20+
cmake ..
21+
make build-deb
1822

19-
mv $(DERIVED_TARGETS) $* $(DEST)/
23+
pushd debs
24+
mv $* $(DEST)/
25+
mv $(DERIVED_TARGETS) $(DEST)/
26+
popd
2027

2128
$(addprefix $(DEST)/, $(DERIVED_TARGETS)): $(DEST)/% : $(DEST)/$(MAIN_TARGET)

src/libyang/patch/libyang.patch

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index fa562dd3..8635ba15 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -33,6 +33,7 @@ set(LIBYANG_MICRO_SOVERSION 2)
6+
set(LIBYANG_SOVERSION_FULL ${LIBYANG_MAJOR_SOVERSION}.${LIBYANG_MINOR_SOVERSION}.${LIBYANG_MICRO_SOVERSION})
7+
set(LIBYANG_SOVERSION ${LIBYANG_MAJOR_SOVERSION})
8+
9+
+set(CMAKE_INSTALL_PREFIX /usr)
10+
# set default build type if not specified by user
11+
if(NOT CMAKE_BUILD_TYPE)
12+
set(CMAKE_BUILD_TYPE debug)
13+
diff --git a/packages/debian.control.in b/packages/debian.control.in
14+
index da6588b9..fb3ede48 100644
15+
--- a/packages/debian.control.in
16+
+++ b/packages/debian.control.in
17+
@@ -53,3 +53,15 @@ Depends: python3-yang@PACKAGE_PART_NAME@ (=@LIBYANG_VERSION@)
18+
Section: debug
19+
Architecture: any
20+
Description: Debug symbols of python3 bidings of libyang library.
21+
+
22+
+Package: python2-yang@PACKAGE_PART_NAME@
23+
+Depends: @PACKAGE_NAME@ (=@LIBYANG_VERSION@), libyang-cpp@PACKAGE_PART_NAME@ (=@LIBYANG_VERSION@)
24+
+Section: libs
25+
+Architecture: any
26+
+Description: Bindings of libyang library to python2 language.
27+
+
28+
+Package: python2-yang@PACKAGE_PART_NAME@-dbg
29+
+Depends: python2-yang@PACKAGE_PART_NAME@ (=@LIBYANG_VERSION@)
30+
+Section: debug
31+
+Architecture: any
32+
+Description: Debug symbols of python2 bidings of libyang library.
33+
diff --git a/packages/debian.python2-yang.install b/packages/debian.python2-yang.install
34+
new file mode 100644
35+
index 00000000..14ce2f3c
36+
--- /dev/null
37+
+++ b/packages/debian.python2-yang.install
38+
@@ -0,0 +1 @@
39+
+usr/lib/python2.7/dist-packages/*
40+
diff --git a/packages/debian.rules.in b/packages/debian.rules.in
41+
index d565819e..e92fe4a1 100644
42+
--- a/packages/debian.rules.in
43+
+++ b/packages/debian.rules.in
44+
@@ -9,10 +9,14 @@ export DH_VERBOSE=1
45+
override_dh_strip:
46+
dh_strip -plibyang@PACKAGE_PART_NAME@ --dbg-package=libyang@PACKAGE_PART_NAME@-dbg
47+
dh_strip -plibyang-cpp@PACKAGE_PART_NAME@ --dbg-package=libyang-cpp@PACKAGE_PART_NAME@-dbg
48+
+ dh_strip -ppython2-yang@PACKAGE_PART_NAME@ --dbg-package=python2-yang@PACKAGE_PART_NAME@-dbg
49+
dh_strip -ppython3-yang@PACKAGE_PART_NAME@ --dbg-package=python3-yang@PACKAGE_PART_NAME@-dbg
50+
51+
override_dh_auto_configure:
52+
- cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE:String="@BUILD_TYPE@" -DGEN_LANGUAGE_BINDINGS=ON .
53+
+ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE:String="@BUILD_TYPE@" -DENABLE_LYD_PRIV=ON -DGEN_LANGUAGE_BINDINGS=ON -DGEN_PYTHON_VERSION=2 .
54+
+
55+
+override_dh_makeshlibs:
56+
+ dh_makeshlibs -Xextensions -Xuser_types
57+
58+
override_dh_auto_test:
59+
ctest --output-on-failure
60+
diff --git a/packages/libyang.dsc.in b/packages/libyang.dsc.in
61+
index fdfa402b..f75ba184 100644
62+
--- a/packages/libyang.dsc.in
63+
+++ b/packages/libyang.dsc.in
64+
@@ -1,10 +1,10 @@
65+
Format: 3.0 (quilt)
66+
Source: @PACKAGE_NAME@
67+
-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
68+
+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
69+
Maintainer: CESNET <[email protected]>
70+
Version: @LIBYANG_VERSION@
71+
Architecture: any
72+
Standards-Version: 3.8.2
73+
Homepage: https://github.com/CESNET/libyang
74+
Vcs-Git: https://github.com/CESNET/libyang
75+
-Build-Depends: debhelper (>= 9), make, gcc, doxygen, cmake, pkg-config, libpcre3-dev, libcmocka-dev, python3-dev, g++, swig (>= 3.0.12)
76+
+Build-Depends: debhelper (>= 9), make, gcc, doxygen, cmake, pkg-config, libpcre3-dev, libcmocka-dev, python3-dev, python2-dev, g++, swig (>= 3.0.12)
77+
diff --git a/packages/libyang.spec.in b/packages/libyang.spec.in
78+
index 6a4ac615..6939f028 100644
79+
--- a/packages/libyang.spec.in
80+
+++ b/packages/libyang.spec.in
81+
@@ -46,6 +46,8 @@ BuildRequires: python3-devel
82+
%else
83+
BuildRequires: python34-devel
84+
%endif
85+
+
86+
+BuildRequires: python2-devel
87+
%endif
88+
89+
Conflicts: @CONFLICT_PACKAGE_NAME@ = @LIBYANG_MAJOR_VERSION@.@LIBYANG_MINOR_VERSION@
90+
@@ -70,6 +72,11 @@ Summary: Binding to python
91+
Requires: libyang-cpp@PACKAGE_PART_NAME@ = %{version}-%{release}
92+
Requires: %{name} = %{version}-%{release}
93+
94+
+%package -n python2-yang@PACKAGE_PART_NAME@
95+
+Summary: Binding to python
96+
+Requires: libyang-cpp@PACKAGE_PART_NAME@ = %{version}-%{release}
97+
+Requires: %{name} = %{version}-%{release}
98+
+
99+
%description -n libyang-cpp@PACKAGE_PART_NAME@
100+
Bindings of libyang library to C++ language.
101+
102+
@@ -80,6 +87,10 @@ Headers of bindings to c++ language.
103+
Bindings of libyang library to python language.
104+
%endif
105+
106+
+%description -n python2-yang@PACKAGE_PART_NAME@
107+
+Bindings of libyang library to python language.
108+
+%endif
109+
+
110+
%description devel
111+
Headers of libyang library.
112+
113+
@@ -167,4 +178,9 @@ make DESTDIR=%{buildroot} install
114+
%{_libdir}/python*
115+
%endif
116+
117+
+%files -n python2-yang@PACKAGE_PART_NAME@
118+
+%defattr(-,root,root)
119+
+%{_libdir}/python*
120+
+%endif
121+
+
122+
%changelog
123+
diff --git a/packages/local-deb.sh.in b/packages/local-deb.sh.in
124+
index 057bbc67..4318a49d 100755
125+
--- a/packages/local-deb.sh.in
126+
+++ b/packages/local-deb.sh.in
127+
@@ -18,6 +18,7 @@ fi
128+
cp "@PROJECT_SOURCE_DIR@/packages/debian.libyang-dev.install" debian/@[email protected]
129+
cp "@PROJECT_SOURCE_DIR@/packages/debian.libyang-cpp.install" debian/libyang-cpp@[email protected]
130+
cp "@PROJECT_SOURCE_DIR@/packages/debian.libyang-cpp-dev.install" debian/libyang-cpp@[email protected]
131+
+cp "@PROJECT_SOURCE_DIR@/packages/debian.python2-yang.install" debian/python2-yang@[email protected]
132+
cp "@PROJECT_SOURCE_DIR@/packages/debian.python3-yang.install" debian/python3-yang@[email protected]
133+
echo -e "@PACKAGE_NAME@ (@LIBYANG_VERSION@) stable; urgency=low\n" >debian/changelog
134+
git log -10 --pretty=format:' * %s (%aN)%n' 2>/dev/null >>debian/changelog || echo -e " * unknown changes \n" >>debian/changelog

src/libyang/patch/series

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
libyang.patch
2+
swig.patch

src/libyang/patch/swig.patch

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt
2+
index 4cee36ec..0baa69ab 100644
3+
--- a/swig/CMakeLists.txt
4+
+++ b/swig/CMakeLists.txt
5+
@@ -20,27 +20,34 @@ endif()
6+
7+
# find Python package
8+
if(GEN_PYTHON_BINDINGS AND SWIG_FOUND)
9+
- message(STATUS "Python version ${GEN_PYTHON_VERSION} was selected")
10+
- unset(PYTHON_LIBRARY CACHE)
11+
- unset(PYTHON_EXECUTABLE CACHE)
12+
- unset(PYTHON_INCLUDE_DIR CACHE)
13+
- unset(PYTHON_LIBRARY_DEBUG CACHE)
14+
- if(${GEN_PYTHON_VERSION} STREQUAL "2")
15+
- find_package(PythonLibs 2 REQUIRED)
16+
- find_package(PythonInterp 2 REQUIRED)
17+
- if(NOT PYTHONLIBS_FOUND)
18+
- message(WARNING "Did not found Python version 2.x")
19+
- message(STATUS "Sysrepo supports Python 2.x and Python 3.x")
20+
- endif()
21+
- elseif(${GEN_PYTHON_VERSION} STREQUAL "3")
22+
- find_package(PythonLibs 3 REQUIRED)
23+
- find_package(PythonInterp 3 REQUIRED)
24+
- if(NOT PYTHONLIBS_FOUND)
25+
- message(WARNING "Did not found Python version 3.x")
26+
- message(STATUS "Sysrepo supports Python 2.x and Python 3.x")
27+
- endif()
28+
+ if(ENABLE_STATIC)
29+
+ message(WARNING "Can't create a static Python module")
30+
else()
31+
- message(WARNING "Sysrepo supports Python 2.x and Python 3.x")
32+
+ set(GEN_PYTHON_VERSION 2 3)
33+
+ foreach(CUR_PYTHON_VERSION ${GEN_PYTHON_VERSION})
34+
+ message(STATUS "Python version ${CUR_PYTHON_VERSION} was selected")
35+
+
36+
+ unset(PYTHON_EXECUTABLE CACHE)
37+
+ unset(PYTHON_INCLUDE_PATH CACHE)
38+
+ unset(PYTHON_EXT_SUFFIX CACHE)
39+
+ unset(PYTHON_MODULE_PATH CACHE)
40+
+ set(PYTHON_EXT_SUFFIX ".so")
41+
+
42+
+ find_program(PYTHON_EXECUTABLE NAMES python${CUR_PYTHON_VERSION})
43+
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
44+
+ "from distutils.sysconfig import get_config_var; print(get_config_var('INCLUDEPY'))"
45+
+ OUTPUT_VARIABLE PYTHON_INCLUDE_PATH
46+
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
47+
+ #execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
48+
+ # "from distutils.sysconfig import get_config_var; print(get_config_var('EXT_SUFFIX'))"
49+
+ # OUTPUT_VARIABLE PYTHON_EXT_SUFFIX
50+
+ # OUTPUT_STRIP_TRAILING_WHITESPACE )
51+
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
52+
+ "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True))"
53+
+ OUTPUT_VARIABLE PYTHON_MODULE_PATH
54+
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
55+
+ add_subdirectory(python python${CUR_PYTHON_VERSION})
56+
+ endforeach(CUR_PYTHON_VERSION)
57+
endif()
58+
endif()
59+
60+
@@ -99,12 +106,6 @@ if (GEN_CPP_BINDINGS)
61+
endif()
62+
endif()
63+
64+
-if(ENABLE_STATIC AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND AND (${GEN_PYTHON_VERSION} STREQUAL "2" OR ${GEN_PYTHON_VERSION} STREQUAL "3"))
65+
- message(WARNING "Can't create a static Python module")
66+
-elseif(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND AND (${GEN_PYTHON_VERSION} STREQUAL "2" OR ${GEN_PYTHON_VERSION} STREQUAL "3"))
67+
- add_subdirectory(python)
68+
-endif()
69+
-
70+
if(NOT ENABLE_STATIC AND GEN_JAVASCRIPT_BINDINGS)
71+
message(WARNING "Can't create Javascript bindings with a shared library, please use -DENABLE_STATIC")
72+
elseif(ENABLE_STATIC AND GEN_JAVASCRIPT_BINDINGS)
73+
diff --git a/swig/python/CMakeLists.txt b/swig/python/CMakeLists.txt
74+
index 994b1234..5d18b8bf 100644
75+
--- a/swig/python/CMakeLists.txt
76+
+++ b/swig/python/CMakeLists.txt
77+
@@ -1,30 +1,38 @@
78+
set(PYTHON_SWIG_BINDING yang)
79+
+set(PYTHON_SWIG_TARGET yang${CUR_PYTHON_VERSION})
80+
include_directories(${PYTHON_INCLUDE_PATH})
81+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
82+
+include_directories(${PROJECT_SOURCE_DIR}/cpp/src)
83+
84+
set(CMAKE_SWIG_FLAGS "-c++")
85+
-set(CMAKE_SWIG_FLAGS "-I${PROJECT_SOURCE_DIR}")
86+
+set(CMAKE_SWIG_FLAGS "-I${PROJECT_SOURCE_DIR}" "-I${PROJECT_SOURCE_DIR}/cpp/src")
87+
set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
88+
89+
-set_source_files_properties(${PYTHON_SWIG_BINDING}.i PROPERTIES CPLUSPLUS ON PREFIX "")
90+
+set_source_files_properties(${PYTHON_SWIG_BINDING}.i PROPERTIES CPLUSPLUS ON PREFIX "" SWIG_MODULE_NAME ${PYTHON_SWIG_BINDING})
91+
92+
if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
93+
- swig_add_module(${PYTHON_SWIG_BINDING} python ${PYTHON_SWIG_BINDING}.i)
94+
+ swig_add_module(${PYTHON_SWIG_TARGET} python ${PYTHON_SWIG_BINDING}.i)
95+
else()
96+
- swig_add_library(${PYTHON_SWIG_BINDING} LANGUAGE python SOURCES ${PYTHON_SWIG_BINDING}.i)
97+
+ swig_add_library(${PYTHON_SWIG_TARGET} LANGUAGE python SOURCES ${PYTHON_SWIG_BINDING}.i)
98+
endif()
99+
-swig_link_libraries(${PYTHON_SWIG_BINDING} ${PYTHON_LIBRARIES} libyang-cpp)
100+
+swig_link_libraries(${PYTHON_SWIG_TARGET} ${PYTHON_LIBRARIES} libyang-cpp)
101+
+
102+
+set_target_properties(_${PYTHON_SWIG_TARGET} PROPERTIES OUTPUT_NAME "_yang${PYTHON_EXT_SUFFIX}" SUFFIX "")
103+
104+
# Generate header with SWIG run-time functions
105+
execute_process(COMMAND ${SWIG_EXECUTABLE} -python -external-runtime ${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h)
106+
107+
-file(COPY "examples" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
108+
+add_custom_command(TARGET ${PYTHON_SWIG_TARGET}_swig_compilation POST_BUILD
109+
+ 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
110+
+ 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
111+
+ COMMAND diff -q swigpyrun.h swigpyrun.h.new || mv swigpyrun.h.new swigpyrun.h
112+
+ COMMAND diff -q yangPYTHON_wrap.cxx yangPYTHON_wrap.cxx.new || mv yangPYTHON_wrap.cxx.new yangPYTHON_wrap.cxx
113+
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
114+
+ )
115+
116+
-execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True))"
117+
- OUTPUT_VARIABLE PYTHON_MODULE_PATH
118+
- OUTPUT_STRIP_TRAILING_WHITESPACE )
119+
+file(COPY "examples" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
120+
121+
-install( TARGETS _${PYTHON_SWIG_BINDING} DESTINATION ${PYTHON_MODULE_PATH})
122+
+install( TARGETS _${PYTHON_SWIG_TARGET} DESTINATION ${PYTHON_MODULE_PATH})
123+
install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_SWIG_BINDING}.py" DESTINATION ${PYTHON_MODULE_PATH})
124+
install( FILES "${CMAKE_CURRENT_BINARY_DIR}/swigpyrun.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libyang)
125+
126+
@@ -51,8 +59,8 @@ if(ENABLE_BUILD_TESTS)
127+
ADD_PYTHON_TEST(test_tree_data)
128+
ADD_PYTHON_TEST(test_tree_schema)
129+
130+
- add_custom_command(TARGET ${SWIG_MODULE_${PYTHON_SWIG_BINDING}_REAL_NAME} POST_BUILD
131+
- COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/_${PYTHON_SWIG_BINDING}.so" ${PY2_SWIG_DIR}/tests
132+
+ add_custom_command(TARGET ${SWIG_MODULE_${PYTHON_SWIG_TARGET}_REAL_NAME} POST_BUILD
133+
+ COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/_yang${PYTHON_EXT_SUFFIX}" ${PY2_SWIG_DIR}/tests/_yang.so
134+
COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_SWIG_BINDING}.py" ${PY2_SWIG_DIR}/tests
135+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
136+
)

0 commit comments

Comments
 (0)