Skip to content
/ cmake-ada Public

cmake language support for ada, fork of PLplot's cross-platform support code: http://plplot.sourceforge.net/

License

Notifications You must be signed in to change notification settings

cho3/cmake-ada

Repository files navigation

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.

About

cmake language support for ada, fork of PLplot's cross-platform support code: http://plplot.sourceforge.net/

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published