* All tools:

- Bug: target_link_libraries() must be put back for OSX Snow Leopard
        (doesn't seems to affect Leopard). As I do not have an OSX under
        my hand it's untested and is likely to fail at that point.

  * ./crlcore:
    - New: PyCatalog & PyCatalogState python wrappers, mainly to have constants
        values for stratus1 parsers/drivers.
This commit is contained in:
Jean-Paul Chaput 2010-07-12 15:09:29 +00:00
parent 62b8477fee
commit 1ccefdb128
17 changed files with 1093 additions and 50 deletions

View File

@ -54,7 +54,14 @@ FIND_PACKAGE(HURRICANE REQUIRED)
INCLUDE(UseLATEX)
SET_LIB_LINK_MODE()
FIND_PACKAGE(Boost 1.33.1 COMPONENTS program_options filesystem REQUIRED)
SET(Boost_USE_STATIC_LIBS ON)
MESSAGE(STATUS "Always uses Boost static libraries.")
FIND_PACKAGE(Boost 1.35.0 COMPONENTS program_options filesystem system regex python)
IF(NOT Boost_FOUND)
FIND_PACKAGE(Boost 1.33.1 COMPONENTS program_options filesystem python regex REQUIRED)
ENDIF(NOT Boost_FOUND)
MESSAGE(STATUS "Found Boost libraries ${Boost_LIB_VERSION} in ${Boost_INCLUDE_DIR}")
MESSAGE(STATUS " ${Boost_LIBRARIES}")
STRING(REGEX MATCH "^/usr" IS_USR "$ENV{CORIOLIS_TOP}")
STRING(REGEX MATCH "^/opt" IS_OPT "$ENV{CORIOLIS_TOP}")

View File

@ -49,7 +49,29 @@ IF(UNIX)
DOC "The ${CORIOLIS_INCLUDE_PATH_DESCRIPTION}"
)
FIND_PATH(CORIOLIS_PYTHON_INCLUDE_PATH
NAMES crlcore/PyAllianceFramework.h
PATHS ${CORIOLIS_DIR_SEARCH}
PATH_SUFFIXES include/coriolis2 include
# Help the user find it if we cannot.
DOC "${CORIOLIS_LIBRARY_PATH_DESCRIPTION}"
)
FIND_LIBRARY(CORIOLIS_PYTHON_LIBRARY_PATH
NAMES pycrlcore
PATHS ${CORIOLIS_DIR_SEARCH}
PATH_SUFFIXES lib${LIB_SUFFIX}
# Help the user find it if we cannot.
DOC "${CORIOLIS_LIBRARY_PATH_DESCRIPTION}"
)
SET_LIBRARIES_PATH(CORIOLIS CRLCORE)
SET_LIBRARIES_PATH(CORIOLIS_PYTHON CORIOLIS_PYTHON)
MESSAGE("${CORIOLIS_PYTHON_INCLUDE_PATH}")
MESSAGE("${CORIOLIS_PYTHON_LIBRARY_PATH}")
HURRICANE_CHECK_LIBRARIES(CORIOLIS)
HURRICANE_CHECK_LIBRARIES(CORIOLIS_PYTHON ${CORIOLIS_FIND_REQUIRED})
ENDIF(UNIX)

View File

@ -1,3 +1,4 @@
add_subdirectory(ccore)
add_subdirectory(pyCRL)
add_subdirectory(cyclop)
add_subdirectory(x2y)

View File

@ -222,23 +222,37 @@
qt4_wrap_cpp ( moc_cpps ${mocincludes} )
install ( FILES ${includes} ${mocincludes} DESTINATION include/coriolis2/crlcore )
add_library ( crlcore ${ccore_cpps}
${moc_cpps}
${ap_cpps}
${agds_cpps}
${cif_cpps}
${toolbox_cpps}
${vst_parser_cpps}
${vst_driver_cpps}
${properties_cpps}
${ioc_parser_cpps}
${liberty_cpps}
${liberty_parser_cpps}
${bookshelf_cpps}
${spice_cpps}
${lefdef_cpps}
${openaccess_cpps}
add_library ( crlcore ${ccore_cpps}
${moc_cpps}
${ap_cpps}
${agds_cpps}
${cif_cpps}
${toolbox_cpps}
${vst_parser_cpps}
${vst_driver_cpps}
${properties_cpps}
${ioc_parser_cpps}
${liberty_cpps}
${liberty_parser_cpps}
${bookshelf_cpps}
${spice_cpps}
${lefdef_cpps}
${openaccess_cpps}
)
install ( TARGETS crlcore DESTINATION lib${LIB_SUFFIX} )
target_link_libraries ( crlcore ${HURRICANE_PYTHON_LIBRARIES}
${HURRICANE_GRAPHICAL_LIBRARIES}
${HURRICANE_LIBRARIES}
${CONFIGURATION_LIBRARY}
${CIF_LIBRARY}
${AGDS_LIBRARY}
${LEFDEF_LIBRARIES}
${OA_LIBRARIES}
${QT_LIBRARIES}
${Boost_LIBRARIES}
${LIBXML2_LIBRARIES}
${PYTHON_LIBRARIES} -lutil
)
install ( TARGETS crlcore DESTINATION lib${LIB_SUFFIX} )
install ( FILES ${includes} ${mocincludes} DESTINATION include/coriolis2/crlcore )

View File

@ -206,8 +206,6 @@ namespace CRL {
System::System ()
: _catchCore(true)
{
cerr << "Creating System singleton." << endl;
// Immediate setup to avoid some tiresome looping...
_singleton = this;
@ -285,8 +283,12 @@ namespace CRL {
bfs::path pythonSitePackages = PYTHON_SITE_PACKAGES;
pythonSitePackages = arguments["coriolis_top"].as<string>() / pythonSitePackages;
bfs::path stratusDir = pythonSitePackages / "stratus";
bfs::path cumulusDir = pythonSitePackages / "cumulus";
Isobar::Script::addPath ( pythonSitePackages.string() );
Isobar::Script::addPath ( stratusDir.string() );
Isobar::Script::addPath ( cumulusDir.string() );
// Delayed printing, as we known only now whether VerboseLevel1 is requested.
if ( cmess1.enabled() ) {

View File

@ -20,20 +20,6 @@
add_executable ( cyclop ${cpps} ${MOCcpps} )
target_link_libraries ( cyclop crlcore
${HURRICANE_PYTHON_LIBRARIES}
${HURRICANE_GRAPHICAL_LIBRARIES}
${HURRICANE_LIBRARIES}
${CONFIGURATION_LIBRARY}
${AGDS_LIBRARY}
${CIF_LIBRARY}
${IO_LIBRARIES}
${OA_LIBRARIES}
${LEFDEF_LIBRARIES}
${QT_LIBRARIES}
${Boost_LIBRARIES}
${LIBXML2_LIBRARIES}
${PYTHON_LIBRARIES}
-lutil
)
install ( TARGETS cyclop DESTINATION bin )

View File

@ -0,0 +1,52 @@
include_directories ( ${CRLCORE_SOURCE_DIR}/src/fonts
${CRLCORE_SOURCE_DIR}/src/ccore
${CRLCORE_SOURCE_DIR}/src/ccore/properties
${CRLCORE_SOURCE_DIR}/src/ccore/bookshelf
${CRLCORE_SOURCE_DIR}/src/ccore/cspice
${CRLCORE_SOURCE_DIR}/src/ccore/lefdef
${CRLCORE_SOURCE_DIR}/src/ccore/alliance/ap
${CRLCORE_SOURCE_DIR}/src/ccore/alliance/vst
${CRLCORE_SOURCE_DIR}/src/ccore/agds
${CRLCORE_SOURCE_DIR}/src/ccore/cif
${CRLCORE_SOURCE_DIR}/src/ccore/spice
${CRLCORE_SOURCE_DIR}/src/ccore/liberty
${CRLCORE_SOURCE_DIR}/src/ccore/toolbox
${CRLCORE_SOURCE_DIR}/src/pyCRL
${HURRICANE_INCLUDE_DIR}
${CIF_INCLUDE_DIR}
${CONFIGURATION_INCLUDE_DIR}
${PYTHON_INCLUDE_PATH}
)
add_definitions ( -DCORIOLIS_TOP="${CORIOLIS_TOP}"
-DSYS_CONF_DIR="${SYS_CONF_DIR}"
-DPYTHON_SITE_PACKAGES="${PYTHON_SITE_PACKAGES}"
)
set ( sources PyCRL.cpp
PyCatalog.cpp
PyCatalogState.cpp
PyAllianceFramework.cpp
PyToolBox.cpp
)
set ( includes crlcore/PyCatalog.h
crlcore/PyCatalogState.h
crlcore/PyAllianceFramework.h
crlcore/PyToolBox.h
)
add_library ( pycrlcore ${sources} )
target_link_libraries ( pycrlcore crlcore
${HURRICANE_PYTHON_LIBRARIES}
${PYTHON_LIBRARIES} -lutil
)
add_library ( CRL MODULE ${sources} )
set_target_properties ( CRL PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1"
PREFIX ""
)
install ( FILES ${includes} DESTINATION include/coriolis2/crlcore )
install ( TARGETS pycrlcore DESTINATION lib${LIB_SUFFIX} )
install ( TARGETS CRL DESTINATION ${PYTHON_SITE_PACKAGES} )

View File

@ -0,0 +1,217 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Module : "./PyAllianceFramework.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include "hurricane/isobar/PyCell.h"
#include "hurricane/isobar/PyLibrary.h"
#include "crlcore/Catalog.h" // TEMPORARY
#include "crlcore/PyAllianceFramework.h"
namespace CRL {
using std::cerr;
using std::endl;
using std::hex;
using std::ostringstream;
using Hurricane::tab;
using Hurricane::in_trace;
using Hurricane::Error;
using Hurricane::Warning;
using Isobar::ProxyProperty;
using Isobar::ProxyError;
using Isobar::ConstructorError;
using Isobar::HurricaneError;
using Isobar::HurricaneWarning;
using Isobar::ParseOneArg;
using Isobar::ParseTwoArg;
using Isobar::PyLibrary;
using Isobar::PyLibrary_Link;
using Isobar::PyCell;
using Isobar::PyCell_Link;
extern "C" {
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(AllianceFramework,af,function)
// x=================================================================x
// | "PyAllianceFramework" Python Module Code Part |
// x=================================================================x
#if defined(__PYTHON_MODULE__)
extern PyObject* PyAllianceFramework_getLibrary ( PyAllianceFramework* self, PyObject* args )
{
trace << "PyAllianceFramework_getLibrary ()" << endl;
Library* lib = NULL;
HTRY
METHOD_HEAD("AllianceFramework.getLibrary()")
PyObject* arg0;
if ( not ParseOneArg ( "AllianceFramework.getLibrary()", args, INT_ARG, &arg0 ) ) return NULL;
lib = af->getLibrary ( PyInt_AsLong(arg0) );
if ( lib == NULL ) Py_RETURN_NONE;
HCATCH
return PyLibrary_Link(lib);
}
extern PyObject* PyAllianceFramework_getCell ( PyAllianceFramework* self, PyObject* args )
{
trace << "PyAllianceFramework_getCell ()" << endl;
char* name = NULL;
Cell* cell = NULL;
int mode = 0;
HTRY
METHOD_HEAD("AllianceFramework.getCell()")
if ( not PyArg_ParseTuple(args,"si",&name,&mode) ) {
PyErr_SetString ( ConstructorError, "invalid number of parameters for Cell AllianceFramework.getCell().");
return NULL;
}
cell = af->getCell ( name, mode );
HCATCH
return PyCell_Link(cell);
}
extern PyObject* PyAllianceFramework_saveCell ( PyAllianceFramework* self, PyObject* args )
{
trace << "PyAllianceFramework_saveCell ()" << endl;
HTRY
METHOD_HEAD("AllianceFramework.saveCell()")
PyObject* arg0;
PyObject* arg1;
if ( not ParseTwoArg ( "AllianceFramework.saveCell", args, CELL_INT_ARG, &arg0, &arg1) ) return NULL;
af->saveCell ( PYCELL_O(arg0),PyInt_AsLong(arg1) );
HCATCH
Py_RETURN_NONE;
}
extern PyObject* PyAllianceFramework_createCell ( PyAllianceFramework* self, PyObject* args )
{
trace << "PyAllianceFramework_createCell ()" << endl;
char* name = NULL;
Cell* cell = NULL;
HTRY
METHOD_HEAD("AllianceFramework.createCell()")
if ( not PyArg_ParseTuple(args,"s",&name) ) {
PyErr_SetString ( ConstructorError, "invalid number of parameters for Cell AllianceFramework.createCell().");
return NULL;
}
cell = af->createCell ( name );
HCATCH
return PyCell_Link(cell);
}
// Standart Accessors (Attributes).
// Standart Destroy (Attribute).
// DBoDestroyAttribute(PyAllianceFramework_destroy,PyAllianceFramework)
PyMethodDef PyAllianceFramework_Methods[] =
{ { "getLibrary" , (PyCFunction)PyAllianceFramework_getLibrary, METH_VARARGS, "Gets a Library, by index." }
, { "getCell" , (PyCFunction)PyAllianceFramework_getCell , METH_VARARGS, "Gets an Alliance Cell." }
, { "saveCell" , (PyCFunction)PyAllianceFramework_saveCell , METH_VARARGS, "Saves an Alliance Cell." }
, { "createCell" , (PyCFunction)PyAllianceFramework_createCell, METH_VARARGS, "Create a Cell in the Alliance framework." }
//, { "destroy" , (PyCFunction)PyAllianceFramework_destroy , METH_NOARGS
// , "Destroy the associated hurricane object. The python object remains." }
, {NULL, NULL, 0, NULL} /* sentinel */
};
PythonOnlyDeleteMethod(AllianceFramework)
PyTypeObjectLinkPyType(AllianceFramework)
#else // End of Python Module Code Part.
// x=================================================================x
// | "PyAllianceFramework" Shared Library Code Part |
// x=================================================================x
PyObject* PyAllianceFramework_get ( PyObject *module )
{
trace << "PyAllianceFramework_get()" << endl;
AllianceFramework* af = NULL;
PyAllianceFramework* pyAf = NULL;
HTRY
af = AllianceFramework::get ();
pyAf = PyObject_NEW ( PyAllianceFramework, &PyTypeAllianceFramework );
if ( pyAf == NULL ) return NULL;
pyAf->_object = af;
HCATCH
return (PyObject*)pyAf;
}
// Link/Creation Method.
PyTypeObjectDefinitions(AllianceFramework)
#endif // End of Shared Library Code Part.
} // End of extern "C".
} // End of CRL namespace.

121
crlcore/src/pyCRL/PyCRL.cpp Normal file
View File

@ -0,0 +1,121 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Module : "./PyCRL.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include "hurricane/isobar/PyHurricane.h"
#include "hurricane/isobar/PyLibrary.h"
#include "hurricane/isobar/PyCell.h"
#include "crlcore/PyCatalog.h"
#include "crlcore/PyCatalogState.h"
#include "crlcore/PyAllianceFramework.h"
#include "crlcore/PyToolBox.h"
namespace CRL {
using std::cerr;
using std::endl;
using Hurricane::tab;
using Hurricane::in_trace;
using Isobar::__cs;
#if !defined(__PYTHON_MODULE__)
// x=================================================================x
// | "PyCRL" Shared Library Code Part |
// x=================================================================x
# else // End of PyHurricane Shared Library Code Part.
// x=================================================================x
// | "PyCRL" Python Module Code Part |
// x=================================================================x
extern "C" {
// x-------------------------------------------------------------x
// | "PyCRL" Module Methods |
// x-------------------------------------------------------------x
static PyMethodDef PyCRL_Methods[] =
{ { "getAllianceFramework", (PyCFunction)PyAllianceFramework_get, METH_NOARGS
, "Gets the Alliance Framework." }
, { "createPartRing" , (PyCFunction)PyToolBox_createPartRing, METH_VARARGS
, "Partial build of a ring" }
, {NULL, NULL, 0, NULL} /* sentinel */
};
// ---------------------------------------------------------------
// Module Initialization : "initCRL ()"
DL_EXPORT(void) initCRL () {
trace << "initCRL()" << endl;
PyCatalogState_LinkPyType ();
PyCatalog_LinkPyType ();
PyAllianceFramework_LinkPyType ();
PYTYPE_READY ( CatalogState );
PYTYPE_READY ( Catalog );
PYTYPE_READY ( AllianceFramework );
// Identifier string can take up to 10 characters.
__cs.addType ( "alcFw" , &PyTypeAllianceFramework, "<AllianceFramework>", false );
__cs.addType ( "alcCatalog" , &PyTypeCatalog , "<Catalog>" , false );
__cs.addType ( "alcCatStat" , &PyTypeCatalogState , "<Catalog::State>" , false );
PyObject* module = Py_InitModule ( "CRL", PyCRL_Methods );
if ( module == NULL ) {
cerr << "[ERROR]\n"
<< " Failed to initialize CRL module." << endl;
return;
}
Py_INCREF ( &PyTypeCatalog );
PyModule_AddObject ( module, "Catalog", (PyObject*)&PyTypeCatalog );
PyCatalog_postModuleInit ();
PyObject* dictionnary = PyModule_GetDict ( module );
//DbULoadConstants ( dictionnary );
}
} // End of extern "C".
#endif // End of Python Module Code Part.
} // End of CRL namespace.

View File

@ -0,0 +1,111 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Module : "./PyCatalog.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include "hurricane/isobar/PyCell.h"
#include "hurricane/isobar/PyLibrary.h"
#include "crlcore/Catalog.h" // TEMPORARY
#include "crlcore/PyCatalogState.h"
#include "crlcore/PyCatalog.h"
namespace CRL {
using std::cerr;
using std::endl;
using std::hex;
using std::ostringstream;
using Hurricane::tab;
using Hurricane::in_trace;
using Hurricane::Error;
using Hurricane::Warning;
using Isobar::ProxyProperty;
using Isobar::ProxyError;
using Isobar::ConstructorError;
using Isobar::HurricaneError;
using Isobar::HurricaneWarning;
using Isobar::ParseOneArg;
using Isobar::ParseTwoArg;
using Isobar::PyLibrary;
using Isobar::PyLibrary_Link;
using Isobar::PyCell;
using Isobar::PyCell_Link;
extern "C" {
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Catalog,catalog,function)
// x=================================================================x
// | "PyCatalog" Python Module Code Part |
// x=================================================================x
#if defined(__PYTHON_MODULE__)
// Standart Accessors (Attributes).
// Standart Destroy (Attribute).
// DBoDestroyAttribute(PyCatalog_destroy,PyCatalog)
PyMethodDef PyCatalog_Methods[] =
{ {NULL, NULL, 0, NULL} /* sentinel */
};
PythonOnlyDeleteMethod(Catalog)
PyTypeObjectLinkPyType(Catalog)
#else // End of Python Module Code Part.
// x=================================================================x
// | "PyCatalog" Shared Library Code Part |
// x=================================================================x
// Link/Creation Method.
PyTypeObjectDefinitions(Catalog)
extern void PyCatalog_postModuleInit ()
{
PyCatalogState_postModuleInit ();
PyDict_SetItemString ( PyTypeCatalog.tp_dict, "State", (PyObject*)&PyTypeCatalogState );
}
#endif // End of Shared Library Code Part.
} // End of extern "C".
} // End of CRL namespace.

View File

@ -0,0 +1,170 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Module : "./PyCatalogState.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include "hurricane/isobar/PyCell.h"
#include "hurricane/isobar/PyLibrary.h"
#include "crlcore/Catalog.h"
#include "crlcore/PyCatalogState.h"
namespace CRL {
using std::cerr;
using std::endl;
using std::hex;
using std::ostringstream;
using Hurricane::tab;
using Hurricane::in_trace;
using Hurricane::Error;
using Hurricane::Warning;
using Isobar::ProxyProperty;
using Isobar::ProxyError;
using Isobar::ConstructorError;
using Isobar::HurricaneError;
using Isobar::HurricaneWarning;
using Isobar::ParseOneArg;
using Isobar::ParseTwoArg;
using Isobar::PyLibrary;
using Isobar::PyLibrary_Link;
using Isobar::PyCell;
using Isobar::PyCell_Link;
extern "C" {
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(CatalogState,state,function)
// x=================================================================x
// | "PyCatalogState" Python Module Code Part |
// x=================================================================x
#if defined(__PYTHON_MODULE__)
// Standart Accessors (Attributes).
DirectGetBoolAttribute(PyCatalogState_isFlattenLeaf,isFlattenLeaf,PyCatalogState,Catalog::State)
DirectGetBoolAttribute(PyCatalogState_isFeed ,isFeed ,PyCatalogState,Catalog::State)
DirectGetBoolAttribute(PyCatalogState_isGds ,isGds ,PyCatalogState,Catalog::State)
DirectGetBoolAttribute(PyCatalogState_isDelete ,isDelete ,PyCatalogState,Catalog::State)
DirectGetBoolAttribute(PyCatalogState_isPhysical ,isPhysical ,PyCatalogState,Catalog::State)
DirectGetBoolAttribute(PyCatalogState_isLogical ,isFlattenLeaf,PyCatalogState,Catalog::State)
DirectSetBoolAttribute(PyCatalogState_setFlattenLeaf,setFlattenLeaf,"Catalog::State::setFlatenLeaf",PyCatalogState,Catalog::State)
DirectSetBoolAttribute(PyCatalogState_setFeed ,setFeed ,"Catalog::State::setFeed" ,PyCatalogState,Catalog::State)
DirectSetBoolAttribute(PyCatalogState_setGds ,setGds ,"Catalog::State::setGds" ,PyCatalogState,Catalog::State)
DirectSetBoolAttribute(PyCatalogState_setDelete ,setDelete ,"Catalog::State::setDelete" ,PyCatalogState,Catalog::State)
DirectSetBoolAttribute(PyCatalogState_setPhysical ,setPhysical ,"Catalog::State::setPhysical" ,PyCatalogState,Catalog::State)
DirectSetBoolAttribute(PyCatalogState_setLogical ,setFlattenLeaf,"Catalog::State::setLogical" ,PyCatalogState,Catalog::State)
// Standart Destroy (Attribute).
// DBoDestroyAttribute(PyCatalogState_destroy,PyCatalog)
PyMethodDef PyCatalogState_Methods[] =
{ { "isFlattenLeaf" , (PyCFunction)PyCatalogState_isFlattenLeaf, METH_NOARGS
, "Return true if the Cell must not be explored for hierarchy." }
, { "isFeed" , (PyCFunction)PyCatalogState_isFeed, METH_NOARGS
, "Return true if the Cell is a feed through." }
, { "isGds" , (PyCFunction)PyCatalogState_isGds, METH_NOARGS
, "Return true if the Cell is a GDSII import." }
, { "isDelete" , (PyCFunction)PyCatalogState_isDelete, METH_NOARGS
, "Return true if the Cell has the Catalog Delete attribute." }
, { "isPhysical" , (PyCFunction)PyCatalogState_isPhysical, METH_NOARGS
, "Return true if the Cell possesses a physical (layout) view." }
, { "isLogical" , (PyCFunction)PyCatalogState_isLogical, METH_NOARGS
, "Return true if the Cell possesses a logical (netlist) view." }
, { "setFlattenLeaf", (PyCFunction)PyCatalogState_setFlattenLeaf, METH_VARARGS
, "Sets/reset the FlattenLeaf flag of a Cell." }
, { "setFeed" , (PyCFunction)PyCatalogState_setFeed, METH_VARARGS
, "Sets/reset the Feed flag of a Cell." }
, { "setGds" , (PyCFunction)PyCatalogState_setGds, METH_VARARGS
, "Sets/reset the Gds flag of a Cell." }
, { "setDelete" , (PyCFunction)PyCatalogState_setDelete, METH_VARARGS
, "Sets/reset the Delete flag of a Cell." }
, { "setPhysical" , (PyCFunction)PyCatalogState_setPhysical, METH_VARARGS
, "Sets/reset the Pysical flag of a Cell." }
, { "setLogical" , (PyCFunction)PyCatalogState_setLogical, METH_VARARGS
, "Sets/reset the Logical flag of a Cell." }
, {NULL, NULL, 0, NULL} /* sentinel */
};
PythonOnlyDeleteMethod(CatalogState)
DirectReprMethod(PyCatalogState_Repr, PyCatalogState, Catalog::State)
DirectStrMethod (PyCatalogState_Str, PyCatalogState, Catalog::State)
DirectCmpMethod (PyCatalogState_Cmp, IsPyCatalogState, PyCatalogState)
DirectHashMethod(PyCatalogState_Hash, PyCatalogState)
extern void PyCatalogState_LinkPyType() {
trace << "PyCatalogState_LinkType()" << endl;
PyTypeCatalogState.tp_dealloc = (destructor) PyCatalogState_DeAlloc;
PyTypeCatalogState.tp_compare = (cmpfunc) PyCatalogState_Cmp;
PyTypeCatalogState.tp_repr = (reprfunc) PyCatalogState_Repr;
PyTypeCatalogState.tp_str = (reprfunc) PyCatalogState_Str;
PyTypeCatalogState.tp_hash = (hashfunc) PyCatalogState_Hash;
PyTypeCatalogState.tp_methods = PyCatalogState_Methods;
}
#else // End of Python Module Code Part.
// x=================================================================x
// | "PyCatalogState" Shared Library Code Part |
// x=================================================================x
extern void PyCatalogState_postModuleInit ()
{
PyObject* constant;
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::FlattenLeaf,"FlattenLeaf");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::Feed ,"Feed");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::GDS ,"GDS");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::Delete ,"Delete");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::Logical ,"Logical");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::Physical ,"Physical");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::InMemory ,"InMemory");
LoadObjectConstant(PyTypeCatalogState.tp_dict,Catalog::State::Views ,"Views");
}
// Link/Creation Method.
PyTypeObjectDefinitions(CatalogState)
#endif // End of Shared Library Code Part.
} // End of extern "C".
} // End of CRL namespace.

View File

@ -0,0 +1,94 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Module : "./PyToolBox.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include "hurricane/isobar/PyCell.h"
#include "crlcore/ToolBox.h"
#include "crlcore/PyToolBox.h"
namespace CRL {
using std::cerr;
using std::endl;
using std::hex;
using std::ostringstream;
using Hurricane::tab;
using Hurricane::in_trace;
using Hurricane::Error;
using Hurricane::Warning;
using Isobar::ProxyProperty;
using Isobar::ProxyError;
using Isobar::ConstructorError;
using Isobar::HurricaneError;
using Isobar::HurricaneWarning;
using Isobar::ParseOneArg;
using Isobar::ParseTwoArg;
using Isobar::PyCell;
using Isobar::PyCell_Link;
extern "C" {
// x=================================================================x
// | "PyToolBox" Python Module Code Part |
// x=================================================================x
#if defined(__PYTHON_MODULE__)
#else // End of Python Module Code Part.
// x=================================================================x
// | "PyToolBox" Shared Library Code Part |
// x=================================================================x
extern PyObject* PyToolBox_createPartRing ( PyObject* module, PyObject* args )
{
trace << "PyToolBox_createPartRing ()" << endl;
HTRY
PyObject* arg0;
PyObject* arg1;
if ( not ParseTwoArg ( "CRL.createPartRing", args, CELL_STRING_ARG, &arg0, &arg1 ) )
return NULL;
createPartRing ( PYCELL_O(arg0), PyString_AsString(arg1) );
HCATCH
Py_RETURN_NONE;
}
#endif // End of Shared Library Code Part.
} // End of extern "C".
} // End of CRL namespace.

View File

@ -0,0 +1,70 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Header : "./PyAllianceFramework.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#ifndef __PY_ALLIANCE_FRAMEWORK__
#define __PY_ALLIANCE_FRAMEWORK__
#include "hurricane/isobar/PyHurricane.h"
#include "crlcore/AllianceFramework.h"
namespace CRL {
extern "C" {
// -------------------------------------------------------------------
// Python Object : "PyAllianceFramework".
typedef struct {
PyObject_HEAD
CRL::AllianceFramework* _object;
} PyAllianceFramework;
// -------------------------------------------------------------------
// Functions & Types exported to "PyCRL.ccp".
extern PyTypeObject PyTypeAllianceFramework;
extern PyMethodDef PyAllianceFramework_Methods[];
extern PyObject* PyAllianceFramework_get ( PyObject* module );
extern PyObject* PyAllianceFramework_Link ( CRL::AllianceFramework* );
extern void PyAllianceFramework_LinkPyType ();
#define IsPyAllianceFramework(v) ( (v)->ob_type == &PyTypeAllianceFramework )
#define PYALLIANCEFRAMEWORK(v) ( (PyAllianceFramework*)(v) )
#define PYALLIANCEFRAMEWORK_O(v) ( PYALLIANCEFRAMEWORK(v)->_object )
} // End of extern "C".
} // End of CRL namespace.
#endif // __PY_ALLIANCE_FRAMEWORK__

View File

@ -0,0 +1,70 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Header : "./PyCatalog.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#ifndef __PY_CRL_CATALOG__
#define __PY_CRL_CATALOG__
#include "hurricane/isobar/PyHurricane.h"
#include "crlcore/Catalog.h"
namespace CRL {
extern "C" {
// -------------------------------------------------------------------
// Python Object : "PyCatalog".
typedef struct {
PyObject_HEAD
CRL::Catalog* _object;
} PyCatalog;
// -------------------------------------------------------------------
// Functions & Types exported to "PyCRL.ccp".
extern PyTypeObject PyTypeCatalog;
extern PyMethodDef PyCatalog_Methods[];
extern PyObject* PyCatalog_Link ( CRL::Catalog* );
extern void PyCatalog_LinkPyType ();
extern void PyCatalog_postModuleInit ();
#define IsPyCatalog(v) ( (v)->ob_type == &PyTypeCatalog )
#define PYCATALOG(v) ( (PyCatalog*)(v) )
#define PYCATALOG_O(v) ( PYCATALOG(v)->_object )
} // End of extern "C".
} // End of CRL namespace.
#endif // __PY_CRL_CATALOG__

View File

@ -0,0 +1,70 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Header : "./PyCatalogState.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#ifndef __PY_CRL_CATALOG_STATE__
#define __PY_CRL_CATALOG_STATE__
#include "hurricane/isobar/PyHurricane.h"
#include "crlcore/Catalog.h"
namespace CRL {
extern "C" {
// -------------------------------------------------------------------
// Python Object : "PyCatalogState".
typedef struct {
PyObject_HEAD
CRL::Catalog::State* _object;
} PyCatalogState;
// -------------------------------------------------------------------
// Functions & Types exported to "PyCRL.ccp".
extern PyTypeObject PyTypeCatalogState;
extern PyMethodDef PyCatalogState_Methods[];
extern PyObject* PyCatalogState_Link ( CRL::Catalog::State* );
extern void PyCatalogState_LinkPyType ();
extern void PyCatalogState_postModuleInit ();
#define IsPyCatalogState(v) ( (v)->ob_type == &PyTypeCatalogState )
#define PYCATALOGSTATE(v) ( (PyCatalogState*)(v) )
#define PYCATALOGSTATE_O(v) ( PYCATALOGSTATE(v)->_object )
} // End of extern "C".
} // End of CRL namespace.
#endif // __PY_CRL_CATALOG_STATE__

View File

@ -0,0 +1,50 @@
// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2010-2010, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | Alliance / Hurricane Interface |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Header : "./PyToolBox.h" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#ifndef __PY_CRL_TOOLBOX__
#define __PY_CRL_TOOLBOX__
#include "hurricane/isobar/PyHurricane.h"
namespace CRL {
extern "C" {
// -------------------------------------------------------------------
// Functions & Types exported to "PyCRL.ccp".
extern PyObject* PyToolBox_createPartRing ( PyObject* module, PyObject* args );
} // End of extern "C".
} // End of CRL namespace.
#endif // __PY_CRL_TOOLBOX__

View File

@ -10,19 +10,5 @@
link_directories ( ${CRLCORE_BINARY_DIR}/src/ccore )
add_executable ( cx2y ${cpps} )
target_link_libraries ( cx2y crlcore
${HURRICANE_PYTHON_LIBRARIES}
${HURRICANE_GRAPHICAL_LIBRARIES}
${HURRICANE_LIBRARIES}
${CONFIGURATION_LIBRARY}
${AGDS_LIBRARY}
${CIF_LIBRARY}
${OA_LIBRARIES}
${QT_LIBRARIES}
${LEFDEF_LIBRARIES}
${Boost_LIBRARIES}
${LIBXML2_LIBRARIES}
${PYTHON_LIBRARIES}
-lutil
)
target_link_libraries ( cx2y crlcore )
install ( TARGETS cx2y DESTINATION bin )