KLayout Main Sources
Go to file
klayoutmatthias f8b3c92191 Windows and Ruby/Python for deploymenu
This commit deals with the deployment issue on Windows
where there is no global Ruby/Python installation and
the installer needs to package all required files.

The solution is to read the Ruby/Python path from a
file that is evaluated upon startup. The installer will
install these files together with the executable for
Windows. This feature is only enabled on Windows.

A specific issue occured: since the location of the
file needs to be determined, the path of the executable
needs to be known. The Ruby initialization requires the
path to be set very early, before QCoreApplication is
instantiated. But Qt complains in QCoreApplication::applicationDirPath
so that this approach cannot be used for this purpose.
2017-08-06 18:18:34 +02:00
scripts DRC: added collect*, select and each methods. 2017-07-17 21:36:29 +02:00
src Windows and Ruby/Python for deploymenu 2017-08-06 18:18:34 +02:00
testdata Some fixes for OASIS reader 2017-07-28 00:19:39 +02:00
.gitignore Attempt to fix "GSI does not monitor lifetime of Qt objects" 2017-02-20 22:21:29 +01:00
CONTRIB Added missing files. 2017-02-12 13:48:01 +01:00
LICENSE Initial commit 2017-02-12 12:54:21 +01:00
README.md Update README.md 2017-02-12 16:06:35 +01:00
build.sh Auto-detect Qt5 version in build script if not given. 2017-06-18 22:13:11 +02:00

README.md

klayout

This repository will hold the main sources for the KLayout project.

Plugins can be included into the "plugins" directory from external sources.

For more details see http://www.klayout.org.

Building requirements

  • Qt 4.8 or later (4.6 with some restrictions)
  • gcc 4.x or later

Here is a list of packages required for various Linux flavors:

  • CentOS (6, 7): gcc gcc-c++ make qt qt-devel ruby ruby-devel python python-devel
  • OpenSuSE: (13.2, 41.1): gcc gcc-c++ make libqt4 libqt4-devel ruby ruby-devel python3 python3-devel
  • Ubuntu (14.04, 16.10): gcc g++ make libz-dev libqt4-dev-bin libqt4-dev ruby ruby-dev python3 python3-dev

Build options

  • Ruby: with this option, Ruby scripts can be executed and developped within KLayout. Ruby support is detected automatically by the build script.
  • Python: with this option, Python scripts can be executed and developped within KLayout. Python support is detected automatically by the build script.
  • Qt binding: with this option, Qt objects are made available to Ruby and Python scripts. Qt bindings are enabled by default. Qt binding offers an option to create custom user interfaces from scripts and to interact with KLayout's main GUI. On the other hand, they provide a considerable overhead when building and running the application.
  • 64 bit coordinate support: with this option, the coordinate type used internally is extended to 64bit as compared to 32bit in the standard version. This will duplicate memory requirements for coordinate lists, but allow a larger design space. 64bit coordinate support is experimental and disabled by default.

Building instructions (Linux)

Plain building for Qt4

./build.sh 

Plain building for Qt5

./build.sh -qt5 

Building without Qt binding

./build.sh -without-qtbinding

Debug build

./build.sh -debug

Building with a particular Ruby version

./build.sh -ruby <path-to-ruby>

(path-to-ruby is the full path of the particular ruby interpreter)

Building with a particular Python version

./build.sh -python <path-to-python>

(path-to-python is the full path of the particular python interpreter)

Building with a particular Qt version

./build.sh -qmake <path-to-qmake>

(path-to-qmake is the full path of the particular qmake installation)

Building with 64bit coordinate support (experimental)

./build.sh -with-64bit-coord

Pass make options

./build.sh -j4 

(for running 4 jobs in parallel)

More options

For more options use

./build.sh -h

Running the Test Suite (Linux)

Go to the build directory (i.e. "bin-release") and enter

export TESTTMP=testtmp    # path to a directory that will hold temporary data (will be created)
export TESTSRC=..         # path to the source directory
./ut_runner

For more options use

./ut_runner -h