mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:50:22 +02:00
protobuf: add examples when test feature enabled
Google Protocol Buffers includes some basic example applications to show its functionality. This fix installs these examples to the target system when the "test" feature is enabled in the configuration. Signed-off-by: Keith Holman <Keith.Holman@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
parent
124d4185c4
commit
3cdfb6aac1
|
@ -0,0 +1,38 @@
|
|||
From 46e331263eb92e47510e88478b255f226d30245c Mon Sep 17 00:00:00 2001
|
||||
From: Keith Holman <Keith.Holman@windriver.com>
|
||||
Date: Mon, 18 Aug 2014 15:19:35 -0400
|
||||
Subject: [PATCH] protobuf: allow running python scripts from anywhere
|
||||
|
||||
The Makefile to generate the examples with Google Protocol Buffers
|
||||
generates some scripts for python. However, these generated scripts
|
||||
only work if they are ran in the same directory as the source files.
|
||||
This fix generates scripts to execute from anywhere on the system.
|
||||
|
||||
Signed-off-by: Keith Holman <Keith.Holman@windriver.com>
|
||||
---
|
||||
examples/Makefile | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/examples/Makefile b/examples/Makefile
|
||||
index 8dc9083..a993d63 100644
|
||||
--- a/examples/Makefile
|
||||
+++ b/examples/Makefile
|
||||
@@ -48,11 +48,13 @@ list_people_java: javac_middleman
|
||||
add_person_python: add_person.py protoc_middleman
|
||||
@echo "Writing shortcut script add_person_python..."
|
||||
@echo '#! /bin/sh' > add_person_python
|
||||
- @echo './add_person.py "$$@"' >> add_person_python
|
||||
+ @echo 'SCRIPT_DIR=$$(dirname $$0)' >> add_person_python
|
||||
+ @echo '$$SCRIPT_DIR/add_person.py "$$@"' >> add_person_python
|
||||
@chmod +x add_person_python
|
||||
|
||||
list_people_python: list_people.py protoc_middleman
|
||||
@echo "Writing shortcut script list_people_python..."
|
||||
@echo '#! /bin/sh' > list_people_python
|
||||
- @echo './list_people.py "$$@"' >> list_people_python
|
||||
+ @echo 'SCRIPT_DIR=$$(dirname $$0)' >> list_people_python
|
||||
+ @echo '$$SCRIPT_DIR/list_people.py "$$@"' >> list_people_python
|
||||
@chmod +x list_people_python
|
||||
--
|
||||
1.9.3
|
||||
|
32
recipes-containers/criu/files/run-ptest
Executable file
32
recipes-containers/criu/files/run-ptest
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
TEST_FILE="/tmp/test.data"
|
||||
|
||||
RETVAL=0
|
||||
# Test every writing test application
|
||||
for write_exe_full_path in ${DIR}/add_person_*; do
|
||||
if [ -x "${write_exe_full_path}" ]; then
|
||||
write_exe=`basename ${write_exe_full_path}`
|
||||
echo "Generating new test file using ${write_exe}..."
|
||||
${write_exe_full_path} "${TEST_FILE}"
|
||||
RETVAL=$?
|
||||
|
||||
# Test every reading test application
|
||||
for read_exe_full_path in ${DIR}/list_people_*; do
|
||||
read_exe=`basename ${read_exe_full_path}`
|
||||
echo "Test: Write with ${write_exe}; Read with ${read_exe}..."
|
||||
if [ -x "${read_exe_full_path}" ]; then
|
||||
${read_exe_full_path} "${TEST_FILE}"
|
||||
RETVAL=$?
|
||||
fi
|
||||
done
|
||||
|
||||
# Cleanup...
|
||||
if [ -e "${TEST_FILE}" ]; then
|
||||
rm "${TEST_FILE}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
exit $RETVAL
|
||||
|
|
@ -12,23 +12,77 @@ PR = "r0"
|
|||
|
||||
SRC_URI[md5sum] = "b751f772bdeb2812a2a8e7202bf1dae8"
|
||||
SRC_URI[sha256sum] = "c55aa3dc538e6fd5eaf732f4eb6b98bdcb7cedb5b91d3b5bdcf29c98c293f58e"
|
||||
SRC_URI = "http://protobuf.googlecode.com/files/protobuf-${PV}.tar.gz"
|
||||
PYTHON_SRC_DIR="python"
|
||||
SRC_URI = "http://protobuf.googlecode.com/files/protobuf-${PV}.tar.gz \
|
||||
file://protobuf-allow-running-python-scripts-from-anywhere.patch \
|
||||
file://run-ptest"
|
||||
|
||||
EXTRA_OECONF += " --with-protoc=echo"
|
||||
inherit autotools setuptools
|
||||
inherit autotools setuptools ptest
|
||||
|
||||
RDEPENDS_${PN}-ptest += "make"
|
||||
|
||||
PYTHON_SRC_DIR="python"
|
||||
TEST_SRC_DIR="examples"
|
||||
LANG_SUPPORT="cpp python"
|
||||
|
||||
do_compile() {
|
||||
# Compile protoc compiler
|
||||
base_do_compile
|
||||
}
|
||||
|
||||
do_compile_ptest() {
|
||||
# Modify makefile to use the cross-compiler
|
||||
sed -e "s|c++|${CXX}|g" -i "${S}/${TEST_SRC_DIR}/Makefile"
|
||||
|
||||
# Add the location of the cross-compiled header and library files
|
||||
# which haven't been installed yet.
|
||||
cp "${S}/protobuf.pc" "${S}/${TEST_SRC_DIR}/protobuf.pc"
|
||||
sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${S}/${TEST_SRC_DIR}/protobuf.pc"
|
||||
sed -e 's|Libs:|Libs: -L${S}/src/.libs|' -i "${S}/${TEST_SRC_DIR}/protobuf.pc"
|
||||
export PKG_CONFIG_PATH="${S}/${TEST_SRC_DIR}"
|
||||
|
||||
# Save the pkgcfg sysroot variable, and update it to nothing so
|
||||
# that it doesn't append the sysroot to the beginning of paths.
|
||||
# The header and library files aren't installed to the target
|
||||
# system yet. So the absolute paths were specified above.
|
||||
save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
|
||||
export PKG_CONFIG_SYSROOT_DIR=
|
||||
|
||||
# Compile the tests
|
||||
for lang in ${LANG_SUPPORT}; do
|
||||
oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
|
||||
done
|
||||
|
||||
# Restore the pkgconfig sysroot variable
|
||||
export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
|
||||
}
|
||||
|
||||
do_install() {
|
||||
local olddir=`pwd`
|
||||
|
||||
# Install protoc compiler
|
||||
autotools_do_install
|
||||
|
||||
# Install header files
|
||||
cd "${PYTHON_SRC_DIR}"
|
||||
cd "${S}/${PYTHON_SRC_DIR}"
|
||||
distutils_do_install
|
||||
|
||||
cd "$olddir"
|
||||
}
|
||||
|
||||
do_install_ptest() {
|
||||
local olddir=`pwd`
|
||||
|
||||
cd "${S}/${TEST_SRC_DIR}"
|
||||
install -d "${D}/${PTEST_PATH}"
|
||||
for i in add_person* list_people*; do
|
||||
if [ -x "$i" ]; then
|
||||
install "$i" "${D}/${PTEST_PATH}"
|
||||
fi
|
||||
done
|
||||
cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
|
||||
|
||||
cd "$olddir"
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
Loading…
Reference in New Issue
Block a user