Samsung/SEAPT

Name: SEAPT

Owner: Samsung

Description: Samsung Extended Autotools Project Template

Created: 2014-03-25 06:46:55.0

Updated: 2016-07-27 08:49:03.0

Pushed: 2014-02-13 09:01:21.0

Homepage: null

Size: 500

Language: C++

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Samsung Extended Autotools Project Template

Brief

SEAPT is a feature rich set of Autotools configuration files and scripts targetting C/C++ projects, with built-in Doxygen and Google Testing Framework. It works only on UNIX systems and casual build does not depend on anything but Shell interpreter and GNU make. SEAPT is Eclipse CDT friendly.

Features

SEAPT is designed entirely on the basis of Autotools stack: aclocal, autoconf, autoheader, automake and libtool. It is much similar to “classic” open source build system (e.g., needs “configure” to be run), but extends it with a Doxygen documentation and Google Test Framework support out of the box, as well as supplies the necessary Eclipse CDT Autotools Project files. SEAPT suggests a development workflow in which Eclipse is used to write the code and the actual build process is completely independent of any IDE. Though Eclipse is not required at all, it enables deep integration with Autotools and is recommended.

Like cmake, SEAPT provides a nicely formatted colored output. It supports building subdirectories in parallel, compiler version checking and much more.

Setup
  1. Clone this GitHub project.
  2. Execute
it <your desired project name>

This script applies the project name to the templates, wipes out the existing Git repository and initializes a new one, with a single initial commit. The project is now completely ready for development. It is merely a skeleton.

  1. Configure it only for the first time:
togen.sh <build directory>

OR just import the project into Eclipse CDT with Autotools plugin installed: select File -> Import…, then General -> Existing Projects into Workspace, then set the root directory to the directory where you've just cloned SEAPT and click Finish.

  1. Build it:
uild && make -j8

OR click the “Hammer” Eclipse button. That's it.

Configuration

Adding new files, directories, etc. is standard: you must edit Makefile.am-s and configure.ac. The only difference is that one should replace SUBDIRS with PARALLEL_SUBDIRS to enable parallel subdirectories processing. You can refer to automake and libtool documentation for details. Some frequent use cases will be included in future versions of this README.

You may add custom configuration options. To see the list of predefined options, execute

igure --help
Doxygen

Documentation is generated by default; disable it with

igure --disable-doxygen

To change the settings, edit docs/Doxyfile.in and then run `make` OR just build in Eclipse.

Currently, there is no way to trigger documentation rebuild on source files' changes except appending dependencies by hand to “doxyfile.stamp” rule in docs/Makefile.am.

Test suite

SEAPT is shipped with it's own embedded copy of Google Testing Framework in tests/google. It is slightly stripped, but can always be synchronized with upstream using the following commands:

ests/google/src
update
./gtest
update

To run your tests, execute

 tests

or

 check

in the root build directory. Each test is allowed to run no longer than 10 seconds. You can override this value by setting TIMEOUT variable during make invocation. SEAPT automatically measures memory consumption and saves the XML results obtained from gtest.

Eclipse

It is recommended to install ANSI Console plugin to see colored build output (anyway, it can be turned off with `configure --disable-colors`).

SEAPT is released under the Simplified BSD License. Copyright 2012,2013 Samsung R&D Institute Russia.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.