From bdac3612afcc171a5c8e35850fe2b7b461f7ba69 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 2 May 2013 21:47:13 +0000 Subject: QPID-4798: Fix up c++ code generation to use stripped spec files. The stripped specs have no elements, this was tripping up the code generator. Fixed the generator to process 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/qpid@1478582 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/configure.ac | 2 +- cpp/rubygen/0-10/exceptions.rb | 2 +- cpp/rubygen/framing.0-10/Session.rb | 4 +++- cpp/rubygen/framing.0-10/constants.rb | 2 +- cpp/src/CMakeLists.txt | 2 +- cpp/src/tests/legacystore/system_test.sh | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) (limited to 'cpp') diff --git a/cpp/configure.ac b/cpp/configure.ac index 1523af81af..2ced4b7577 100644 --- a/cpp/configure.ac +++ b/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/cpp/rubygen/0-10/exceptions.rb b/cpp/rubygen/0-10/exceptions.rb index 02e3a5d547..fed8fdac5b 100755 --- a/cpp/rubygen/0-10/exceptions.rb +++ b/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/cpp/rubygen/framing.0-10/Session.rb b/cpp/rubygen/framing.0-10/Session.rb index e800df9b2e..28165448ed 100755 --- a/cpp/rubygen/framing.0-10/Session.rb +++ b/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/cpp/rubygen/framing.0-10/constants.rb b/cpp/rubygen/framing.0-10/constants.rb index 85bfb96ac0..589d94e23d 100755 --- a/cpp/rubygen/framing.0-10/constants.rb +++ b/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/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index 1fe2198ea6..68610c4c40 100644 --- a/cpp/src/CMakeLists.txt +++ b/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/cpp/src/tests/legacystore/system_test.sh b/cpp/src/tests/legacystore/system_test.sh index 4cccc5ac8d..dbf8902cff 100644 --- a/cpp/src/tests/legacystore/system_test.sh +++ b/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 -- cgit v1.2.1