coriolis/hurricane/src/isobar/CMakeLists.txt

156 lines
8.6 KiB
CMake
Raw Normal View History

Update to Qt 5, requires cmake 2.8.9. New placer: Etesian. Update to Qt 5: * Change: Now requires at least cmake 2.8.9. * Change: CMakeLists.txt needs small changes. Qt modules must be found one by one (Core, Gui, Widgets). Must add "set(CMAKE_AUTOMOC ON)" in the top file and replace "qt4" prefix in macros by "qt5". Added simpler macro "setup_qt()" in FindBootstrap.cmake. * Change: No longer need to include <QGtkStyle> is is choosen by default according to the current desktop environment. * Change: In <hurricane>, In HApplication, launch ExceptionWidget when a std::exception is catched instead of silently discarting it. New placer Tool: Etesian * New: <etesian> analytical placer. Encapsulate Coloquinte from Gabriel Gouvine. * New: in <documentation>, add stub demonstration ToolEngine <smurf>. Needs to be commented. Miscellaneous: * New: in <boostrap> and <unicorn>, added support for Etesian, the new analytic placer. The tool itself will be added in the next commit. * Bug: in <CellWidget>, when shifting the display buffer, we no longer can copy the buffer on itself (we should never have). Now go through a temporary one (PlaneId::AutoCopy) which is added to the DrawingPlanes. Affect "goLeft()" and "goUp()". * Bug: In <CellWidget>, remove the WA_PaintOnScreen flag/attribute. When it's on, no PaintEvent is transmitted to the CellWidget when it's the central widget of the <CellViewer> (QMainWindow). It's something I still don't understand from the doc of Qt. * Change: In <AreaCommand>, use the PlaneId enumeration instead of a anonymous numerical index. * Change: In <HApplication>, no longer catch and silently discard standartd exceptions but launch the ExceptionWidget... Suppress the now deprecated constructor with "Type" argument. * Change: In <SelectionModel>, the "reset()" method is deprecated in Qt5, instead enclose the "clear()" by a "beginResetModel()" and "endResetModel()" pair. * New: In <crlcore>, add support for ISPD05 benchmarks (in Bookshelf format). Forked from ISPD04 and not finished yet. * Change: In <Mauka>, distinguish the Action string identifier from <Etesian> * New: In <unicorn>, add entry for ISPD05 loader. Add entry for <Etesian> analytic placer.
2014-03-22 05:50:36 -05:00
# -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt<hurricane/src/isobar>" -*-
2008-03-06 10:46:43 -06:00
# include( ${QT_USE_FILE} )
include_directories( ${HURRICANE_SOURCE_DIR}/src/hurricane
${HURRICANE_SOURCE_DIR}/src/viewer
${HURRICANE_SOURCE_DIR}/src/isobar
${Boost_INCLUDE_DIRS}
Implementation of DataBase native save/restore in JSON (step 1). * New: In Hurricane, added first support for DataBase native import/export using JSON. We choose RapidJSON, in SAX mode, to manage the JSON format low level Read/Write. Thus, it's Git repository http://github.com/miloyip/rapidjson must be added under ~/coriolis-2.x/src and manually build and installed in the Coriolis installation tree (to be integrated in ccb later). Two mode are being supported: 1. Cell mode: one Cell only is saved. In that mode, Entities referred by Occurrences are "outside" the file. They are coded through their "signature" (mostly, all the values of their attributes). The ids saved in the file cannot be restored identically as we cannot predict when and in which context the Cell will be reloaded. 2. Design Blob mode: the whole design hierarchy, down and including the standard cells is saved. This way the design is completly self contained and Entities ared referred through their ids. A design blob can only be loaded immediatly after starting cgt as the DataBase *must* be empty. This way we restore the whole design hierarchy with *exactly* the same ids. Now, Hurricane object should provide a "toJson()" method for driving JSON, and be associated with a JsonObject derived class for parsing. * New: In Hurricane, ability to force the next id that will be used for a DBo (used by Design Blob Mode). * New: In Hurricane, in DataBase, added getCell() and getLibrary() functions to allow the hierarchical access of a Cell/Library in native mode (i.e. whithout the requirement of AllianceFramework). * New: In Hurricane, In CellViewer, added menu entry for Save/Load of JSON Design Blobs. Added at this level because we consider it as the "native" format of Hurricane. * New: In Unicorn, added support of import/export of JSON Cell. * Bug: In Hurricane, in Instance, when cloning an Instance or uniquifying it's master Cell, we forgot about the Occurrences (through shared pathes). When an instance is cloned the Shared pathes still points toward the original Instance. And when it's the master Cell that is uniquifyed it's the Entities pointed to that remains in the original Cell. This is a software design problem. It is difficult to define what policy to adopt when uniquifying: basically that means that one Occurence is either moved onto the clone or duplicated. Furthermore, it is not trivial to known what Occurrence is pointing on the uniquifyed/cloned item. Have to think about it a little more. * Bug: In Etesian, in EtesianEngine, build the flattened nets and their RoutingPads *after* uniquifying (through slaving bounding boxes). This way we avoid the Occurrences problem described above. * Bug: In Etesian, in EtesianEngine, invalidate the RoutingPad after processing the placement so they are put into the right quadtree. This problem is due to the fact that the RoutingPads do not belong to the Instance that they refer. And when this instance is moved around, she doesn't inform the RoutingPad that is has moved. More software architecture design to review...
2016-01-07 06:13:16 -06:00
${CONFIGURATION_INCLUDE_DIR}
${PYTHON_INCLUDE_PATH}
)
set( pyCpps ProxyProperty.cpp
PyBreakpoint.cpp
PyInterval.cpp
PyBox.cpp
PyCell.cpp
PyCellCollection.cpp
PyComponent.cpp
PyComponentCollection.cpp
PyContact.cpp
PyDataBase.cpp
PyEntity.cpp
PyHorizontal.cpp
PyHurricane.cpp
PyHyperNet.cpp
PyPlacementStatus.cpp
PyInstance.cpp
PyInstanceCollection.cpp
PyMaterial.cpp
PyLayer.cpp
PyLayerMask.cpp
PyBasicLayer.cpp
PyRegularLayer.cpp
PyContactLayer.cpp
PyDiffusionLayer.cpp
PyTransistorLayer.cpp
PyViaLayer.cpp
PyLayerCollection.cpp
PyBasicLayerCollection.cpp
PyRegularLayerCollection.cpp
PyViaLayerCollection.cpp
PyLibrary.cpp
PyNet.cpp
PyNetType.cpp
PyNetDirection.cpp
PyNetCollection.cpp
PyNetExternalComponents.cpp
PyNetRoutingState.cpp
PyNetRoutingProperty.cpp
PyOccurrence.cpp
PyOccurrenceCollection.cpp
PyHook.cpp
PyHookCollection.cpp
PyPad.cpp
PyPath.cpp
PyPin.cpp
PyPinPlacementStatus.cpp
PyPinDirection.cpp
PyPinCollection.cpp
PyPlug.cpp
PyPlugCollection.cpp
PyPoint.cpp
PyReference.cpp
PyReferenceCollection.cpp
PyRoutingPad.cpp
PySegment.cpp
PySegmentCollection.cpp
PyTechnology.cpp
PyTransformation.cpp
PyOrientation.cpp
PyDbU.cpp
PyUpdateSession.cpp
PyDebugSession.cpp
PyVertical.cpp
PyQueryMask.cpp
PyQuery.cpp
)
set( pyIncludes hurricane/isobar/ProxyProperty.h
hurricane/isobar/PyBreakpoint.h
hurricane/isobar/PyInterval.h
hurricane/isobar/PyBox.h
hurricane/isobar/PyCell.h
hurricane/isobar/PyCellCollection.h
hurricane/isobar/PyComponent.h
hurricane/isobar/PyComponentCollection.h
hurricane/isobar/PyContact.h
hurricane/isobar/PyDataBase.h
hurricane/isobar/PyEntity.h
hurricane/isobar/PyHorizontal.h
hurricane/isobar/PyHurricane.h
hurricane/isobar/PyHyperNet.h
hurricane/isobar/PyPlacementStatus.h
hurricane/isobar/PyInstance.h
hurricane/isobar/PyInstanceCollection.h
hurricane/isobar/PyMaterial.h
hurricane/isobar/PyLayerMask.h
hurricane/isobar/PyLayer.h
hurricane/isobar/PyBasicLayer.h
hurricane/isobar/PyRegularLayer.h
hurricane/isobar/PyContactLayer.h
hurricane/isobar/PyDiffusionLayer.h
hurricane/isobar/PyTransistorLayer.h
hurricane/isobar/PyLayerCollection.h
hurricane/isobar/PyBasicLayerCollection.h
hurricane/isobar/PyRegularLayerCollection.h
hurricane/isobar/PyViaLayerCollection.h
hurricane/isobar/PyViaLayer.h
hurricane/isobar/PyLibrary.h
hurricane/isobar/PyNet.h
hurricane/isobar/PyNetType.h
hurricane/isobar/PyNetDirection.h
hurricane/isobar/PyNetCollection.h
hurricane/isobar/PyNetExternalComponents.h
hurricane/isobar/PyNetRoutingState.h
hurricane/isobar/PyNetRoutingProperty.h
hurricane/isobar/PyOccurrence.h
hurricane/isobar/PyOccurrenceCollection.h
hurricane/isobar/PyHook.h
hurricane/isobar/PyHookCollection.h
hurricane/isobar/PyPad.h
hurricane/isobar/PyPath.h
hurricane/isobar/PyPin.h
hurricane/isobar/PyPinPlacementStatus.h
hurricane/isobar/PyPinDirection.h
hurricane/isobar/PyPinCollection.h
hurricane/isobar/PyPlug.h
hurricane/isobar/PyPlugCollection.h
hurricane/isobar/PyPoint.h
hurricane/isobar/PyReference.h
hurricane/isobar/PyReferenceCollection.h
hurricane/isobar/PyRoutingPad.h
hurricane/isobar/PySegment.h
hurricane/isobar/PySegmentCollection.h
hurricane/isobar/PyTechnology.h
hurricane/isobar/PyTransformation.h
hurricane/isobar/PyOrientation.h
hurricane/isobar/PyDbU.h
hurricane/isobar/PyUpdateSession.h
hurricane/isobar/PyDebugSession.h
hurricane/isobar/PyVertical.h
hurricane/isobar/PyQueryMask.h
hurricane/isobar/PyQuery.h
)
2010-07-06 05:10:50 -05:00
set( depLibs hurricane
${Boost_LIBRARIES}
${PYTHON_LIBRARIES}
)
add_python_module( "${pyCpps}"
"${pyIncludes}"
"isobar;1.0;1"
Hurricane
"${depLibs}"
include/coriolis2/hurricane/isobar
)