Fleshed out support for building MEX binaries during gtsam build
parent
2f9ed9abf2
commit
e1725fb8e3
52
.cproject
52
.cproject
|
@ -1653,10 +1653,10 @@
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
<target name="PlanarSLAMExample.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="PlanarSLAMExample_easy.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j5</buildArguments>
|
<buildArguments>-j2</buildArguments>
|
||||||
<buildTarget>PlanarSLAMExample.run</buildTarget>
|
<buildTarget>PlanarSLAMExample_easy.run</buildTarget>
|
||||||
<stopOnError>true</stopOnError>
|
<stopOnError>true</stopOnError>
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
@ -1685,10 +1685,10 @@
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
<target name="PlanarSLAMExample_selfcontained.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="PlanarSLAMSelfContained_advanced.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j5</buildArguments>
|
<buildArguments>-j2</buildArguments>
|
||||||
<buildTarget>PlanarSLAMExample_selfcontained.run</buildTarget>
|
<buildTarget>PlanarSLAMSelfContained_advanced.run</buildTarget>
|
||||||
<stopOnError>true</stopOnError>
|
<stopOnError>true</stopOnError>
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
@ -1701,18 +1701,18 @@
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
<target name="Pose2SLAMExample.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="Pose2SLAMExample_easy.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j5</buildArguments>
|
<buildArguments>-j2</buildArguments>
|
||||||
<buildTarget>Pose2SLAMExample.run</buildTarget>
|
<buildTarget>Pose2SLAMExample_easy.run</buildTarget>
|
||||||
<stopOnError>true</stopOnError>
|
<stopOnError>true</stopOnError>
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
<target name="Pose2SLAMwSPCG.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="Pose2SLAMwSPCG_easy.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j5</buildArguments>
|
<buildArguments>-j2</buildArguments>
|
||||||
<buildTarget>Pose2SLAMwSPCG.run</buildTarget>
|
<buildTarget>Pose2SLAMwSPCG_easy.run</buildTarget>
|
||||||
<stopOnError>true</stopOnError>
|
<stopOnError>true</stopOnError>
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
@ -1741,10 +1741,10 @@
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
<target name="Pose2SLAMExample_graph.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="Pose2SLAMwSPCG_advanced.run" path="build/examples" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j5</buildArguments>
|
<buildArguments>-j5</buildArguments>
|
||||||
<buildTarget>Pose2SLAMExample_graph.run</buildTarget>
|
<buildTarget>Pose2SLAMwSPCG_advanced.run</buildTarget>
|
||||||
<stopOnError>true</stopOnError>
|
<stopOnError>true</stopOnError>
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
@ -2152,6 +2152,30 @@
|
||||||
<useDefaultCommand>true</useDefaultCommand>
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
<runAllBuilders>true</runAllBuilders>
|
<runAllBuilders>true</runAllBuilders>
|
||||||
</target>
|
</target>
|
||||||
|
<target name="wrap_gtsam_build" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>-j5</buildArguments>
|
||||||
|
<buildTarget>wrap_gtsam_build</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="wrap_gtsam_unstable_build" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>-j5</buildArguments>
|
||||||
|
<buildTarget>wrap_gtsam_unstable_build</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="wrap_gtsam_unstable" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>make</buildCommand>
|
||||||
|
<buildArguments>-j5</buildArguments>
|
||||||
|
<buildTarget>wrap_gtsam_unstable</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>true</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
<target name="wrap.testSpirit.run" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
<target name="wrap.testSpirit.run" path="build/wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
<buildCommand>make</buildCommand>
|
<buildCommand>make</buildCommand>
|
||||||
<buildArguments>-j5</buildArguments>
|
<buildArguments>-j5</buildArguments>
|
||||||
|
|
|
@ -61,8 +61,12 @@ option(GTSAM_INSTALL_MATLAB_EXAMPLES "Enable/Disable installation of matlab
|
||||||
option(GTSAM_INSTALL_MATLAB_TESTS "Enable/Disable installation of matlab tests" ON)
|
option(GTSAM_INSTALL_MATLAB_TESTS "Enable/Disable installation of matlab tests" ON)
|
||||||
option(GTSAM_INSTALL_WRAP "Enable/Disable installation of wrap utility" ON)
|
option(GTSAM_INSTALL_WRAP "Enable/Disable installation of wrap utility" ON)
|
||||||
|
|
||||||
# Experimental - features disabled by default
|
# TODO: Check for matlab mex binary before handling building of binaries
|
||||||
option(GTSAM_ENABLE_BUILD_MEX_BINARIES "Enable/Disable building of matlab mex files" OFF)
|
|
||||||
|
# Flags for building/installing mex files
|
||||||
|
option(GTSAM_ENABLE_BUILD_MEX_BINARIES "Enable/Disable building of matlab mex files" OFF)
|
||||||
|
option(GTSAM_ENABLE_BUILD_MEX_BINARIES_ALL "Enable/Disable adding building of mex files to ALL target" OFF)
|
||||||
|
set(GTSAM_BUILD_MEX_BINARY_FLAGS "-j2" CACHE STRING "Flags for running make on toolbox MEX files")
|
||||||
|
|
||||||
# Flags for choosing default packaging tools
|
# Flags for choosing default packaging tools
|
||||||
set(CPACK_SOURCE_GENERATOR "TGZ" CACHE STRING "CPack Default Source Generator")
|
set(CPACK_SOURCE_GENERATOR "TGZ" CACHE STRING "CPack Default Source Generator")
|
||||||
|
@ -184,6 +188,8 @@ print_config_flag(${GTSAM_INSTALL_MATLAB_TOOLBOX} "Install matlab toolbox
|
||||||
print_config_flag(${GTSAM_INSTALL_MATLAB_EXAMPLES} "Install matlab examples ")
|
print_config_flag(${GTSAM_INSTALL_MATLAB_EXAMPLES} "Install matlab examples ")
|
||||||
print_config_flag(${GTSAM_INSTALL_MATLAB_TESTS} "Install matlab tests ")
|
print_config_flag(${GTSAM_INSTALL_MATLAB_TESTS} "Install matlab tests ")
|
||||||
print_config_flag(${GTSAM_INSTALL_WRAP} "Install wrap utility ")
|
print_config_flag(${GTSAM_INSTALL_WRAP} "Install wrap utility ")
|
||||||
|
print_config_flag(${GTSAM_ENABLE_BUILD_MEX_BINARIES} "Build MEX binaries ")
|
||||||
|
print_config_flag(${GTSAM_ENABLE_BUILD_MEX_BINARIES_ALL} "Build MEX binaries on ALL target ")
|
||||||
message(STATUS "===============================================================")
|
message(STATUS "===============================================================")
|
||||||
|
|
||||||
# Include CPack *after* all flags
|
# Include CPack *after* all flags
|
||||||
|
|
4
gtsam.h
4
gtsam.h
|
@ -201,7 +201,7 @@ class Pose3 {
|
||||||
Pose3();
|
Pose3();
|
||||||
Pose3(const gtsam::Pose3& pose);
|
Pose3(const gtsam::Pose3& pose);
|
||||||
Pose3(const gtsam::Rot3& r, const gtsam::Point3& t);
|
Pose3(const gtsam::Rot3& r, const gtsam::Point3& t);
|
||||||
Pose3(const gtsam::Pose2& pose2);
|
Pose3(const gtsam::Pose2& pose2); // FIXME: shadows Pose3(Pose3 pose)
|
||||||
Pose3(Matrix t);
|
Pose3(Matrix t);
|
||||||
|
|
||||||
// Testable
|
// Testable
|
||||||
|
@ -239,7 +239,7 @@ class Pose3 {
|
||||||
double y() const;
|
double y() const;
|
||||||
double z() const;
|
double z() const;
|
||||||
Matrix matrix() const;
|
Matrix matrix() const;
|
||||||
gtsam::Pose3 transform_to(const gtsam::Pose3& pose) const;
|
gtsam::Pose3 transform_to(const gtsam::Pose3& pose) const; // FIXME: shadows other transform_to()
|
||||||
double range(const gtsam::Point3& point);
|
double range(const gtsam::Point3& point);
|
||||||
// double range(const gtsam::Pose3& pose);
|
// double range(const gtsam::Pose3& pose);
|
||||||
};
|
};
|
||||||
|
|
|
@ -91,14 +91,19 @@ if (GTSAM_BUILD_WRAP)
|
||||||
DEPENDS wrap)
|
DEPENDS wrap)
|
||||||
|
|
||||||
# Build command
|
# Build command
|
||||||
# Experimental: requires matlab to be on your path
|
|
||||||
if (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
if (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
||||||
# Actually compile the mex files when building the library
|
# Actually compile the mex files when building the library
|
||||||
set(TOOLBOX_MAKE_FLAGS "-j2")
|
if (GTSAM_ENABLE_BUILD_MEX_BINARIES_ALL)
|
||||||
add_custom_target(wrap_gtsam_unstable_build
|
add_custom_target(wrap_gtsam_unstable_build ALL
|
||||||
COMMAND make ${TOOLBOX_MAKE_FLAGS}
|
COMMAND make ${GTSAM_BUILD_MEX_BINARY_FLAGS}
|
||||||
WORKING_DIRECTORY ${toolbox_path}
|
WORKING_DIRECTORY ${toolbox_path}
|
||||||
DEPENDS wrap_gtsam_unstable)
|
DEPENDS wrap_gtsam_unstable)
|
||||||
|
else()
|
||||||
|
add_custom_target(wrap_gtsam_unstable_build
|
||||||
|
COMMAND make ${GTSAM_BUILD_MEX_BINARY_FLAGS}
|
||||||
|
WORKING_DIRECTORY ${toolbox_path}
|
||||||
|
DEPENDS wrap_gtsam_unstable)
|
||||||
|
endif()
|
||||||
endif (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
endif (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
||||||
|
|
||||||
if (GTSAM_INSTALL_MATLAB_TOOLBOX)
|
if (GTSAM_INSTALL_MATLAB_TOOLBOX)
|
||||||
|
|
|
@ -30,7 +30,7 @@ endif(GTSAM_BUILD_TESTS)
|
||||||
# toolboxPath : the directory in which to generate the wrappers
|
# toolboxPath : the directory in which to generate the wrappers
|
||||||
# [mexFlags] : extra flags for the mex command
|
# [mexFlags] : extra flags for the mex command
|
||||||
|
|
||||||
set(mexFlags "-I${Boost_INCLUDE_DIR} -I${CMAKE_INSTALL_PREFIX}/include -I${CMAKE_INSTALL_PREFIX}/include/gtsam -I${CMAKE_INSTALL_PREFIX}/include/gtsam/base -I${CMAKE_INSTALL_PREFIX}/include/gtsam/geometry -I${CMAKE_INSTALL_PREFIX}/include/gtsam/linear -I${CMAKE_INSTALL_PREFIX}/include/gtsam/nonlinear -I${CMAKE_INSTALL_PREFIX}/include/gtsam/slam -L${CMAKE_INSTALL_PREFIX}/lib -lgtsam")
|
set(mexFlags "-I${Boost_INCLUDE_DIR} -I${CMAKE_INSTALL_PREFIX}/include -I${CMAKE_INSTALL_PREFIX}/include/gtsam -I${CMAKE_INSTALL_PREFIX}/include/gtsam/base -I${CMAKE_INSTALL_PREFIX}/include/gtsam/geometry -I${CMAKE_INSTALL_PREFIX}/include/gtsam/linear -I${CMAKE_INSTALL_PREFIX}/include/gtsam/discrete -I${CMAKE_INSTALL_PREFIX}/include/gtsam/inference -I${CMAKE_INSTALL_PREFIX}/include/gtsam/nonlinear -I${CMAKE_INSTALL_PREFIX}/include/gtsam/slam -L${CMAKE_INSTALL_PREFIX}/lib -lgtsam")
|
||||||
set(toolbox_path ${CMAKE_BINARY_DIR}/wrap/gtsam)
|
set(toolbox_path ${CMAKE_BINARY_DIR}/wrap/gtsam)
|
||||||
set(moduleName gtsam)
|
set(moduleName gtsam)
|
||||||
|
|
||||||
|
@ -48,20 +48,29 @@ add_custom_target(wrap_gtsam ALL COMMAND
|
||||||
DEPENDS wrap)
|
DEPENDS wrap)
|
||||||
|
|
||||||
# Build command
|
# Build command
|
||||||
# Experimental: requires matlab to be on your path
|
|
||||||
if (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
if (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
||||||
# Actually compile the mex files when building the library
|
# Actually compile the mex files when building the library
|
||||||
set(TOOLBOX_MAKE_FLAGS "-j2")
|
# TODO: pass correct make flags from parent process
|
||||||
add_custom_target(wrap_gtsam_build
|
message(STATUS "Building Matlab MEX binaries for toolbox with flags ${GTSAM_BUILD_MEX_BINARY_FLAGS}")
|
||||||
COMMAND make ${TOOLBOX_MAKE_FLAGS}
|
if (GTSAM_ENABLE_BUILD_MEX_BINARIES_ALL)
|
||||||
WORKING_DIRECTORY ${toolbox_path}
|
add_custom_target(wrap_gtsam_build ALL
|
||||||
DEPENDS wrap_gtsam)
|
COMMAND make ${GTSAM_BUILD_MEX_BINARY_FLAGS}
|
||||||
|
WORKING_DIRECTORY ${toolbox_path}
|
||||||
|
DEPENDS wrap_gtsam)
|
||||||
|
else()
|
||||||
|
add_custom_target(wrap_gtsam_build
|
||||||
|
COMMAND make ${GTSAM_BUILD_MEX_BINARY_FLAGS}
|
||||||
|
WORKING_DIRECTORY ${toolbox_path}
|
||||||
|
DEPENDS wrap_gtsam)
|
||||||
|
endif()
|
||||||
endif (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
endif (GTSAM_ENABLE_BUILD_MEX_BINARIES)
|
||||||
|
|
||||||
set(GTSAM_TOOLBOX_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/borg/toolbox CACHE DOCSTRING "Path to install matlab toolbox")
|
set(GTSAM_TOOLBOX_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/borg/toolbox CACHE DOCSTRING "Path to install matlab toolbox")
|
||||||
|
|
||||||
if (GTSAM_INSTALL_MATLAB_TOOLBOX)
|
if (GTSAM_INSTALL_MATLAB_TOOLBOX)
|
||||||
# Primary toolbox files
|
# Primary toolbox files
|
||||||
|
# Note that we copy the entire contents of the folder blindly - this is because
|
||||||
|
# the generated files won't exist at configuration time
|
||||||
message(STATUS "Installing Matlab Toolbox to ${GTSAM_TOOLBOX_INSTALL_PATH}")
|
message(STATUS "Installing Matlab Toolbox to ${GTSAM_TOOLBOX_INSTALL_PATH}")
|
||||||
install(DIRECTORY DESTINATION ${GTSAM_TOOLBOX_INSTALL_PATH}) # make an empty folder
|
install(DIRECTORY DESTINATION ${GTSAM_TOOLBOX_INSTALL_PATH}) # make an empty folder
|
||||||
# exploit need for trailing slash to specify a full folder, rather than just its contents to copy
|
# exploit need for trailing slash to specify a full folder, rather than just its contents to copy
|
||||||
|
@ -74,9 +83,10 @@ if (GTSAM_INSTALL_MATLAB_TOOLBOX)
|
||||||
install(FILES ${matlab_examples} DESTINATION ${GTSAM_TOOLBOX_INSTALL_PATH}/gtsam/examples)
|
install(FILES ${matlab_examples} DESTINATION ${GTSAM_TOOLBOX_INSTALL_PATH}/gtsam/examples)
|
||||||
|
|
||||||
message(STATUS "Installing Matlab Toolbox Examples (Data)")
|
message(STATUS "Installing Matlab Toolbox Examples (Data)")
|
||||||
set(data_excludes "${CMAKE_SOURCE_DIR}/examples/Data/.svn")
|
# Data files: *.graph and *.txt
|
||||||
file(GLOB matlab_examples_data "${CMAKE_SOURCE_DIR}/examples/Data/*.*")
|
file(GLOB matlab_examples_data_graph "${CMAKE_SOURCE_DIR}/examples/Data/*.graph")
|
||||||
list(REMOVE_ITEM matlab_examples_data ${data_excludes})
|
file(GLOB matlab_examples_data_txt "${CMAKE_SOURCE_DIR}/examples/Data/*.txt")
|
||||||
|
set(matlab_examples_data ${matlab_examples_data_graph} ${matlab_examples_data_txt})
|
||||||
install(FILES ${matlab_examples_data} DESTINATION ${GTSAM_TOOLBOX_INSTALL_PATH}/gtsam/Data)
|
install(FILES ${matlab_examples_data} DESTINATION ${GTSAM_TOOLBOX_INSTALL_PATH}/gtsam/Data)
|
||||||
endif (GTSAM_INSTALL_MATLAB_EXAMPLES)
|
endif (GTSAM_INSTALL_MATLAB_EXAMPLES)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue