Accurate Qwt detection (Qt4 vs. Qt5). DbU forced to 64 bits.

* Change: In bootstrap/FindBootstrap.cmake, new setup_qwt() macro to
    link with the Qwt library build with Qt 5 *or* Qt 4 and not the
    first found.
* Change: In Hurricane/DbU, uses <int64_t> instead of <long> to always be
    sure that we use 64 bits integers for coordinates.
* Change: In Katana/KatanaEngine::_gutKatana() checks that the
    RoutingPlanes have been allocateds before trying to delete them.
This commit is contained in:
Jean-Paul Chaput 2016-11-23 11:29:28 +01:00
parent b536421d3a
commit a376d34cfe
5 changed files with 54 additions and 2 deletions

View File

@ -267,6 +267,42 @@
endmacro()
#
# Find Qwt, correlated to the Qt version.
#
macro(setup_qwt)
if(WITH_QT5)
find_path(QWT_INCLUDE_DIR NAMES qwt.h
PATHS /usr/include/qt5
/usr/include
PATH_SUFFIXES qwt )
find_library(QWT_LIBRARY NAMES qwt-qt5
PATHS /usr/lib${LIB_SUFFIX} )
else()
find_path(QWT_INCLUDE_DIR NAMES qwt.h
PATHS /usr/include
/usr/include/qt4
PATH_SUFFIXES qwt )
find_library(QWT_LIBRARY NAMES qwt
PATHS /usr/lib${LIB_SUFFIX} )
endif()
if( QWT_INCLUDE_DIR AND QWT_LIBRARY)
set(QWT_FOUND TRUE)
endif()
if(QWT_FOUND)
if(NOT QWT_FIND_QUIETLY)
message(STATUS "-- Found Qwt: ${QWT_LIBRARY}")
endif()
else()
if(QWT_FIND_REQUIRED)
message(FATAL_ERROR "-- Could not find Qwt")
endif()
endif()
endmacro()
#
# Guess the value of SYS_CONF_DIR according to INSTALLDIR.
# if INSTALLDIR is either /usr or /opt, we uses the system-wide /etc,

View File

@ -2,6 +2,12 @@
from Hurricane import DbU
# MOSIS SCN6M_DEEP is a portable technology where lengths are expresseds
# in symbolic unit (lambda). We only know that the lambda is equal to half
# the value of the technology, that is 180nm gives 90nm. We have no information
# about the foundry grid.
#
# We set the foundry grid to .005um and set the gridsPerLambda to 18.
technoConfig = { 'name' : 'scn6m_deep'
, 'gridValue' : 0.005

View File

@ -20,6 +20,15 @@ parametersTable = \
, ("kite.localRipupLimit" ,TypeInt ,9 , { 'min':1 } )
, ("kite.globalRipupLimit" ,TypeInt ,5 , { 'min':1 } )
, ("kite.longGlobalRipupLimit" ,TypeInt ,5 , { 'min':1 } )
# Anabatic parameters are temporarily hosted here.
, ("anabatic.edgeLength" ,TypeInt ,24 )
, ("anabatic.edgeWidth" ,TypeInt ,4 )
, ("anabatic.edgeCostH" ,TypeDouble ,9.0 )
, ("anabatic.edgeCostK" ,TypeDouble ,-10.0 )
, ("anabatic.gcell.displayMode" ,TypeEnumerate ,1
, { 'values':( ("Boundary" , 1)
, ("Density" , 2) ) }
)
)

View File

@ -33,6 +33,7 @@
#define HURRICANE_DBU_H
#include <cstdint>
#include <cmath>
#include "hurricane/Commons.h"
@ -63,7 +64,7 @@ namespace Hurricane {
, Nearest = 4
};
public:
typedef long Unit;
typedef std::int64_t Unit;
public:
static void checkGridBound ( double value );

View File

@ -561,7 +561,7 @@ namespace Katana {
if (getState() < EngineState::EngineGutted) {
openSession();
size_t maxDepth = getConfiguration()->getRoutingGauge()->getDepth();
size_t maxDepth = std::min( getConfiguration()->getRoutingGauge()->getDepth(), _routingPlanes.size() );
for ( size_t depth=0 ; depth < maxDepth ; depth++ ) {
_routingPlanes[depth]->destroy();
}