delete example project since it is now its own git template
parent
827f3feb6b
commit
9afce21ac5
|
@ -1,49 +0,0 @@
|
||||||
# This file should be used as a template for creating new projects using the CMake tools
|
|
||||||
# This project has the following features
|
|
||||||
# - GTSAM linking
|
|
||||||
# - Unit tests via CppUnitLite
|
|
||||||
# - Scripts
|
|
||||||
# - Automatic MATLAB wrapper generation
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# To create your own project, replace "example" with the actual name of your project
|
|
||||||
cmake_minimum_required(VERSION 3.0)
|
|
||||||
project(example CXX C)
|
|
||||||
|
|
||||||
# Include GTSAM CMake tools
|
|
||||||
find_package(GTSAMCMakeTools)
|
|
||||||
include(GtsamBuildTypes) # Load build type flags and default to Debug mode
|
|
||||||
include(GtsamTesting) # Easy functions for creating unit tests and scripts
|
|
||||||
include(GtsamMatlabWrap) # Automatic MATLAB wrapper generation
|
|
||||||
|
|
||||||
# Ensure that local folder is searched before library folders
|
|
||||||
include_directories(BEFORE "${PROJECT_SOURCE_DIR}")
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Find GTSAM components
|
|
||||||
find_package(GTSAM REQUIRED) # Uses installed package
|
|
||||||
# Note: Since Jan-2019, GTSAMConfig.cmake defines exported CMake targets
|
|
||||||
# that automatically do include the include_directories() without the need
|
|
||||||
# to call include_directories(), just target_link_libraries(NAME gtsam)
|
|
||||||
#include_directories(${GTSAM_INCLUDE_DIR})
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Build static library from common sources
|
|
||||||
set(CONVENIENCE_LIB_NAME ${PROJECT_NAME})
|
|
||||||
add_library(${CONVENIENCE_LIB_NAME} SHARED example/PrintExamples.h example/PrintExamples.cpp)
|
|
||||||
target_link_libraries(${CONVENIENCE_LIB_NAME} gtsam)
|
|
||||||
|
|
||||||
# Install library
|
|
||||||
install(TARGETS ${CONVENIENCE_LIB_NAME} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin)
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Build tests (CMake tracks the dependecy to link with GTSAM through our project's static library)
|
|
||||||
gtsamAddTestsGlob("example" "tests/test*.cpp" "" "${CONVENIENCE_LIB_NAME}")
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Build scripts (CMake tracks the dependecy to link with GTSAM through our project's static library)
|
|
||||||
gtsamAddExamplesGlob("*.cpp" "" "${CONVENIENCE_LIB_NAME}")
|
|
||||||
|
|
||||||
###################################################################################
|
|
||||||
# Build MATLAB wrapper (CMake tracks the dependecy to link with GTSAM through our project's static library)
|
|
||||||
wrap_and_install_library("example.h" "${CONVENIENCE_LIB_NAME}" "" "")
|
|
|
@ -1,32 +0,0 @@
|
||||||
# MATLAB Wrapper Example Project
|
|
||||||
|
|
||||||
This project serves as a lightweight example for demonstrating how to wrap C++ code in MATLAB using GTSAM.
|
|
||||||
|
|
||||||
## Compiling
|
|
||||||
|
|
||||||
We follow the regular build procedure inside the `example_project` directory:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
mkdir build && cd build
|
|
||||||
cmake ..
|
|
||||||
make -j8
|
|
||||||
sudo make install
|
|
||||||
|
|
||||||
sudo ldconfig # ensures the shared object file generated is correctly loaded
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Now you can open MATLAB and add the `gtsam_toolbox` to the MATLAB path
|
|
||||||
|
|
||||||
```matlab
|
|
||||||
addpath('/usr/local/gtsam_toolbox')
|
|
||||||
```
|
|
||||||
|
|
||||||
At this point you are ready to run the example project. Starting from the `example_project` directory inside MATLAB, simply run code like regular MATLAB, e.g.
|
|
||||||
|
|
||||||
```matlab
|
|
||||||
pe = example.PrintExamples();
|
|
||||||
pe.sayHello();
|
|
||||||
pe.sayGoodbye();
|
|
||||||
```
|
|
|
@ -1,23 +0,0 @@
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
||||||
* Atlanta, Georgia 30332-0415
|
|
||||||
* All Rights Reserved
|
|
||||||
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
||||||
|
|
||||||
* See LICENSE for the license information
|
|
||||||
|
|
||||||
* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file SayGoodbye.cpp
|
|
||||||
* @brief Example script for example project
|
|
||||||
* @author Richard Roberts
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <example/PrintExamples.h>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
example::PrintExamples().sayGoodbye();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
||||||
* Atlanta, Georgia 30332-0415
|
|
||||||
* All Rights Reserved
|
|
||||||
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
||||||
|
|
||||||
* See LICENSE for the license information
|
|
||||||
|
|
||||||
* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file SayHello.cpp
|
|
||||||
* @brief Example script for example project
|
|
||||||
* @author Richard Roberts
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <example/PrintExamples.h>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
example::PrintExamples().sayHello();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
||||||
* Atlanta, Georgia 30332-0415
|
|
||||||
* All Rights Reserved
|
|
||||||
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
||||||
|
|
||||||
* See LICENSE for the license information
|
|
||||||
|
|
||||||
* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file example.h
|
|
||||||
* @brief Example wrapper interface file
|
|
||||||
* @author Richard Roberts
|
|
||||||
*/
|
|
||||||
|
|
||||||
// This is an interface file for automatic MATLAB wrapper generation. See
|
|
||||||
// gtsam.h for full documentation and more examples.
|
|
||||||
|
|
||||||
#include <example/PrintExamples.h>
|
|
||||||
|
|
||||||
namespace example {
|
|
||||||
|
|
||||||
class PrintExamples {
|
|
||||||
PrintExamples();
|
|
||||||
void sayHello() const;
|
|
||||||
void sayGoodbye() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
||||||
* Atlanta, Georgia 30332-0415
|
|
||||||
* All Rights Reserved
|
|
||||||
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
||||||
|
|
||||||
* See LICENSE for the license information
|
|
||||||
|
|
||||||
* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file print_examples.cpp
|
|
||||||
* @brief Example library file
|
|
||||||
* @author Richard Roberts
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include <example/PrintExamples.h>
|
|
||||||
|
|
||||||
namespace example {
|
|
||||||
|
|
||||||
void PrintExamples::sayHello() const {
|
|
||||||
std::cout << internal::getHelloString() << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PrintExamples::sayGoodbye() const {
|
|
||||||
std::cout << internal::getGoodbyeString() << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
std::string getHelloString() {
|
|
||||||
return "Hello!";
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string getGoodbyeString() {
|
|
||||||
return "See you soon!";
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
|
|
||||||
} // namespace example
|
|
|
@ -1,42 +0,0 @@
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
||||||
* Atlanta, Georgia 30332-0415
|
|
||||||
* All Rights Reserved
|
|
||||||
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
||||||
|
|
||||||
* See LICENSE for the license information
|
|
||||||
|
|
||||||
* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file print_examples.h
|
|
||||||
* @brief Example library file
|
|
||||||
* @author Richard Roberts
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace example {
|
|
||||||
|
|
||||||
class PrintExamples {
|
|
||||||
public:
|
|
||||||
/// Print a greeting
|
|
||||||
void sayHello() const;
|
|
||||||
|
|
||||||
/// Print a farewell
|
|
||||||
void sayGoodbye() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
std::string getHelloString();
|
|
||||||
|
|
||||||
std::string getGoodbyeString();
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
|
|
||||||
} // namespace example
|
|
|
@ -1,43 +0,0 @@
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
|
|
||||||
* Atlanta, Georgia 30332-0415
|
|
||||||
* All Rights Reserved
|
|
||||||
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
|
|
||||||
|
|
||||||
* See LICENSE for the license information
|
|
||||||
|
|
||||||
* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file testExample.cpp
|
|
||||||
* @brief Unit tests for example
|
|
||||||
* @author Richard Roberts
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <CppUnitLite/TestHarness.h>
|
|
||||||
|
|
||||||
#include <gtsam/base/TestableAssertions.h>
|
|
||||||
|
|
||||||
#include <example/PrintExamples.h>
|
|
||||||
|
|
||||||
using namespace gtsam;
|
|
||||||
|
|
||||||
TEST(Example, HelloString) {
|
|
||||||
const std::string expectedString = "Hello!";
|
|
||||||
EXPECT(assert_equal(expectedString, example::internal::getHelloString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(Example, GoodbyeString) {
|
|
||||||
const std::string expectedString = "See you soon!";
|
|
||||||
EXPECT(assert_equal(expectedString, example::internal::getGoodbyeString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ************************************************************************* */
|
|
||||||
int main() {
|
|
||||||
TestResult tr;
|
|
||||||
return TestRegistry::runAllTests(tr);
|
|
||||||
}
|
|
||||||
/* ************************************************************************* */
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue