Strange includes in antConfigPage.cc source file

edited January 2015 in KLayout Development

Matthias,

In the file antConfigPage.cc, there is :

#include "RulerConfigPage.h"
#include "RulerConfigPage2.h"
#include "RulerConfigPage3.h"
#include "RulerConfigPage4.h"

But those files do not exist, there are only RulerConfigPagexxx.ui

The compilation works thanks to the option MM

I tried to rename those files in xxx.ui and to comment them, but they are needed.

Can you explain this ?

Thanks,

OkGuy

Comments

  • edited November -1

    Hi okguy,

    these files are generated from the .ui files in the Makefile using Qt's uic tool. They are generated in the object directory and cannot be found in the source tree. If they do not exist, the uic step failed for some reason. Please check whether uic is in your path and try a complete rebuild by removing the build folders.

    Matthias

  • edited January 2015

    Thank you Matthias.

    I noticed that I was not using Makefile.rules
    BTW, I am compiling with CodeBlocks but I cannot find in your scripts how MakeFiles.rules is called ?
    I have re-build a Makefile.env (STLPORT, QT64DIR and RUBY64 are defined elsewhere):

    # QTBIN=$QTBIN
    # QTINCLUDE=$QTINCLUDE
    # QTLIB=$QTLIB
    # PLUGINS=$PLUGINS
    # RUBYLIBFILE=$RUBYLIBFILE
    # RUBYINCLUDE=$RUBYINCLUDE
    # RUBYINCLUDE2=$RUBYINCLUDE2
    # RUBYVERSIONCODE=$RUBYVERSIONCODE
    SOURCE=.
    HAVE_RUBY=1
    HAVE_QTBINDINGS=1
    HAVE_64BIT_COORD=1
    

    Other question : as the coordinates are defined as float , would these options help to improve Klayout speed ?

    CXXOPT=-c -Ofast -m64 -march=corei7-avx -mtune=corei7-avx -mno-avx -mno-aes
    

    BRgds,

    OkGuy

  • edited January 2015

    Hi OkGuy,

    the build script will use a top level Makefile which just includes "Makefile.env", "Makefile.body" and "Makefile.rules".

    I cannot support every kind of build system. I'd love to support qmake and QtCreator (which in my perception is one of the best lightweight IDE's for C++). Right now I found it too tedious to configure all the smartness like detecting Ruby installation into .pro files so that has not proceeded further. The build script is a pragmatic approach to cover the Linux part and for Windows there is a Visual Studio solution.

    BTW: it's not true that coordinates are double's. For the layout representation and the majority of layout processing KLayout uses 32bit integers (or 64bit if you configure that option). Only upon drawing or on transformation into a double coordinate space the shapes become versions using floating-point coordinates. The reason for having integer coordinates is not performance (there is no performance advantage of integers over floating types today) but avoiding rounding issues that are inherent in floating point arithmetic. You can try the tuning options but I doubt they give a noticeable performance boost.

    Regards,

    Matthias

Sign In or Register to comment.