Thứ Năm, 28 tháng 4, 2011

FermaNext : Open Source structural Analysis (and failed attempt to compile it on OSX)

FermaNext (http://sourceforge.net/projects/ferma) is an Open Source stuctural Analysis software for Windows and Linux.
Ferma is a free educational CAD software for truss units analysis. It is grounded on the construction conception and designed for finite element calculation and optimization of 2D truss structural units.
Struggling with OSX compilation

After re-installing the Qt SDK (Qt 4.7.2 for Mac) recently, I made an attempt to recompile this software from the provided sources, as there was only a Windows and a Linux version prepared. Unfortunately, this is quite complex because of dependencies and non up-to-date packages... I failed. But got reasonably close.

Qt Creator read the Pro-files and created a full project structure. But the dependencies were harder:

  • expat (sources for this XML parser are included) did not compile, as it only contained some hints for Mac OS Classic. I added an "__APPLE__" directive to at least get through with it.
  • Anti-Grain-Geometry (AGG) was also there but also gave some linking problems.
  • this software apparently uses Java plugins (which was a surprise for me for a C++ application). I downloaded Apache Ant and added an environment variable to find it. Launching Qt Creator from the bash-promt helped to pick it up at compilation time.
  • it uses a deprecated and non-documented "QAtomic" class, which has been replaced with QAtomicInt and QAtomicPtr since Qt 4.4. As I didn't have a clue on what was going on (well, it was about shared pointers and reference counting), I had problems replacing the call to QAtomic with similar calls to these new classes.
  • I had to remove a linking instruction "-enable-dynamic" wich is not required on OSX.
Most of the software seemed to compile, but still not all of it. Anyone on OSX made an attempt? Would be nice to have as an additional tool. But I did get a chance to see how a Qt project can be prepared to include different libraries and how a more complex project is set up.

0 nhận xét:

Đăng nhận xét