[CLN-list] CMakeLists.txt: Improving GiNaC/CLN (& ease of) integration?

Xunie xunie at protonmail.com
Mon Dec 28 00:27:00 CET 2020


Hiya, fine folks, 🤠

I'm trying to integrate GiNaC into my CMake-based project and I'm having some difficulty setting up the build. I was hoping you all could point me in the right direction.

My questions:
#1: How do you build GiNaC/CLN when working on your own projects? Am I the only one that uses CMake?
#2: Could we make the CMake build system (and the integration of GiNaC) slightly easier to work with?

>From a quick glance, CLN and GiNaC seem tightly interwoven. Am I correct in assuming there's a reason CLN doesn't have a CMakeLists.txt? Or is this mainly historical and can I safely start adding a CMake build?

--------------------------

# My problem:
My general git/CMake/C++ workflow consists of integrating every dependency I have as a git submodule under a common directory and point my CMakeLists.txt at each dependency. This has worked for me so far and seems like a reasonably clean way of dealing with dependencies on platforms where they might not be immediately available (i.e. MINGW).

GiNaC's CMake build searches via a module ('cmake/modules/FindCLN.cmake') for a fully built CLN. This is simply not possible during the configuration step of my CMake build since at that point, CLN isn't even fully configured yet!

Anyone have any idea how best to integrate GiNaC and CLN? How do YOU do it? Are there any big projects using GiNaC that I can look at?

# How do we improve the CMake building experience of GiNaC & CLN?
I'm open to suggestions, but I think merely adding a CMakeLists.txt to CLN should enable a better GiNaC build experience without having to modify GiNaC itself! Maybe modify that module just a tad bit but that oughta do it.

If so desired, CLN's CMake build could just be made a proxy for the autotools build.

I've also noticed that CLN's autogen.sh downloads some things via HTTPS from some git repo. This could immediately be looked at during this process.

# The task
(I estimate) there's 1202 source files in CLN as of writing so this is quite a task. I even bumped into source files specific to HP/PA ("Hewlett Packard Precision Architecture") which preceded Itanium which itself will be Discontinued in 2021! This makes CLN quite the antique! None the worse for wear I guess. ;-)

Unless I'm mistaken, I doubt anyone still uses HP/PA in production in this day and age. (Ahh, they don't make 'em like they used to...)

All in all: Should I or anyone else start working on CLN's CMakeLists.txt?


Kind Regards & Happy Holidays,
Xunie


More information about the CLN-list mailing list