Git Product home page Git Product logo

cmake-ada's Introduction

The purpose of this complete project is to provide a simple Ada test case
consisting of an Ada executable calling a single routine in an Ada library
which prints out the classic "hello, world" phrase.  This complete project
includes a CMake-based build system and files for Ada language support
within CMake which will eventually become part of CMake itself.

(1) Check documentation of comprehensive test of Ada language support
on your platform as follows:

scripts/comprehensive_test.sh --help

This script is similar in concept but quite different (note its
different location) than the corresponding script in
../../scripts/comprehensive_test.sh which comprehensively tests all of
PLplot so do not confuse the two.

(2) Actually do comprehensive test of Ada language support.  Normally this
is done as follows without any script options

scripts/comprehensive_test.sh

For our two principal build configurations (shared libraries and
static libraries) this script (if executed without options) builds the
test_noninteractive target (which builds the "hello" executable and
all its prerequisites, runs that executable, and compares the output
of that executable with the expected output) in the build tree and in
the installed examples tree.

You check for errors in the above comprehensive test using

grep -i error ../../../comprehensive_test_ada_disposeable/*/*/output_tree/*.out

and send me (Alan W. Irwin <[email protected]> the tarball of information that
is collected by that script at ../../../comprehensive_test_ada_disposeable/comprehensive_test.tar.gz

(3, optional) Debug result:
If (2) shows any errors than you can optionally debug the result as follows:

scripts/comprehensive_test.sh --do_trace yes

This produces voluminous results and buried (deeply) in those is
typically enough information to find out what is going wrong with the
CMake Ada language support.  These voluminous results are automatically
included in the tarball report so please send that report to me (as well
as the one created without the --do_trace yes option in step 2).

(4, optional) Test with valgrind:
Create an empty build tree, run cmake from there, create the hello executable
and test that with valgrind.

mkdir build_dir
cd build_dir
cmake -DBUILD_TEST=ON <path to top-level of test_ada source tree> >& cmake.out
make hello >& hello.out
valgrind src_executable/hello >& valgrind.out

Look through the generated *.out files for any error conditions.

(5, optional) Test whether run-time loader finds all the required libraries

# Most Unix-like platforms (including MinGW-w64/MSYS2? and definitely Cygwin, but excluding Mac OS X)
ldd -r src_executable/hello >& ldd.out

# On Mac OS X
otool -L src_executable/hello >& otool.out

Look through the generated *.out files for any error conditions.

N.B. on at least one platform (Cygwin) the -r option (which checks for
any undefined symbols) is not implemented yet (as of 2015-11) so you
will have to drop it for that special case until the Cygwin
ldd -r option is implemented.

In sum, this project provides a simple demonstration of how to use the
CMake Ada language support with Ada libraries that are either static
or shared. At the same time, this project tests the quality of CMake
Ada support for various user's platforms.  If any user is having
trouble with CMake Ada language support, they should run at least step
2 and step 3 above.

cmake-ada's People

Contributors

cho3 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.