This Time Self-Hosted
dark mode light mode Search

RubyTag++ finally loads

Okay, tonight I wanted to relax a bit as it’s being a really bad real-life period, although I’m having a few “professional” satisfactions that keeps me up. I’ve decided to finish the install of Gentoo on my iBook, but it was halted at about January, so I’m still waiting for GCC 4.1 to build there, so that I can use distcc after.

I decided also to cleanup the metadata of video-herded applications, by setting the right alias as email of maintainer in the files, but that was a completely scripted series of commits so it didn’t actually relax me at all 😛

I decided to continue my work on RubyTag, that I have moved to CMake some days ago.
Albeit the first impressions, CMake is working fine after some fighting, so today I decided to go a step further, split the generator script in more than one file, so that I can structure it a bit more, and then go down to compile. The main problem I had was of having CMake drop the “lib” prefix, but I solved that by setting the PREFIX property to nothing.

I got first a static library, totally useless, but then looking at cmake’s man page and googling a bit, I was able to get a module that was the base to get it loaded.
I had to fix a couple of things that I didn’t take into account before, the first being that the built code was exported as C++ as TagLib is C++ and I did forget to add extern “C” declaration, the second was that I was naming the initialisation function in the wrong way. I fixed both and now the extension load.

Yes it doesn’t do anything actually, as the constructor is not bound to the “new” method, so it just stays there and doing nothing, but it loads and that’s more than I have achieved with M4. Too bad I don’t have the money to add to my Amazon order also Programming Ruby, or it would have been probably easier.

Anyway, look forward for having C++-based Ruby bindings to TagLib, as soon as those are done, I’ll return working on JulTagger, too 🙂

Now, I should probably go to sleep.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.