I want to compile and debug Csound - the executable and its library, or at least whichever one or more libraries hold the ugens.
This is on Debian Linux, with the Codelite IDE. (Codelite is the only IDE I know of which enables traditional GUI debugging with gdb, with pretty printing of C++ containers, while also enabling direct text-mode (not the computer interface) access to gdb.
I was able to get partway towards this. I used:
cmake -G “CodeLite - Unix Makefiles” -B “build” --graphviz=“z-graphviz/Csound.dot” .
to create a Codelite workspace file and a Codelite project file from the supplied CMakeLists.txt file.
The -B “build” instructed it to put both files in a subdirectory I made: build/, which worked fine.
The graphvis command produced some graphs in an obscure format which I was able to convert (at least the first of many files) to a PDF, with dot -Tpdf Csound.dot -o Csound.pdf. The resulting PDF was 2.8 metres wide and only a few cm tall: https://www.firstpr.com.au/temp/csound/Csound-graphviz-dependencies.pdf I printed it and will scrutinise it later.
Codelite 17.0.0 worked OK with this, but all the executables and libraries wound up in build/. Based on prior experience with Codelite projects which I had made myself, for my own source code, I was expecting to be able to alter the project file (by using Codelite itself, generally not by manually editing the file) to have two build configurations: Release and Debug, with appropriate compiler options, with the executables being built in build/Debug/ and build/Release/ respectively. However, this seems to be impossible since the build process ignores various project file settings I use to do this. The details are complex and I have only a cursory understanding of all the things going on with the resulting project file and its custom build settings which cause compilation to occur via some call of gmake, using cmake-produced CMakeLists.txt files in the various directories which hold the source code.
There’s no obvious way of altering this extremely complex setup to produce a debug version of the Csound executable and its library or libraries or to have this with a separate Release build as well.
If anyone can suggest a way forward, I would greatly appreciate it.
One option might be to cut the whole source tree down to whatever I need (no Java or whatever) to build whatever constitutes Csound itself, with no other programs. Then, if I can sort out whatever all the dependencies need me to do to my Codelite project, I can let Codelite figure out now to build it, using whatever arrangements it normally uses, without relying at all on the supplied CMakeLists.txt file. Then I can set up the Debug and Release directories and compiler options as I normally do.
I want to add an old, complex, set of ugens to current Csound. When I wrote these in 1996, they required some extra code in the guts of the program, so they are not ordinary ugens. In 1998 I was able to integrate them with Csound 3.482, but a lot has changed since then!
I could probably do this without a debugger, but I want to extend these already complex ugens, so it would be best to be able to debug them properly.
I will be using the results with Cabbage, with which I made: https://www.youtube.com/watch?v=31DHfo8g9Sw a few years ago. In 1996 I used Csound to make https://www.youtube.com/watch?v=05nJ7Ze1IHE and https://www.youtube.com/watch?v=yBhuwZGMx0w.
Best regards
Robin
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here