summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2013-05-02 21:47:13 +0000
committerAlan Conway <aconway@apache.org>2013-05-02 21:47:13 +0000
commitba9f80714ae4870c01b450b4f89cfa87d51a6827 (patch)
treef66a443236e4a7886f7e8ca2e449d52c7d1766ec /qpid/cpp
parent276e15f7b9baa99372f290f52f40bda2b9c5e5b7 (diff)
downloadqpid-python-ba9f80714ae4870c01b450b4f89cfa87d51a6827.tar.gz
QPID-4798: Fix up c++ code generation to use stripped spec files.
The stripped specs have no <doc> elements, this was tripping up the code generator. Fixed the generator to process <doc> elements if they are present but to carry on without them if they are not. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1478582 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/configure.ac2
-rwxr-xr-xqpid/cpp/rubygen/0-10/exceptions.rb2
-rwxr-xr-xqpid/cpp/rubygen/framing.0-10/Session.rb4
-rwxr-xr-xqpid/cpp/rubygen/framing.0-10/constants.rb2
-rw-r--r--qpid/cpp/src/CMakeLists.txt2
-rw-r--r--qpid/cpp/src/tests/legacystore/system_test.sh2
6 files changed, 8 insertions, 6 deletions
diff --git a/qpid/cpp/configure.ac b/qpid/cpp/configure.ac
index 1523af81af..2ced4b7577 100644
--- a/qpid/cpp/configure.ac
+++ b/qpid/cpp/configure.ac
@@ -247,7 +247,7 @@ fi
AM_CONDITIONAL([HAVE_PERL_DEVEL], [test -n "$PERL" && test -n "$SWIG" && test -n "$PERL_INC"])
specdir=`pwd`/$srcdir/../specs
-AMQP_FINAL_XML=$specdir/amqp.0-10-qpid-errata.xml
+AMQP_FINAL_XML=$specdir/amqp.0-10-qpid-errata.stripped.xml
AC_SUBST(AMQP_FINAL_XML)
AM_CONDITIONAL([GENERATE], [test -f $AMQP_FINAL_XML])
test -f $AMQP_FINAL_XML -a -z "$RUBY" && AC_MSG_ERROR([Missing ruby installation (try "yum install ruby").])
diff --git a/qpid/cpp/rubygen/0-10/exceptions.rb b/qpid/cpp/rubygen/0-10/exceptions.rb
index 02e3a5d547..fed8fdac5b 100755
--- a/qpid/cpp/rubygen/0-10/exceptions.rb
+++ b/qpid/cpp/rubygen/0-10/exceptions.rb
@@ -32,7 +32,7 @@ class GenExceptions < CppGen
enum.choices.each { |c|
name=c.name.typename+suffix+"Exception"
genl
- doxygen_comment { genl c.doc }
+ doxygen_comment { genl c.doc } if c.doc
struct(name, "public #{base}") {
genl "#{name}(const std::string& msg=std::string())"
genl " : #{base}(#{ns}::#{c.name.shout}, msg) {}"
diff --git a/qpid/cpp/rubygen/framing.0-10/Session.rb b/qpid/cpp/rubygen/framing.0-10/Session.rb
index e800df9b2e..28165448ed 100755
--- a/qpid/cpp/rubygen/framing.0-10/Session.rb
+++ b/qpid/cpp/rubygen/framing.0-10/Session.rb
@@ -34,6 +34,7 @@ class CppGen
# Generates a doxygen comment for AmqpMethod m.
def doxygen(m)
+ return unless m.doc
doxygen_comment {
genl m.doc
genl
@@ -143,7 +144,8 @@ class SessionNoKeywordGen < CppGen
namespace(@namespace) {
doxygen_comment {
genl "AMQP #{@amqp.version} #{sync_adjective} session API."
- genl @amqp.class_("session").doc
+ d = @amqp.class_("session").doc
+ genl d if d
# FIXME aconway 2008-05-23: additional doc on sync/async use.
}
cpp_class(@classname, "public #{@version_base}") {
diff --git a/qpid/cpp/rubygen/framing.0-10/constants.rb b/qpid/cpp/rubygen/framing.0-10/constants.rb
index 85bfb96ac0..589d94e23d 100755
--- a/qpid/cpp/rubygen/framing.0-10/constants.rb
+++ b/qpid/cpp/rubygen/framing.0-10/constants.rb
@@ -135,7 +135,7 @@ EOS
name=c.name.caps+"Exception"
value="#{package}::#{enum.parent.name.shout}_#{c.name.shout}"
genl
- doxygen_comment { genl c.doc }
+ doxygen_comment { genl c.doc } if c.doc
struct(c.name.caps+"Exception", base) {
genl "std::string getPrefix() const { return \"#{c.name}\"; }"
genl "#{c.name.caps}Exception(const std::string& msg=std::string()) : #{base}(#{value}, \"\"+msg) {}"
diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
index 1fe2198ea6..68610c4c40 100644
--- a/qpid/cpp/src/CMakeLists.txt
+++ b/qpid/cpp/src/CMakeLists.txt
@@ -175,7 +175,7 @@ inherit_value ("winver_LEGAL_COPYRIGHT" "")
# present, and if any sources have changed, forcing a re-gen of source code.
set(AMQP_SPEC_DIR ${qpid-cpp_SOURCE_DIR}/../specs)
-set(AMQP_SPEC ${AMQP_SPEC_DIR}/amqp.0-10-qpid-errata.xml)
+set(AMQP_SPEC ${AMQP_SPEC_DIR}/amqp.0-10-qpid-errata.stripped.xml)
if (EXISTS ${AMQP_SPEC})
include(FindRuby)
include(FindPythonInterp)
diff --git a/qpid/cpp/src/tests/legacystore/system_test.sh b/qpid/cpp/src/tests/legacystore/system_test.sh
index 4cccc5ac8d..dbf8902cff 100644
--- a/qpid/cpp/src/tests/legacystore/system_test.sh
+++ b/qpid/cpp/src/tests/legacystore/system_test.sh
@@ -28,7 +28,7 @@ if ! test -d "$QPID_DIR" ; then
fi
STORE_LIB=../lib/.libs/msgstore.so
-xml_spec=$QPID_DIR/specs/amqp.0-10-qpid-errata.xml
+xml_spec=$QPID_DIR/specs/amqp.0-10-qpid-errata.stripped.xml
test -f $xml_spec || error "$xml_spec not found: invalid \$QPID_DIR ?"
export PYTHONPATH=$QPID_DIR/python:$QPID_DIR/extras/qmf/src/py:$QPID_DIR/tools/src/py