* All Tools:
- A complete sweep of cleanup to suppress allmost all compiler warnings. * ./mauka: - New: Added Python support, for configuration & Unicorn.
This commit is contained in:
parent
e111ec062b
commit
f2aae7a567
|
@ -22,7 +22,9 @@
|
||||||
mauka/MaukaEngine.h
|
mauka/MaukaEngine.h
|
||||||
)
|
)
|
||||||
set ( mocIncludes mauka/GraphicMaukaEngine.h )
|
set ( mocIncludes mauka/GraphicMaukaEngine.h )
|
||||||
set ( pyIncludes mauka/PyMaukaEngine.h )
|
set ( pyIncludes mauka/PyMaukaEngine.h
|
||||||
|
mauka/PyGraphicMaukaEngine.h
|
||||||
|
)
|
||||||
set ( cpps Configuration.cpp
|
set ( cpps Configuration.cpp
|
||||||
BBPlacer.cpp
|
BBPlacer.cpp
|
||||||
FeedCells.cpp
|
FeedCells.cpp
|
||||||
|
@ -40,6 +42,7 @@
|
||||||
)
|
)
|
||||||
set ( pyCpps PyMauka.cpp
|
set ( pyCpps PyMauka.cpp
|
||||||
PyMaukaEngine.cpp
|
PyMaukaEngine.cpp
|
||||||
|
PyGraphicMaukaEngine.cpp
|
||||||
)
|
)
|
||||||
qt4_wrap_cpp ( mocCpps ${mocIncludes} )
|
qt4_wrap_cpp ( mocCpps ${mocIncludes} )
|
||||||
|
|
||||||
|
@ -68,7 +71,9 @@
|
||||||
PREFIX ""
|
PREFIX ""
|
||||||
OUTPUT_NAME "Mauka"
|
OUTPUT_NAME "Mauka"
|
||||||
)
|
)
|
||||||
target_link_libraries ( pyMauka mauka )
|
target_link_libraries ( pyMauka mauka
|
||||||
|
${CORIOLIS_PYTHON_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
install ( TARGETS mauka DESTINATION lib${LIB_SUFFIX} )
|
install ( TARGETS mauka DESTINATION lib${LIB_SUFFIX} )
|
||||||
install ( TARGETS pyMauka DESTINATION ${PYTHON_SITE_PACKAGES} )
|
install ( TARGETS pyMauka DESTINATION ${PYTHON_SITE_PACKAGES} )
|
||||||
|
|
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// +-----------------------------------------------------------------+
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
// | |
|
|
||||||
// | C O R I O L I S |
|
// | C O R I O L I S |
|
||||||
// | M a u k a - P l a c e r |
|
// | M a u k a - P l a c e r |
|
||||||
// | |
|
// | |
|
||||||
|
@ -17,10 +12,7 @@
|
||||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./Configuration.cpp" |
|
// | C++ Module : "./Configuration.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
@ -222,15 +222,19 @@ void MaukaEngine::Construct()
|
||||||
{
|
{
|
||||||
//cerr << "unplaced " << (*ioccurrence) << (*ioccurrence).getBoundingBox() << endl;
|
//cerr << "unplaced " << (*ioccurrence) << (*ioccurrence).getBoundingBox() << endl;
|
||||||
Cell* model = instance->getMasterCell();
|
Cell* model = instance->getMasterCell();
|
||||||
DbU::DbU::Unit insWidth = model->getAbutmentBox().getWidth();
|
DbU::Unit insWidth = model->getAbutmentBox().getWidth();
|
||||||
DbU::DbU::Unit insHeight = model->getAbutmentBox().getHeight();
|
DbU::Unit insHeight = model->getAbutmentBox().getHeight();
|
||||||
if (standardCellHeight == 0)
|
if (standardCellHeight == 0) {
|
||||||
|
cmess1 << " - Slice height deduced from: <" << model << ">." << endl;
|
||||||
standardCellHeight = insHeight;
|
standardCellHeight = insHeight;
|
||||||
|
}
|
||||||
else if (insHeight != standardCellHeight)
|
else if (insHeight != standardCellHeight)
|
||||||
{
|
{
|
||||||
throw Error("All non-standard instances : "
|
throw Error("All non-standard instances : "
|
||||||
+ getString(instance->getName())
|
+ getString(instance->getName())
|
||||||
+ " must be placed");
|
+ " must be placed "
|
||||||
|
+ getString(standardCellHeight) + " "
|
||||||
|
+ DbU::getValueString(standardCellHeight) );
|
||||||
}
|
}
|
||||||
_instanceOccurrencesVector.push_back(*ioccurrence);
|
_instanceOccurrencesVector.push_back(*ioccurrence);
|
||||||
//VerifyPathCellBox(*ioccurrence);
|
//VerifyPathCellBox(*ioccurrence);
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
|
||||||
|
// -*- C++ -*-
|
||||||
|
//
|
||||||
|
// This file is part of the Coriolis Software.
|
||||||
|
// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
|
||||||
|
//
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
// | C O R I O L I S |
|
||||||
|
// | M a u k a - P l a c e r |
|
||||||
|
// | |
|
||||||
|
// | Author : Jean-Paul Chaput |
|
||||||
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
|
// | =============================================================== |
|
||||||
|
// | C++ Module : "./PyGraphicMaukaEngine.cpp" |
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
#include "mauka/PyGraphicMaukaEngine.h"
|
||||||
|
#include "hurricane/isobar/PyCell.h"
|
||||||
|
#include "hurricane/Cell.h"
|
||||||
|
|
||||||
|
|
||||||
|
#undef ACCESS_OBJECT
|
||||||
|
#undef ACCESS_CLASS
|
||||||
|
#define ACCESS_OBJECT _baseObject._object
|
||||||
|
#define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject)
|
||||||
|
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(GraphicMaukaEngine,gtool,function)
|
||||||
|
|
||||||
|
|
||||||
|
namespace Mauka {
|
||||||
|
|
||||||
|
using namespace Hurricane;
|
||||||
|
using namespace Isobar;
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
|
// +=================================================================+
|
||||||
|
// | "PyGraphicMaukaEngine" Python Module Code Part |
|
||||||
|
// +=================================================================+
|
||||||
|
|
||||||
|
#if defined(__PYTHON_MODULE__)
|
||||||
|
|
||||||
|
|
||||||
|
// +-------------------------------------------------------------+
|
||||||
|
// | "PyGraphicMaukaEngine" Attribute Methods |
|
||||||
|
// +-------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject* PyGraphicMaukaEngine_grab ( PyObject* )
|
||||||
|
{
|
||||||
|
trace << "PyGraphicMaukaEngine_grab()" << endl;
|
||||||
|
PyGraphicMaukaEngine* pyGraphicMaukaEngine = NULL;
|
||||||
|
|
||||||
|
HTRY
|
||||||
|
pyGraphicMaukaEngine = PyObject_NEW ( PyGraphicMaukaEngine, &PyTypeGraphicMaukaEngine );
|
||||||
|
if ( pyGraphicMaukaEngine == NULL ) return NULL;
|
||||||
|
|
||||||
|
pyGraphicMaukaEngine->ACCESS_OBJECT = GraphicMaukaEngine::grab();
|
||||||
|
HCATCH
|
||||||
|
|
||||||
|
return (PyObject*)pyGraphicMaukaEngine;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject* PyGraphicMaukaEngine_getCell ( PyGraphicMaukaEngine* self )
|
||||||
|
{
|
||||||
|
trace << "PyGraphicMaukaEngine_getCell ()" << endl;
|
||||||
|
|
||||||
|
Cell* cell = NULL;
|
||||||
|
|
||||||
|
HTRY
|
||||||
|
METHOD_HEAD("GraphicMaukaEngine.getCell()")
|
||||||
|
cell = gtool->getCell ();
|
||||||
|
HCATCH
|
||||||
|
|
||||||
|
if (cell == NULL) Py_RETURN_NONE;
|
||||||
|
return PyCell_Link(cell);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
GetNameMethod(GraphicMaukaEngine, gtool)
|
||||||
|
|
||||||
|
// Standart destroy (Attribute).
|
||||||
|
|
||||||
|
|
||||||
|
PyMethodDef PyGraphicMaukaEngine_Methods[] =
|
||||||
|
{ { "grab" , (PyCFunction)PyGraphicMaukaEngine_grab , METH_NOARGS|METH_STATIC
|
||||||
|
, "Returns the GraphicMaukaEngine singleton." }
|
||||||
|
, { "getName" , (PyCFunction)PyGraphicMaukaEngine_getName , METH_NOARGS
|
||||||
|
, "Returns the name of the GraphicMaukaEngine (class attribute)." }
|
||||||
|
, { "getCell" , (PyCFunction)PyGraphicMaukaEngine_getCell , METH_NOARGS
|
||||||
|
, "Returns the Cell on which this GraphicMaukaEngine is attached." }
|
||||||
|
, {NULL, NULL, 0, NULL} /* sentinel */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
// PyGraphicMaukaEngine Type Methods.
|
||||||
|
|
||||||
|
|
||||||
|
PythonOnlyDeleteMethod(GraphicMaukaEngine)
|
||||||
|
PyTypeObjectLinkPyType(GraphicMaukaEngine)
|
||||||
|
|
||||||
|
|
||||||
|
#else // End of Python Module Code Part.
|
||||||
|
|
||||||
|
|
||||||
|
// +=================================================================+
|
||||||
|
// | "PyGraphicMaukaEngine" Shared Library Code Part |
|
||||||
|
// +=================================================================+
|
||||||
|
|
||||||
|
// Link/Creation Method.
|
||||||
|
LinkCreateMethod(GraphicMaukaEngine)
|
||||||
|
|
||||||
|
PyTypeInheritedObjectDefinitions(GraphicMaukaEngine,GraphicTool)
|
||||||
|
|
||||||
|
|
||||||
|
#endif // End of Shared Library Code Part.
|
||||||
|
|
||||||
|
} // extern "C".
|
||||||
|
|
||||||
|
} // CRL namespace.
|
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// +-----------------------------------------------------------------+
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
// | |
|
|
||||||
// | C O R I O L I S |
|
// | C O R I O L I S |
|
||||||
// | M a u k a - P l a c e r |
|
// | M a u k a - P l a c e r |
|
||||||
// | |
|
// | |
|
||||||
|
@ -17,15 +12,13 @@
|
||||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./PyMauka.cpp" |
|
// | C++ Module : "./PyMauka.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#include "hurricane/isobar/PyHurricane.h"
|
#include "hurricane/isobar/PyHurricane.h"
|
||||||
#include "hurricane/isobar/PyCell.h"
|
#include "hurricane/isobar/PyCell.h"
|
||||||
#include "mauka/PyMaukaEngine.h"
|
#include "mauka/PyMaukaEngine.h"
|
||||||
|
#include "mauka/PyGraphicMaukaEngine.h"
|
||||||
|
|
||||||
|
|
||||||
namespace Mauka {
|
namespace Mauka {
|
||||||
|
@ -35,6 +28,8 @@ namespace Mauka {
|
||||||
using Hurricane::tab;
|
using Hurricane::tab;
|
||||||
using Hurricane::in_trace;
|
using Hurricane::in_trace;
|
||||||
using Isobar::__cs;
|
using Isobar::__cs;
|
||||||
|
using CRL::PyTypeToolEngine;
|
||||||
|
using CRL::PyTypeGraphicTool;
|
||||||
|
|
||||||
|
|
||||||
#if !defined(__PYTHON_MODULE__)
|
#if !defined(__PYTHON_MODULE__)
|
||||||
|
@ -61,11 +56,7 @@ extern "C" {
|
||||||
|
|
||||||
|
|
||||||
static PyMethodDef PyMauka_Methods[] =
|
static PyMethodDef PyMauka_Methods[] =
|
||||||
{ { "get" , (PyCFunction)PyMaukaEngine_get , METH_VARARGS
|
{ {NULL, NULL, 0, NULL} /* sentinel */
|
||||||
, "Gets MaukaEngine from a Cell." }
|
|
||||||
, { "create" , (PyCFunction)PyMaukaEngine_create, METH_VARARGS
|
|
||||||
, "Create MaukaEngine on a Cell." }
|
|
||||||
, {NULL, NULL, 0, NULL} /* sentinel */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,8 +69,10 @@ extern "C" {
|
||||||
trace << "initMauka()" << endl;
|
trace << "initMauka()" << endl;
|
||||||
|
|
||||||
PyMaukaEngine_LinkPyType ();
|
PyMaukaEngine_LinkPyType ();
|
||||||
|
PyGraphicMaukaEngine_LinkPyType ();
|
||||||
|
|
||||||
PYTYPE_READY ( MaukaEngine );
|
PYTYPE_READY_SUB ( MaukaEngine , ToolEngine );
|
||||||
|
PYTYPE_READY_SUB ( GraphicMaukaEngine, GraphicTool );
|
||||||
|
|
||||||
// Identifier string can take up to 10 characters.
|
// Identifier string can take up to 10 characters.
|
||||||
__cs.addType ( "mauka", &PyTypeMaukaEngine, "<MaukaEngine>", false );
|
__cs.addType ( "mauka", &PyTypeMaukaEngine, "<MaukaEngine>", false );
|
||||||
|
@ -92,8 +85,10 @@ extern "C" {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject* dictionnary = PyModule_GetDict ( module );
|
Py_INCREF ( &PyTypeMaukaEngine );
|
||||||
//DbULoadConstants ( dictionnary );
|
PyModule_AddObject ( module, "MaukaEngine", (PyObject*)&PyTypeMaukaEngine );
|
||||||
|
Py_INCREF ( &PyTypeGraphicMaukaEngine );
|
||||||
|
PyModule_AddObject ( module, "GraphicMaukaEngine", (PyObject*)&PyTypeGraphicMaukaEngine );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// +-----------------------------------------------------------------+
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
// | |
|
|
||||||
// | C O R I O L I S |
|
// | C O R I O L I S |
|
||||||
// | M a u k a - P l a c e r |
|
// | M a u k a - P l a c e r |
|
||||||
// | |
|
// | |
|
||||||
|
@ -17,16 +12,19 @@
|
||||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Module : "./PyMaukaEngine.cpp" |
|
// | C++ Module : "./PyMaukaEngine.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#include "hurricane/isobar/PyCell.h"
|
#include "hurricane/isobar/PyCell.h"
|
||||||
#include "nimbus/NimbusEngine.h"
|
#include "nimbus/NimbusEngine.h"
|
||||||
#include "mauka/PyMaukaEngine.h"
|
#include "mauka/PyMaukaEngine.h"
|
||||||
|
|
||||||
|
# undef ACCESS_OBJECT
|
||||||
|
# undef ACCESS_CLASS
|
||||||
|
# define ACCESS_OBJECT _baseObject._object
|
||||||
|
# define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject)
|
||||||
|
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(MaukaEngine,mauka,function)
|
||||||
|
|
||||||
|
|
||||||
namespace Mauka {
|
namespace Mauka {
|
||||||
|
|
||||||
|
@ -47,111 +45,119 @@ namespace Mauka {
|
||||||
using Isobar::ParseTwoArg;
|
using Isobar::ParseTwoArg;
|
||||||
using Isobar::PyCell;
|
using Isobar::PyCell;
|
||||||
using Isobar::PyCell_Link;
|
using Isobar::PyCell_Link;
|
||||||
|
using CRL::PyToolEngine;
|
||||||
using Nimbus::NimbusEngine;
|
using Nimbus::NimbusEngine;
|
||||||
|
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(MaukaEngine,mauka,function)
|
|
||||||
|
|
||||||
|
|
||||||
// x=================================================================x
|
|
||||||
// | "PyMaukaEngine" Python Module Code Part |
|
|
||||||
// x=================================================================x
|
|
||||||
|
|
||||||
#if defined(__PYTHON_MODULE__)
|
#if defined(__PYTHON_MODULE__)
|
||||||
|
|
||||||
|
// +=================================================================+
|
||||||
|
// | "PyMaukaEngine" Python Module Code Part |
|
||||||
|
// +=================================================================+
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject* PyMaukaEngine_get ( PyObject*, PyObject* args )
|
||||||
|
{
|
||||||
|
trace << "PyMaukaEngine_get()" << endl;
|
||||||
|
|
||||||
|
MaukaEngine* mauka = NULL;
|
||||||
|
|
||||||
|
HTRY
|
||||||
|
PyObject* arg0;
|
||||||
|
|
||||||
|
if (not ParseOneArg( "Mauka.get", args, CELL_ARG, &arg0)) return NULL;
|
||||||
|
mauka = MaukaEngine::get(PYCELL_O(arg0));
|
||||||
|
HCATCH
|
||||||
|
|
||||||
|
return PyMaukaEngine_Link(mauka);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject* PyMaukaEngine_create ( PyObject*, PyObject* args )
|
||||||
|
{
|
||||||
|
trace << "PyMaukaEngine_create()" << endl;
|
||||||
|
|
||||||
|
MaukaEngine* mauka = NULL;
|
||||||
|
|
||||||
|
HTRY
|
||||||
|
PyObject* arg0;
|
||||||
|
|
||||||
|
if (not ParseOneArg( "Mauka.get", args, CELL_ARG, &arg0)) return NULL;
|
||||||
|
|
||||||
|
Cell* cell = PYCELL_O(arg0);
|
||||||
|
mauka = MaukaEngine::get(cell);
|
||||||
|
|
||||||
|
if ( mauka == NULL ) {
|
||||||
|
NimbusEngine* nimbus = NimbusEngine::get(cell);
|
||||||
|
if (nimbus == NULL)
|
||||||
|
nimbus = NimbusEngine::create(cell);
|
||||||
|
|
||||||
|
mauka = MaukaEngine::create(cell);
|
||||||
|
} else
|
||||||
|
cerr << Warning("%s already has a Mauka engine.",getString(cell).c_str()) << endl;
|
||||||
|
HCATCH
|
||||||
|
|
||||||
|
return PyMaukaEngine_Link(mauka);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PyObject* PyMaukaEngine_regroupOverloadedGCells ( PyMaukaEngine*, PyObject* args )
|
||||||
|
{
|
||||||
|
trace << "PyMaukaEngine_regroupOverloadedGCells()" << endl;
|
||||||
|
|
||||||
|
HTRY
|
||||||
|
PyObject* arg0;
|
||||||
|
|
||||||
|
if (not ParseOneArg("Mauka.regroupOverloadedGCells", args, CELL_ARG, &arg0)) return NULL;
|
||||||
|
MaukaEngine::regroupOverloadedGCells(PYCELL_O(arg0));
|
||||||
|
HCATCH
|
||||||
|
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Standart Accessors (Attributes).
|
// Standart Accessors (Attributes).
|
||||||
DirectVoidMethod(MaukaEngine,mauka,Run)
|
DirectVoidMethod(MaukaEngine,mauka,Run)
|
||||||
|
DirectVoidMethod(MaukaEngine,mauka,printConfiguration)
|
||||||
|
|
||||||
// Standart Destroy (Attribute).
|
// Standart Destroy (Attribute).
|
||||||
DBoDestroyAttribute(PyMaukaEngine_destroy,PyMaukaEngine)
|
DBoDestroyAttribute(PyMaukaEngine_destroy,PyMaukaEngine)
|
||||||
|
|
||||||
|
|
||||||
PyMethodDef PyMaukaEngine_Methods[] =
|
PyMethodDef PyMaukaEngine_Methods[] =
|
||||||
{ { "run" , (PyCFunction)PyMaukaEngine_Run , METH_NOARGS
|
{ { "get" , (PyCFunction)PyMaukaEngine_get , METH_VARARGS|METH_STATIC
|
||||||
|
, "Return the Mauka engine associated to the Cell, None if there isn't." }
|
||||||
|
, { "create" , (PyCFunction)PyMaukaEngine_create , METH_VARARGS|METH_STATIC
|
||||||
|
, "Create a Mauka engine on this Cell." }
|
||||||
|
, { "printConfiguration" , (PyCFunction)PyMaukaEngine_printConfiguration , METH_NOARGS
|
||||||
|
, "Display on the console the configuration of Mauka." }
|
||||||
|
, { "regroupOverloadedGCells", (PyCFunction)PyMaukaEngine_regroupOverloadedGCells, METH_VARARGS|METH_STATIC
|
||||||
|
, "Destroy hierarchical levels that cannot satisfy the placement." }
|
||||||
|
, { "run" , (PyCFunction)PyMaukaEngine_Run , METH_NOARGS
|
||||||
, "Runs Mauka on it's Cell." }
|
, "Runs Mauka on it's Cell." }
|
||||||
, { "destroy" , (PyCFunction)PyMaukaEngine_destroy, METH_NOARGS
|
, { "destroy" , (PyCFunction)PyMaukaEngine_destroy , METH_NOARGS
|
||||||
, "Destroy the associated hurricane object. The python object remains." }
|
, "Destroy the associated hurricane object. The python object remains." }
|
||||||
, {NULL, NULL, 0, NULL} /* sentinel */
|
, {NULL, NULL, 0, NULL} /* sentinel */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
PythonOnlyDeleteMethod(MaukaEngine)
|
DBoDeleteMethod(MaukaEngine)
|
||||||
PyTypeObjectLinkPyType(MaukaEngine)
|
PyTypeObjectLinkPyType(MaukaEngine)
|
||||||
|
|
||||||
|
|
||||||
#else // End of Python Module Code Part.
|
#else // End of Python Module Code Part.
|
||||||
|
|
||||||
|
|
||||||
// x=================================================================x
|
// +=================================================================+
|
||||||
// | "PyMaukaEngine" Shared Library Code Part |
|
// | "PyMaukaEngine" Shared Library Code Part |
|
||||||
// x=================================================================x
|
// +=================================================================+
|
||||||
|
|
||||||
|
|
||||||
extern PyObject* PyMaukaEngine_get ( PyObject *module, PyObject* args )
|
|
||||||
{
|
|
||||||
trace << "PyMaukaEngine_get()" << endl;
|
|
||||||
|
|
||||||
MaukaEngine* mauka = NULL;
|
|
||||||
PyMaukaEngine* pyMauka = NULL;
|
|
||||||
|
|
||||||
HTRY
|
|
||||||
PyObject* arg0;
|
|
||||||
|
|
||||||
if ( not ParseOneArg ( "Mauka.get", args, CELL_ARG, &arg0) ) return NULL;
|
|
||||||
mauka = MaukaEngine::get ( PYCELL_O(arg0) );
|
|
||||||
|
|
||||||
pyMauka = PyObject_NEW ( PyMaukaEngine, &PyTypeMaukaEngine );
|
|
||||||
if ( pyMauka == NULL ) return NULL;
|
|
||||||
|
|
||||||
pyMauka->_object = mauka;
|
|
||||||
HCATCH
|
|
||||||
|
|
||||||
return (PyObject*)pyMauka;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
extern PyObject* PyMaukaEngine_create ( PyObject *module, PyObject* args )
|
|
||||||
{
|
|
||||||
trace << "PyMaukaEngine_create()" << endl;
|
|
||||||
|
|
||||||
MaukaEngine* mauka = NULL;
|
|
||||||
PyMaukaEngine* pyMauka = NULL;
|
|
||||||
|
|
||||||
HTRY
|
|
||||||
PyObject* arg0;
|
|
||||||
|
|
||||||
if ( not ParseOneArg ( "Mauka.get", args, CELL_ARG, &arg0) ) return NULL;
|
|
||||||
|
|
||||||
Cell* cell = PYCELL_O(arg0);
|
|
||||||
mauka = MaukaEngine::get ( cell );
|
|
||||||
|
|
||||||
if ( mauka == NULL ) {
|
|
||||||
NimbusEngine* nimbus = NimbusEngine::get ( cell );
|
|
||||||
if ( nimbus == NULL )
|
|
||||||
NimbusEngine::create ( cell );
|
|
||||||
|
|
||||||
mauka = MaukaEngine::create ( cell );
|
|
||||||
if ( cmess1.enabled() )
|
|
||||||
mauka->getConfiguration()->print( cell );
|
|
||||||
} else
|
|
||||||
cerr << Warning("%s already has a Mauka engine.",getString(cell).c_str()) << endl;
|
|
||||||
|
|
||||||
pyMauka = PyObject_NEW ( PyMaukaEngine, &PyTypeMaukaEngine );
|
|
||||||
if ( pyMauka == NULL ) return NULL;
|
|
||||||
|
|
||||||
pyMauka->_object = mauka;
|
|
||||||
HCATCH
|
|
||||||
|
|
||||||
return (PyObject*)pyMauka;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Link/Creation Method.
|
// Link/Creation Method.
|
||||||
PyTypeObjectDefinitions(MaukaEngine)
|
PyTypeInheritedObjectDefinitions(MaukaEngine,PyToolEngine)
|
||||||
|
DBoLinkCreateMethod(MaukaEngine)
|
||||||
|
|
||||||
|
|
||||||
#endif // End of Shared Library Code Part.
|
#endif // End of Shared Library Code Part.
|
||||||
|
|
|
@ -2,26 +2,17 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// +-----------------------------------------------------------------+
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
// | |
|
|
||||||
// | C O R I O L I S |
|
// | C O R I O L I S |
|
||||||
// | M a u k a - P l a c e r |
|
// | M a u k a - P l a c e r |
|
||||||
// | |
|
// | |
|
||||||
// | Author : Jean-Paul Chaput |
|
// | Author : Jean-Paul Chaput |
|
||||||
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Header : "./GraphicMaukaEngine.h" |
|
// | C++ Header : "./mauka/GraphicMaukaEngine.h" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __MAUKA_GRAPHIC_MAUKA_ENGINE__
|
#ifndef __MAUKA_GRAPHIC_MAUKA_ENGINE__
|
||||||
|
@ -38,7 +29,6 @@ namespace Hurricane {
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "crlcore/GraphicToolEngine.h"
|
#include "crlcore/GraphicToolEngine.h"
|
||||||
|
|
||||||
#include "mauka/MaukaEngine.h"
|
#include "mauka/MaukaEngine.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,25 +2,16 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2006-2012, All Rights Reserved
|
||||||
//
|
|
||||||
// ===================================================================
|
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
//
|
||||||
// x-----------------------------------------------------------------x
|
// x-----------------------------------------------------------------x
|
||||||
// | |
|
|
||||||
// | C O R I O L I S |
|
// | C O R I O L I S |
|
||||||
// | M a u k a - P l a c e r |
|
// | M a u k a - P l a c e r |
|
||||||
// | |
|
// | |
|
||||||
// | Author : Christophe Alexandre |
|
// | Author : Christophe Alexandre |
|
||||||
// | E-mail : Christophe.Alexandre@lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
// | Date : 19/07/2006 |
|
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Header : "./MaukaEngine.h" |
|
// | C++ Header : "./mauka/MaukaEngine.h" |
|
||||||
// | *************************************************************** |
|
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
// x-----------------------------------------------------------------x
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,6 +83,7 @@ namespace Mauka {
|
||||||
static const Name& staticGetName ();
|
static const Name& staticGetName ();
|
||||||
virtual const Name& getName () const;
|
virtual const Name& getName () const;
|
||||||
inline Configuration* getConfiguration () const;
|
inline Configuration* getConfiguration () const;
|
||||||
|
inline void printConfiguration () const;
|
||||||
inline const FeedCells& getFeedCells () const;
|
inline const FeedCells& getFeedCells () const;
|
||||||
inline DbU::Unit getPitch () const;
|
inline DbU::Unit getPitch () const;
|
||||||
inline DbU::Unit getSliceHeight () const;
|
inline DbU::Unit getSliceHeight () const;
|
||||||
|
@ -153,6 +145,7 @@ namespace Mauka {
|
||||||
|
|
||||||
// Inline Methods.
|
// Inline Methods.
|
||||||
inline Configuration* MaukaEngine::getConfiguration () const { return _configuration; }
|
inline Configuration* MaukaEngine::getConfiguration () const { return _configuration; }
|
||||||
|
inline void MaukaEngine::printConfiguration () const { _configuration->print(getCell()); }
|
||||||
inline const FeedCells& MaukaEngine::getFeedCells () const { return _feedCells; }
|
inline const FeedCells& MaukaEngine::getFeedCells () const { return _feedCells; }
|
||||||
inline DbU::Unit MaukaEngine::getPitch () const { return _configuration->getPitch(); }
|
inline DbU::Unit MaukaEngine::getPitch () const { return _configuration->getPitch(); }
|
||||||
inline DbU::Unit MaukaEngine::getSliceHeight () const { return _configuration->getSliceHeight(); }
|
inline DbU::Unit MaukaEngine::getSliceHeight () const { return _configuration->getSliceHeight(); }
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
|
||||||
|
// -*- C++ -*-
|
||||||
|
//
|
||||||
|
// This file is part of the Coriolis Software.
|
||||||
|
// Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
|
||||||
|
//
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
// | C O R I O L I S |
|
||||||
|
// | Alliance / Hurricane Interface |
|
||||||
|
// | |
|
||||||
|
// | Author : Damien DUPUIS |
|
||||||
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
|
// | =============================================================== |
|
||||||
|
// | C++ Header : "./mauka/PyGraphicMaukaEngine.h" |
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __MAUKA_PY_GRAPHIC_MAUKA_ENGINE__
|
||||||
|
#define __MAUKA_PY_GRAPHIC_MAUKA_ENGINE__
|
||||||
|
|
||||||
|
#include "crlcore/PyGraphicToolEngine.h"
|
||||||
|
#include "mauka/GraphicMaukaEngine.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace Mauka {
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
// Python Object : "PyGraphicMaukaEngine".
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
CRL::PyGraphicTool _baseObject;
|
||||||
|
} PyGraphicMaukaEngine;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
// Functions & Types exported to "PyMauka.ccp".
|
||||||
|
|
||||||
|
extern PyTypeObject PyTypeGraphicMaukaEngine;
|
||||||
|
extern PyMethodDef PyGraphicMaukaEngine_Methods[];
|
||||||
|
|
||||||
|
extern void PyGraphicMaukaEngine_LinkPyType ();
|
||||||
|
|
||||||
|
|
||||||
|
#define IsPyGraphicMaukaEngine(v) ( (v)->ob_type == &PyTypeGraphicMaukaEngine )
|
||||||
|
#define PY_GRAPHIC_MAUKA_ENGINE(v) ( (PyGraphicMaukaEngine*)(v) )
|
||||||
|
#define PY_GRAPHIC_MAUKA_ENGINE_O(v) ( PY_GRAPHIC_MAUKA_ENGINE(v)->_baseObject.object )
|
||||||
|
|
||||||
|
|
||||||
|
} // End of extern "C".
|
||||||
|
|
||||||
|
} // Mauka namespace.
|
||||||
|
|
||||||
|
#endif // __MAUKA_PY_GRAPHIC_MAUKA_ENGINE__
|
|
@ -2,14 +2,9 @@
|
||||||
// -*- C++ -*-
|
// -*- C++ -*-
|
||||||
//
|
//
|
||||||
// This file is part of the Coriolis Software.
|
// This file is part of the Coriolis Software.
|
||||||
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
|
// Copyright (c) UPMC/LIP6 2010-2012, All Rights Reserved
|
||||||
//
|
//
|
||||||
// ===================================================================
|
// +-----------------------------------------------------------------+
|
||||||
//
|
|
||||||
// $Id$
|
|
||||||
//
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
// | |
|
|
||||||
// | C O R I O L I S |
|
// | C O R I O L I S |
|
||||||
// | M a u k a - P l a c e r |
|
// | M a u k a - P l a c e r |
|
||||||
// | |
|
// | |
|
||||||
|
@ -17,16 +12,14 @@
|
||||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||||
// | =============================================================== |
|
// | =============================================================== |
|
||||||
// | C++ Header : "./PyMaukaEngine.cpp" |
|
// | C++ Header : "./PyMaukaEngine.cpp" |
|
||||||
// | *************************************************************** |
|
// +-----------------------------------------------------------------+
|
||||||
// | U p d a t e s |
|
|
||||||
// | |
|
|
||||||
// x-----------------------------------------------------------------x
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __PY_MAUKA_ENGINE__
|
#ifndef __PY_MAUKA_ENGINE__
|
||||||
#define __PY_MAUKA_ENGINE__
|
#define __PY_MAUKA_ENGINE__
|
||||||
|
|
||||||
#include "hurricane/isobar/PyHurricane.h"
|
#include "hurricane/isobar/PyHurricane.h"
|
||||||
|
#include "crlcore/PyToolEngine.h"
|
||||||
#include "mauka/MaukaEngine.h"
|
#include "mauka/MaukaEngine.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,8 +33,7 @@ extern "C" {
|
||||||
// Python Object : "PyMaukaEngine".
|
// Python Object : "PyMaukaEngine".
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
CRL::PyToolEngine _baseObject;
|
||||||
Mauka::MaukaEngine* _object;
|
|
||||||
} PyMaukaEngine;
|
} PyMaukaEngine;
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,15 +43,13 @@ extern "C" {
|
||||||
extern PyTypeObject PyTypeMaukaEngine;
|
extern PyTypeObject PyTypeMaukaEngine;
|
||||||
extern PyMethodDef PyMaukaEngine_Methods[];
|
extern PyMethodDef PyMaukaEngine_Methods[];
|
||||||
|
|
||||||
extern PyObject* PyMaukaEngine_get ( PyObject* module, PyObject* args );
|
|
||||||
extern PyObject* PyMaukaEngine_create ( PyObject* module, PyObject* args );
|
|
||||||
extern PyObject* PyMaukaEngine_Link ( Mauka::MaukaEngine* );
|
extern PyObject* PyMaukaEngine_Link ( Mauka::MaukaEngine* );
|
||||||
extern void PyMaukaEngine_LinkPyType ();
|
extern void PyMaukaEngine_LinkPyType ();
|
||||||
|
|
||||||
|
|
||||||
#define IsPyMaukaEngine(v) ( (v)->ob_type == &PyTypeMaukaEngine )
|
#define IsPyMaukaEngine(v) ( (v)->ob_type == &PyTypeMaukaEngine )
|
||||||
#define PYMAUKAENGINE(v) ( (PyMaukaEngine*)(v) )
|
#define PYMAUKAENGINE(v) ( (PyMaukaEngine*)(v) )
|
||||||
#define PYMAUKAENGINE_O(v) ( PYALLIANCEFRAMEWORK(v)->_object )
|
#define PYMAUKAENGINE_O(v) ( PYMAUKAENGINE(v)->_baseObject._object )
|
||||||
|
|
||||||
|
|
||||||
} // End of extern "C".
|
} // End of extern "C".
|
||||||
|
|
Loading…
Reference in New Issue