Prev | Next |
CMakeLists.txt
,
that can be used to test and install a program on Unix, Microsoft, or
Apple operating systems.
For example, one can use it to automatically generate Microsoft project files.
cmake
is in your execution
path with version greater than or equal 2.8.
If not, you can put the path to the version of cmake
in font the command.
Only the cmake
command and the path to the distribution directory
(..
at the end of the command below) are required.
In other words, the first and last lines below are required
and all of the other lines are optional.
build
subdirectory of the
distribution directory
,
change into the build
directory,
and execute the following command:
cmake \
-D CMAKE_VERBOSE_MAKEFILE=cmake_verbose_makefile \
-G generator \
\
-D cppad_prefix=cppad_prefix \
-D cppad_postfix=cppad_postfix \
\
-D cmake_install_includedirs=cmake_install_includedirs \
-D cmake_install_libdirs=cmake_install_libdirs \
\
-D cmake_install_datadir=cmake_install_datadir \
-D cmake_install_docdir=cmake_install_docdir \
\
-D adolc_prefix=adolc_prefix \
-D colpack_prefix=colpack_prefix \
-D eigen_prefix=eigen_prefix \
-D fadbad_prefix=fadbad_prefix \
-D ipopt_prefix=ipopt_prefix \
-D sacado_prefix=sacado_prefix \
\
-D cppad_cxx_flags=cppad_cxx_flags \
-D cppad_profile_flag=cppad_profile_flag \
\
-D cppad_testvector=cppad_testvector \
-D cppad_max_num_threads=cppad_max_num_threads \
-D cppad_tape_id_type=cppad_tape_id_type \
-D cppad_tape_addr_type=cppad_tape_addr_type \
-D cppad_debug_which=cppad_debug_which \
-D cppad_deprecated=cppad_deprecated \
\
..
grep
program,
and store the output in cmake.log
, you can get a list of
all the test options with the command:
grep 'make check' cmake.log
YES
or NO
.
The default value, when it is not present, is NO
.
If it is YES
, then the output of the make
commands
will include all of the files and flags used to run the compiler
and linker. This can be useful for seeing how to compile and link
your own applications.
generator
| Description |
"Unix Makefiles" | make files for unix operating system |
"NMake Makefiles" | make files for Visual Studio |
make install
For example,
if
cppad_prefix
is /usr
,
cmake_install_includedirs
is include
, and
cppad_postfix
is not specified,
the file cppad.hpp
is installed in the location
/usr/include/cppad/cppad.hpp
The default value for
cppad_prefix
is /usr
.
cppad_prefix
is /usr
,
cmake_install_includedirs
is include
, and
cppad_postfix
is coin
,
the file cppad.hpp
is installed in the location
/usr/include/coin/cppad/cppad.hpp
The default value for
cppad_postfix
is empty; i.e,
there is no bottom level relative directory for the installed files.
cppad_prefix
is /usr
,
cmake_install_includedirs
is include
, and
cppad_postfix
is not specified,
the file cppad.hpp
is installed in the location
/usr/include/cppad/cppad.hpp
The default value for this directory list is include
.
cppad_prefix
is /usr
,
cmake_install_libdirs
is lib
,
cppad_postfix
is not specified,
and
ipopt_prefix
is specified,
the file libcppad_ipopt.a
is installed in the location
/usr/lib/libcppad_ipopt.a
The default value for this directory list is lib
.
cppad_prefix
is /usr
,
cmake_install_datadir
is share
, and
cppad_postfix
is not specified,
the pkgconfig
file cppad.pc
is installed in the location
/usr/share/pkgconfig/cppad.pc
The default value for
cmake_install_datadir
is share
.
cppad_prefix
is /usr
,
cmake_install_docdir
is share/doc
, and
cppad_postfix
is not specified,
the file cppad.xml
is installed in the location
/usr/share/doc/cppad/cppad.xml
There is no default value for
cmake_install_docdir
.
If it is not specified, the documentation files are not installed.
adolc_prefix | Including the ADOL-C Examples and Tests |
colpack_prefix | Including the ColPack Sparsity Calculations |
eigen_prefix | Including the Eigen Examples and Tests |
fadbad_prefix | Including the FADBAD Speed Tests |
ipopt_prefix | Including the cppad_ipopt Library and Tests |
sacado_prefix | Including the Sacado Speed Tests |
""
.
These flags must be valid for the C++ compiler
on your system.
For example, if you are using g++
you could specify
-D cppad_cxx_flags="-Wall -ansi -pedantic-errors -std=c++11 -Wshadow"
cppad_cxx_flags
must enable these features.
The compiler may still be used with a flag that disables the new features
(unless it is a Microsoft compiler; i.e., _MSC_VER
is defined).
cppad_cxx_flags
.
See also the
CPPAD_DEBUG_AND_RELEASE
compiler flag (which should not be included in
cppad_cxx_flags
).
-Wshadow
flag is present, it is automatically removed when
compiling examples and test that use these packages.
cppad_max_num_threads
must be greater than or equal to four; i.e.,
max_num_threads >= 4
.
The current default value for
cppad_max_num_threads
is 48,
but it may change in future versions of CppAD.
The value
cppad_max_num_threads
in turn specifies
the default value for the preprocessor symbol
CPPAD_MAX_NUM_THREADS
.
cppad_tape_id_type
is used for identifying different tapes.
The valid values for this type are
unsigned char
,
unsigned short int
,
unsigned int
, and
size_t
.
The smaller the value of
sizeof(cppad_tape_id_type)
,
the less memory is used.
On the other hand, the value
std::numeric_limits<cppad_tape_id_type>::max()
must be larger than the maximum number of tapes used by one thread times
CPPAD_MAX_NUM_THREADS
.
cstdint
types are defined,
they can also be used as the value of
cppad_tape_addr_type
:
uint8_t
,
uint16_t
,
uint32_t
,
uint64_t
.
cppad_tape_addr_type
is used for address in the AD recordings (tapes).
The valid values for this argument are
unsigned char
,
unsigned short int
,
unsigned int
,
size_t
.
The smaller the value of
sizeof(cppad_tape_addr_type)
,
the less memory is used.
On the other hand, the value
std::numeric_limits<cppad_tape_addr_type>::max()
must be larger than any of the following:
size_op
,
size_op_arg
,
size_par
,
size_text
,
size_VecAD
.
cstdint
types are defined,
they can also be used as the value of
cppad_tape_addr_type
:
uint8_t
,
uint16_t
,
uint32_t
,
uint64_t
.
cppad_debug_which
be one of the following:
debug_even
, debug_odd
, debug_all
, debug_none
.
If it is debug_even
(debug_odd
),
files with an even (old) index in a list for each case will be compiled
in debug mode. The remaining files will be compiled in release mode.
If it is debug_all
(debug_none
),
all the files will be compiled in debug (release) mode.
If
cppad_debug_which
does not appear on the command line,
the default value debug_all
is used.
make cppad_ipopt_speed
always get complied in release more (to avoid the extra time
it would take to run in debug mode).
Note that this test corresponds a deprecated interface; see
cppad_ipopt_nlp
.
cppad_deprecated
is NO
(the value YES
is not currently being used).