www.ginac.de Git - ginac.git/atom - CMakeLists.txt history GiNaC -- a C++ library for symbolic computations https://www.ginac.de/ginac.git/?p=ginac.git git service static/git-favicon.png static/git-logo.png 2020-08-28T15:15:31Z gitweb build: use bundled CLN if available 2019-12-19T14:17:41Z Alexey Sheplyakov asheplyakov@altlinux.org Alexey Sheplyakov asheplyakov@altlinux.org 2019-12-19T14:17:41Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=e7a1ce91cd311fde94a8011e2869a7f9fc018f41
build: use bundled CLN if available

So one can unpack CLN tarball (or clone CLN git repository) and compile
both CLN and GiNaC in one pass:

git clone git://ginac.de/ginac.git
cd ginac
git clone git://www.ginac.de/cln.git
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. && make
  • [D] CMakeLists.txt
Use "modern" CMake facilities to manage includes and libs 2019-12-18T10:52:17Z Alexey Sheplyakov asheplyakov@altlinux.org Alexey Sheplyakov asheplyakov@altlinux.org 2019-12-18T10:52:17Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=4f71d7035d32e8f74d9b13e0d6a9c0ab4a58062d
Use "modern" CMake facilities to manage includes and libs

* Use target_link_libraries to specify dependencies (include paths,
  compiler options, etc)

* Export targets and provide `ginac-config.cmake` so the following
  `CMakeLists.txt` is enough to build a program using GiNaC:

    cmake_minimum_required(VERSION 3.1)
    project(foo)
    find_package(ginac REQUIRED)
    add_executable(foo foo.cpp)
    target_link_libraries(foo PRIVATE ginac::ginac)

* GiNaC can be included as a (CMake) subproject. One can put GiNaC
  sources (either from git or a tarball) into a subdirectory (say,
  `ginac`) and use the following CMakeLists.txt to build everything:

    cmake_minimum_required(VERSION 3.1)
    project(foo)
    add_subdirectory(ginac)
    add_executable(foo foo.cpp)
    target_link_libraries(foo PRIVATE ginac::ginac)
  • [D] CMakeLists.txt
build: CMake: made it easier to run tests in parallel 2019-12-27T13:34:05Z Alexey Sheplyakov asheplyakov@altlinux.org Alexey Sheplyakov asheplyakov@altlinux.org 2019-12-27T13:34:05Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=7704505fbf7d969ff918f8bf2ff9ed976194987a
build: CMake: made it easier to run tests in parallel

As of now `make -jN check` executes test suite sequentially
(although it builds test executables in parallel). This takes
a bit too long, so it would be nice to run tests in parallel.
`ctest -jN` or `make test ARGS=-jN` runs tests concurrently,
however it does not build test executables, instead it fails
if any test binary is missing.

Also `test` target is a bit special and it's impossible to add
dependencies to it, see
https://gitlab.kitware.com/cmake/cmake/issues/8438

To work around the problem define `test_suite` target which
builds the tests suite without running it, so one can both
compile and run tests in parallel

make -j8 test_suite
make test ARGS=-j8
  • [D] CMakeLists.txt
Made it easier to run tests on windows 2019-12-25T16:41:17Z Alexey Sheplyakov asheplyakov@altlinux.org Alexey Sheplyakov asheplyakov@altlinux.org 2019-12-25T16:41:17Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=51de097fb10f6167affe710328555113d7bcfa63
Made it easier to run tests on windows

Put executables and DLLs into the `bin` subdirectory so the system
can locate GiNaC (and CLN) DLLs without extra configuration.
  • [D] CMakeLists.txt
build: accept both python 3 and python 2 2020-08-23T07:28:07Z Alexey Sheplyakov asheplyakov@altlinux.org Alexey Sheplyakov asheplyakov@altlinux.org 2020-08-23T07:28:07Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=8a4e28dc8121e50d987e888f9688412e1d3ee663
build: accept both python 3 and python 2

This makes building GiNaC a bit easier for users of "old" distributions
where python 3 is not installed by default (Ubuntu 16.04), or even not
available (CentOS 7).

Scripts themselves work just fine with python 2.7 and python 3.x, so
only minor changes to CMakeLists.txt are required (autotools scripts
already handle python2/3)
  • [D] CMakeLists.txt
Install ginac-excompiler in $LIBEXECDIR, not in $BINDIR. 2016-04-04T07:05:50Z Richard Kreckel kreckel@ginac.de Richard Kreckel kreckel@ginac.de 2016-04-04T07:05:50Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=8dda8683c5f461ac62a31c65823baf232843f228
Install ginac-excompiler in $LIBEXECDIR, not in $BINDIR.

...and make the GiNaC library aware of where it is installed.

The ginac-excompiler script is only invoked by GiNaC::compile_ex(...)
and serves no purpose on its own. In compliance with the FHS, it should
be installed in $LIBEXECDIR, not in $BINDIR. This also disburdens
distribution packagers from having to provide a manpage (which may be
required for all programs in $BINDIR).

The location for $LIBEXECDIR defaults to ${prefix}/libexec/. It may be
overwritten at configuration time. (Many distributions want to set it to
${prefix}/lib/ginac/.)
  • [D] CMakeLists.txt
[build] Force C++11 compilation when using CMake. 2016-02-11T22:10:55Z Richard Kreckel kreckel@ginac.de Richard Kreckel kreckel@ginac.de 2016-02-11T22:10:55Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=bf0356b977d1f0917af59d3d441acc243392d766
[build] Force C++11 compilation when using CMake.
  • [D] CMakeLists.txt
Remove extra cases for missing <stdint.h>. 2016-01-31T09:15:50Z Richard Kreckel kreckel@ginac.de Richard Kreckel kreckel@ginac.de 2016-01-31T09:15:50Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=227c0507d513360c31cd16484e08215e1a506363
Remove extra cases for missing <stdint.h>.

Use <cstdint> unconditionally -- it's been standardized in C++11.
  • [D] CMakeLists.txt
Make compile_ex() work with CMake. 2015-04-14T20:50:31Z Martin Vala mvala@saske.sk Richard Kreckel kreckel@ginac.de 2015-04-14T20:50:31Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=5745deb8dbcee040d1012b8260ed317eb2a32f4b
Make compile_ex() work with CMake.

Infrastructure fixes to make CMake find libdl and make ginac-excompiler
listen to the $CXXFLAGS environment variable.
  • [D] CMakeLists.txt
[build] GiNaC can be built with CMake now. 2011-05-30T23:50:01Z Alexei Sheplyakov Alexei.Sheplyakov@gmail.com Alexei Sheplyakov Alexei.Sheplyakov@gmail.com 2011-05-30T23:50:01Z https://www.ginac.de/ginac.git/?p=ginac.git;a=commitdiff;h=bf0d26572edecc37d98aec715e14fbd71a8c0315
[build] GiNaC can be built with CMake now.

Known issues:

* no make dist
* no make install-pdf
  • [D] CMakeLists.txt