wrap: forward declarations now allow for namespaces
parent
f34b1cd1eb
commit
c901ceee27
24
.cproject
24
.cproject
|
|
@ -1896,6 +1896,30 @@
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
|
<target name="check install j5" path="build_cmake" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>-j5</buildArguments>
|
||||||
|
<buildTarget>check install</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="check install" path="build_cmake" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>-j2</buildArguments>
|
||||||
|
<buildTarget>check install</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="wrap.testWrap.run" path="build_cmake" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>-j2</buildArguments>
|
||||||
|
<buildTarget>wrap.testWrap.run</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
<target name="tests/testDSFVector.run" path="build/gtsam/base" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="tests/testDSFVector.run" path="build/gtsam/base" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j2</buildArguments>
|
<buildArguments>-j2</buildArguments>
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,8 @@ install(FILES matlab.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/wrap)
|
||||||
|
|
||||||
if (GTSAM_LINK_BINARIES_AGAINST_CONVENIENCE_LIBS)
|
if (GTSAM_LINK_BINARIES_AGAINST_CONVENIENCE_LIBS)
|
||||||
set(convenience_libs
|
set(convenience_libs
|
||||||
slam
|
|
||||||
nonlinear
|
|
||||||
linear
|
|
||||||
inference
|
|
||||||
geometry
|
|
||||||
base
|
base
|
||||||
ccolamd)
|
)
|
||||||
else (GTSAM_LINK_BINARIES_AGAINST_CONVENIENCE_LIBS)
|
else (GTSAM_LINK_BINARIES_AGAINST_CONVENIENCE_LIBS)
|
||||||
set(convenience_libs
|
set(convenience_libs
|
||||||
gtsam-static)
|
gtsam-static)
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
//#include <fstream>
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace wrap;
|
using namespace wrap;
|
||||||
|
|
@ -98,7 +97,7 @@ Module::Module(const string& interfacePath,
|
||||||
Rule classArg_p =
|
Rule classArg_p =
|
||||||
!str_p("const") [assign_a(arg.is_const,true)] >>
|
!str_p("const") [assign_a(arg.is_const,true)] >>
|
||||||
*namespace_arg_p >>
|
*namespace_arg_p >>
|
||||||
className_p [assign_a(arg.type)] >>
|
className_p[assign_a(arg.type)] >>
|
||||||
(ch_p('*')[assign_a(arg.is_ptr,true)] | ch_p('&')[assign_a(arg.is_ref,true)]);
|
(ch_p('*')[assign_a(arg.is_ptr,true)] | ch_p('&')[assign_a(arg.is_ref,true)]);
|
||||||
|
|
||||||
Rule name_p = lexeme_d[alpha_p >> *(alnum_p | '_')];
|
Rule name_p = lexeme_d[alpha_p >> *(alnum_p | '_')];
|
||||||
|
|
@ -199,10 +198,12 @@ Module::Module(const string& interfacePath,
|
||||||
str_p("using") >> str_p("namespace")
|
str_p("using") >> str_p("namespace")
|
||||||
>> namespace_name_p[push_back_a(using_namespaces)] >> ch_p(';');
|
>> namespace_name_p[push_back_a(using_namespaces)] >> ch_p(';');
|
||||||
|
|
||||||
Rule forward_delcaration_p =
|
Rule forward_declaration_p =
|
||||||
(str_p("class") >> className_p >> ch_p(';'))[push_back_a(forward_declarations, class_name)];
|
str_p("class") >>
|
||||||
|
(*(namespace_name_p >> str_p("::")) >> className_p)[push_back_a(forward_declarations)]
|
||||||
|
>> ch_p(';');
|
||||||
|
|
||||||
Rule module_content_p = comments_p | using_namespace_p | forward_delcaration_p | class_p | namespace_def_p ;
|
Rule module_content_p = comments_p | using_namespace_p | class_p | forward_declaration_p | namespace_def_p ;
|
||||||
|
|
||||||
Rule module_p = *module_content_p >> !end_p;
|
Rule module_p = *module_content_p >> !end_p;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
using namespace geometry;
|
using namespace geometry;
|
||||||
|
|
||||||
class VectorNotEigen;
|
class VectorNotEigen;
|
||||||
|
class ns::OtherClass;
|
||||||
|
|
||||||
class Point2 {
|
class Point2 {
|
||||||
Point2();
|
Point2();
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ TEST( wrap, parse ) {
|
||||||
EXPECT(assert_equal(exp_using, module.using_namespaces));
|
EXPECT(assert_equal(exp_using, module.using_namespaces));
|
||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
strvec exp_forward; exp_forward += "VectorNotEigen";
|
strvec exp_forward; exp_forward += "VectorNotEigen", "ns::OtherClass";
|
||||||
EXPECT(assert_equal(exp_forward, module.forward_declarations));
|
EXPECT(assert_equal(exp_forward, module.forward_declarations));
|
||||||
|
|
||||||
// check first class, Point2
|
// check first class, Point2
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue