Commit c7a95dd5 authored by Guy Nicholas's avatar Guy Nicholas

Merge branch 'master' into feature_184_take_3

Conflicts:
	src/source/CppGenerator.scala
	test-suite/generated-src/cpp/extended_record_base.hpp
	test-suite/generated-src/objc/DBExtendedRecord+Private.h
	test-suite/handwritten-src/cpp/extended_record.hpp
parents 06cdb828 b3beb0e2
......@@ -15,4 +15,12 @@ done
base_dir=$(cd "`dirname "$loc"`" && pwd)
"$base_dir/build"
exec "$base_dir/target/start" "$@"
# Determine os version and choose correspondent .sh or .bat file accordingly.
os_version="`uname -a`"
if [[ $os_version == *"MINGW"* ]]; then
cmd //C "$base_dir/target/start.bat" "$@"
else
exec "$base_dir/target/start" "$@"
fi
......@@ -146,12 +146,16 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
// Requiring the extended class
if (r.ext.cpp) {
refs.hpp.add(s"struct $self; // Requiring extended class")
refs.cpp.add("#include "+q(spec.cppExtendedRecordIncludePrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt))
}
// C++ Header
def writeCppPrototype(w: IndentWriter) {
if (r.ext.cpp) {
w.w(s"struct $self; // Requiring extended class")
w.wl
w.wl
}
writeDoc(w, doc)
writeCppTypeParams(w, params)
w.w("struct " + actualSelf + cppFinal).bracedSemi {
......
......@@ -66,15 +66,15 @@ class CppMarshal(spec: Spec) extends Marshal(spec) {
List()
}
case DInterface =>
if (d.name != exclude) {
val base = List(ImportRef("<memory>"), DeclRef(s"class ${typename(d.name, d.body)};", Some(spec.cppNamespace)))
spec.cppNnHeader match {
case Some(nnHdr) => ImportRef(nnHdr) :: base
case _ => base
}
val base = if (d.name != exclude) {
List(ImportRef("<memory>"), DeclRef(s"class ${typename(d.name, d.body)};", Some(spec.cppNamespace)))
} else {
List(ImportRef("<memory>"))
}
spec.cppNnHeader match {
case Some(nnHdr) => ImportRef(nnHdr) :: base
case _ => base
}
}
case e: MExtern => e.defType match {
// Do not forward declare extern types, they might be in arbitrary namespaces.
......
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
......
......@@ -4,10 +4,11 @@
#pragma once
#include <utility>
struct ExtendedRecord; // Requiring extended class
namespace testsuite {
struct ExtendedRecord; // Requiring extended class
/** Extended record */
struct ExtendedRecordBase {
bool foo;
......
#include "extended_record.hpp"
using namespace testsuite;
ExtendedRecord::ExtendedRecord() : ExtendedRecordBase(true) {}
......@@ -7,5 +7,7 @@ namespace testsuite {
struct ExtendedRecord : public ExtendedRecordBase
{
using ExtendedRecordBase::ExtendedRecordBase;
ExtendedRecord();
};
}
\ No newline at end of file
......@@ -9,10 +9,11 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="support-lib" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/java/hamcrest-core-1.3.jar!/" />
<root url="jar://$MODULE_DIR$/../deps/java/test/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
......@@ -21,7 +22,7 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/java/junit-4.11.jar!/" />
<root url="jar://$MODULE_DIR$/../deps/java/test/junit-4.11.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
......@@ -30,11 +31,11 @@
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/java/jsr305-3.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../deps/java/jsr305-3.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/java/jsr305-3.0.0.jar!/" />
<root url="jar://$MODULE_DIR$/../deps/java/jsr305-3.0.0.jar!/" />
</SOURCES>
</library>
</orderEntry>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment