Adjust Katana event sort. CMake detection of Python 2.7 only.
* Change: In all top CMakeLists.txt, force the use of Python 2.7 as we do not compile against 3.x flavors. Do not use the "EXACT" flags as it will not recognize 2.7.x versions. * Change: In Katana::RoutingEvent::Key::Compare(), preliminary experiments shows that the best sorting order is: - Lower layer first (i.e. M2 -> M3 -> M4 -> ... ) - Longer segments first. The later seems to be counter-intuitive. Guess is that placing the small ones first generate a more important fragmentation of the big ones. They are placed too early and are difficult to move afterwards. Another feature to test is *not* inserting pushed left/right segments if they are not *already* routed. * Change: In PyKatanaEngine.runNegociate() now takes a flag argument, provided through the new PyKatanaFlags exported object. (doChip.py must be changed accordingly)
This commit is contained in:
parent
bf7e2fdd2d
commit
c44c6b13f3
|
@ -21,7 +21,7 @@
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(BISON REQUIRED)
|
find_package(BISON REQUIRED)
|
||||||
find_package(FLEX REQUIRED)
|
find_package(FLEX REQUIRED)
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
set_lib_link_mode()
|
set_lib_link_mode()
|
||||||
setup_sysconfdir("${CMAKE_INSTALL_PREFIX}")
|
setup_sysconfdir("${CMAKE_INSTALL_PREFIX}")
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 EXACT REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(AXEP REQUIRED)
|
find_package(AXEP REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
set_lib_link_mode()
|
set_lib_link_mode()
|
||||||
setup_boost(program_options python regex)
|
setup_boost(program_options python regex)
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
find_package(BZip2 REQUIRED)
|
find_package(BZip2 REQUIRED)
|
||||||
find_package(BISON REQUIRED)
|
find_package(BISON REQUIRED)
|
||||||
find_package(FLEX REQUIRED)
|
find_package(FLEX REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(Libexecinfo REQUIRED)
|
find_package(Libexecinfo REQUIRED)
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
# -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt<hurricane>" -*-
|
||||||
|
|
||||||
|
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
||||||
|
project(HURRICANE)
|
||||||
|
|
||||||
|
option(BUILD_DOC "Build the documentation (doxygen)" OFF)
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8.9)
|
||||||
|
|
||||||
|
list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules")
|
||||||
|
find_package(Bootstrap REQUIRED)
|
||||||
|
setup_project_paths(CORIOLIS)
|
||||||
|
list(INSERT CMAKE_MODULE_PATH 0 "${HURRICANE_SOURCE_DIR}/cmake_modules/")
|
||||||
|
|
||||||
|
set_cmake_policies()
|
||||||
|
set_lib_link_mode()
|
||||||
|
setup_boost(program_options regex)
|
||||||
|
setup_qt()
|
||||||
|
|
||||||
|
find_package(LibXml2 REQUIRED)
|
||||||
|
find_package(BZip2 REQUIRED)
|
||||||
|
find_package(BISON REQUIRED)
|
||||||
|
find_package(FLEX REQUIRED)
|
||||||
|
find_package(PythonLibs REQUIRED)
|
||||||
|
find_package(PythonSitePackages REQUIRED)
|
||||||
|
find_package(VLSISAPD REQUIRED)
|
||||||
|
find_package(Libexecinfo REQUIRED)
|
||||||
|
find_package(Libbfd)
|
||||||
|
|
||||||
|
add_subdirectory(src)
|
||||||
|
add_subdirectory(cmake_modules)
|
||||||
|
#add_subdirectory(tests)
|
||||||
|
|
||||||
|
if(BUILD_DOC)
|
||||||
|
find_package(Doxygen)
|
||||||
|
if(DOXYGEN_FOUND)
|
||||||
|
add_subdirectory(doc)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#enable_testing()
|
||||||
|
#add_test(HurricaneTest ${PROJECT_BINARY_DIR}/tests/htest)
|
|
@ -17,7 +17,7 @@
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
set(QT_USE_QTXML "true")
|
set(QT_USE_QTXML "true")
|
||||||
find_package(Qt4 REQUIRED)
|
find_package(Qt4 REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
setup_boost(program_options filesystem python regex)
|
setup_boost(program_options filesystem python regex)
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
)
|
)
|
||||||
set( pyIncludes katana/PyKatanaEngine.h
|
set( pyIncludes katana/PyKatanaEngine.h
|
||||||
katana/PyGraphicKatanaEngine.h
|
katana/PyGraphicKatanaEngine.h
|
||||||
|
katana/PyKatanaFlags.h
|
||||||
)
|
)
|
||||||
set( mocIncludes katana/GraphicKatanaEngine.h )
|
set( mocIncludes katana/GraphicKatanaEngine.h )
|
||||||
set( cpps Constants.cpp
|
set( cpps Constants.cpp
|
||||||
|
@ -73,6 +74,7 @@
|
||||||
set( pyCpps PyKatana.cpp
|
set( pyCpps PyKatana.cpp
|
||||||
PyKatanaEngine.cpp
|
PyKatanaEngine.cpp
|
||||||
PyGraphicKatanaEngine.cpp
|
PyGraphicKatanaEngine.cpp
|
||||||
|
PyKatanaFlags.cpp
|
||||||
)
|
)
|
||||||
qtX_wrap_cpp( mocCpps ${mocIncludes} )
|
qtX_wrap_cpp( mocCpps ${mocIncludes} )
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
#include "hurricane/isobar/PyHurricane.h"
|
#include "hurricane/isobar/PyHurricane.h"
|
||||||
#include "hurricane/isobar/PyCell.h"
|
#include "hurricane/isobar/PyCell.h"
|
||||||
|
#include "katana/PyKatanaFlags.h"
|
||||||
#include "katana/PyKatanaEngine.h"
|
#include "katana/PyKatanaEngine.h"
|
||||||
#include "katana/PyGraphicKatanaEngine.h"
|
#include "katana/PyGraphicKatanaEngine.h"
|
||||||
|
|
||||||
|
@ -67,9 +68,11 @@ extern "C" {
|
||||||
DL_EXPORT(void) initKatana () {
|
DL_EXPORT(void) initKatana () {
|
||||||
cdebug_log(40,0) << "initKatana()" << endl;
|
cdebug_log(40,0) << "initKatana()" << endl;
|
||||||
|
|
||||||
|
PyKatanaFlags_LinkPyType();
|
||||||
PyKatanaEngine_LinkPyType();
|
PyKatanaEngine_LinkPyType();
|
||||||
PyGraphicKatanaEngine_LinkPyType();
|
PyGraphicKatanaEngine_LinkPyType();
|
||||||
|
|
||||||
|
PYTYPE_READY ( KatanaFlags );
|
||||||
PYTYPE_READY_SUB( KatanaEngine , ToolEngine );
|
PYTYPE_READY_SUB( KatanaEngine , ToolEngine );
|
||||||
PYTYPE_READY_SUB( GraphicKatanaEngine, GraphicTool );
|
PYTYPE_READY_SUB( GraphicKatanaEngine, GraphicTool );
|
||||||
|
|
||||||
|
@ -85,12 +88,15 @@ extern "C" {
|
||||||
PyModule_AddObject( module, "KatanaEngine", (PyObject*)&PyTypeKatanaEngine );
|
PyModule_AddObject( module, "KatanaEngine", (PyObject*)&PyTypeKatanaEngine );
|
||||||
Py_INCREF( &PyTypeGraphicKatanaEngine );
|
Py_INCREF( &PyTypeGraphicKatanaEngine );
|
||||||
PyModule_AddObject( module, "GraphicKatanaEngine", (PyObject*)&PyTypeGraphicKatanaEngine );
|
PyModule_AddObject( module, "GraphicKatanaEngine", (PyObject*)&PyTypeGraphicKatanaEngine );
|
||||||
|
Py_INCREF( &PyTypeKatanaFlags );
|
||||||
|
PyModule_AddObject( module, "Flags", (PyObject*)&PyTypeKatanaFlags );
|
||||||
// PyObject* dictionnary = PyModule_GetDict( module );
|
// PyObject* dictionnary = PyModule_GetDict( module );
|
||||||
// PyObject* constant;
|
// PyObject* constant;
|
||||||
|
|
||||||
// LoadObjectConstant( dictionnary, KtBuildGlobalRouting, "KtBuildGlobalRouting" );
|
// LoadObjectConstant( dictionnary, KtBuildGlobalRouting, "KtBuildGlobalRouting" );
|
||||||
// LoadObjectConstant( dictionnary, KtLoadGlobalRouting , "KtLoadGlobalRouting" );
|
// LoadObjectConstant( dictionnary, KtLoadGlobalRouting , "KtLoadGlobalRouting" );
|
||||||
|
|
||||||
|
PyKatanaEngine_postModuleInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "hurricane/viewer/ExceptionWidget.h"
|
#include "hurricane/viewer/ExceptionWidget.h"
|
||||||
#include "hurricane/Cell.h"
|
#include "hurricane/Cell.h"
|
||||||
#include "katana/PyKatanaEngine.h"
|
#include "katana/PyKatanaEngine.h"
|
||||||
|
#include "katana/PyKatanaFlags.h"
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
# undef ACCESS_OBJECT
|
# undef ACCESS_OBJECT
|
||||||
|
@ -264,19 +265,26 @@ extern "C" {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static PyObject* PyKatanaEngine_runNegociate ( PyKatanaEngine* self )
|
static PyObject* PyKatanaEngine_runNegociate ( PyKatanaEngine* self, PyObject* args )
|
||||||
{
|
{
|
||||||
cdebug_log(40,0) << "PyKatanaEngine_runNegociate()" << endl;
|
cdebug_log(40,0) << "PyKatanaEngine_runNegociate()" << endl;
|
||||||
|
|
||||||
|
unsigned int flags = 0;
|
||||||
HTRY
|
HTRY
|
||||||
METHOD_HEAD("KatanaEngine.runNegociate()")
|
METHOD_HEAD("KatanaEngine.runNegociate()")
|
||||||
if (katana->getViewer()) {
|
if (PyArg_ParseTuple(args,"I:KatanaEngine.runNegociate", &flags)) {
|
||||||
if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::runNegociate,katana,0) )) {
|
if (katana->getViewer()) {
|
||||||
PyErr_SetString( HurricaneError, "EtesianEngine::runNegociate() has thrown an exception (C++)." );
|
if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::runNegociate,katana,flags) )) {
|
||||||
|
PyErr_SetString( HurricaneError, "EtesianEngine::runNegociate() has thrown an exception (C++)." );
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
katana->runNegociate( flags );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
PyErr_SetString( ConstructorError, "KatanaEngine.runNegociate(): Invalid number/bad type of parameter." );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
katana->runNegociate();
|
|
||||||
}
|
|
||||||
HCATCH
|
HCATCH
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
@ -313,7 +321,7 @@ extern "C" {
|
||||||
, "Run the layer assigment stage." }
|
, "Run the layer assigment stage." }
|
||||||
, { "runNegociatePreRouted", (PyCFunction)PyKatanaEngine_runNegociatePreRouted, METH_NOARGS
|
, { "runNegociatePreRouted", (PyCFunction)PyKatanaEngine_runNegociatePreRouted, METH_NOARGS
|
||||||
, "Run the negociation stage for pre-routed of the detailed router." }
|
, "Run the negociation stage for pre-routed of the detailed router." }
|
||||||
, { "runNegociate" , (PyCFunction)PyKatanaEngine_runNegociate , METH_NOARGS
|
, { "runNegociate" , (PyCFunction)PyKatanaEngine_runNegociate , METH_VARARGS
|
||||||
, "Run the negociation stage of the detailed router." }
|
, "Run the negociation stage of the detailed router." }
|
||||||
, { "finalizeLayout" , (PyCFunction)PyKatanaEngine_finalizeLayout , METH_NOARGS
|
, { "finalizeLayout" , (PyCFunction)PyKatanaEngine_finalizeLayout , METH_NOARGS
|
||||||
, "Revert to a pure Hurricane database, remove router's additionnal data structures." }
|
, "Revert to a pure Hurricane database, remove router's additionnal data structures." }
|
||||||
|
@ -342,6 +350,14 @@ extern "C" {
|
||||||
DBoLinkCreateMethod(KatanaEngine)
|
DBoLinkCreateMethod(KatanaEngine)
|
||||||
|
|
||||||
|
|
||||||
|
extern void PyKatanaEngine_postModuleInit ()
|
||||||
|
{
|
||||||
|
PyKatanaFlags_postModuleInit();
|
||||||
|
|
||||||
|
PyDict_SetItemString( PyTypeKatanaEngine.tp_dict, "Flags", (PyObject*)&PyTypeKatanaFlags );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // Shared Library Code Part.
|
#endif // Shared Library Code Part.
|
||||||
|
|
||||||
} // extern "C".
|
} // extern "C".
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
// -*- C++ -*-
|
||||||
|
//
|
||||||
|
// This file is part of the Coriolis Software.
|
||||||
|
// Copyright (c) UPMC 2017-2017, All Rights Reserved
|
||||||
|
//
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
// | C O R I O L I S |
|
||||||
|
// | K i t e - D e t a i l e d R o u t e r |
|
||||||
|
// | |
|
||||||
|
// | Author : Jean-Paul CHAPUT |
|
||||||
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
|
// | =============================================================== |
|
||||||
|
// | C++ Module : "./PyKatanaFlags.cpp" |
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
#include "katana/PyKatanaFlags.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace Katana {
|
||||||
|
|
||||||
|
using std::cerr;
|
||||||
|
using std::endl;
|
||||||
|
using std::hex;
|
||||||
|
using std::ostringstream;
|
||||||
|
using Hurricane::tab;
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
|
#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Flags,flags,function)
|
||||||
|
|
||||||
|
|
||||||
|
// +=================================================================+
|
||||||
|
// | "PyKatanaFlags" Python Module Code Part |
|
||||||
|
// +=================================================================+
|
||||||
|
|
||||||
|
#if defined(__PYTHON_MODULE__)
|
||||||
|
|
||||||
|
|
||||||
|
// Standart Accessors (Attributes).
|
||||||
|
|
||||||
|
|
||||||
|
// Standart Destroy (Attribute).
|
||||||
|
// DBoDestroyAttribute(PyKatanaFlags_destroy,PyKatanaFlags)
|
||||||
|
|
||||||
|
|
||||||
|
PyMethodDef PyKatanaFlags_Methods[] =
|
||||||
|
{ {NULL, NULL, 0, NULL} /* sentinel */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
PythonOnlyDeleteMethod(KatanaFlags)
|
||||||
|
DirectReprMethod(PyKatanaFlags_Repr, PyKatanaFlags, Katana::Flags)
|
||||||
|
DirectStrMethod (PyKatanaFlags_Str, PyKatanaFlags, Katana::Flags)
|
||||||
|
DirectCmpMethod (PyKatanaFlags_Cmp, IsPyKatanaFlags, PyKatanaFlags)
|
||||||
|
DirectHashMethod(PyKatanaFlags_Hash, PyKatanaFlags)
|
||||||
|
|
||||||
|
extern void PyKatanaFlags_LinkPyType() {
|
||||||
|
cdebug_log(20,0) << "PyKatanaFlags_LinkType()" << endl;
|
||||||
|
PyTypeKatanaFlags.tp_dealloc = (destructor) PyKatanaFlags_DeAlloc;
|
||||||
|
PyTypeKatanaFlags.tp_compare = (cmpfunc) PyKatanaFlags_Cmp;
|
||||||
|
PyTypeKatanaFlags.tp_repr = (reprfunc) PyKatanaFlags_Repr;
|
||||||
|
PyTypeKatanaFlags.tp_str = (reprfunc) PyKatanaFlags_Str;
|
||||||
|
PyTypeKatanaFlags.tp_hash = (hashfunc) PyKatanaFlags_Hash;
|
||||||
|
PyTypeKatanaFlags.tp_methods = PyKatanaFlags_Methods;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else // End of Python Module Code Part.
|
||||||
|
|
||||||
|
|
||||||
|
// +=================================================================+
|
||||||
|
// | "PyKatanaFlags" Shared Library Code Part |
|
||||||
|
// +=================================================================+
|
||||||
|
|
||||||
|
// Link/Creation Method.
|
||||||
|
PyTypeObjectDefinitions(KatanaFlags)
|
||||||
|
|
||||||
|
|
||||||
|
extern void PyKatanaFlags_postModuleInit ()
|
||||||
|
{
|
||||||
|
PyObject* constant;
|
||||||
|
|
||||||
|
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::NoFlags ,"NoFlags" );
|
||||||
|
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::SlowMotion ,"SlowMotion" );
|
||||||
|
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::PreRoutedStage,"PreRoutedStage");
|
||||||
|
LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::SymmetricStage,"SymmetricStage");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif // Shared Library Code Part.
|
||||||
|
|
||||||
|
} // extern "C".
|
||||||
|
|
||||||
|
} // Katana namespace.
|
||||||
|
|
|
@ -82,9 +82,11 @@ namespace Katana {
|
||||||
// Process all M2 (terminal access) before any others.
|
// Process all M2 (terminal access) before any others.
|
||||||
//if ((lhs._layerDepth == 1) and (rhs._layerDepth != 1)) return false;
|
//if ((lhs._layerDepth == 1) and (rhs._layerDepth != 1)) return false;
|
||||||
//if ((lhs._layerDepth != 1) and (rhs._layerDepth == 1)) return true;
|
//if ((lhs._layerDepth != 1) and (rhs._layerDepth == 1)) return true;
|
||||||
|
if (lhs._layerDepth > rhs._layerDepth) return true;
|
||||||
|
if (lhs._layerDepth < rhs._layerDepth) return false;
|
||||||
|
|
||||||
if (lhs._priority > rhs._priority) return true;
|
if (lhs._priority > rhs._priority) return false;
|
||||||
if (lhs._priority < rhs._priority) return false;
|
if (lhs._priority < rhs._priority) return true;
|
||||||
|
|
||||||
if (lhs._length > rhs._length) return false;
|
if (lhs._length > rhs._length) return false;
|
||||||
if (lhs._length < rhs._length) return true;
|
if (lhs._length < rhs._length) return true;
|
||||||
|
|
|
@ -41,8 +41,9 @@ extern "C" {
|
||||||
extern PyTypeObject PyTypeKatanaEngine;
|
extern PyTypeObject PyTypeKatanaEngine;
|
||||||
extern PyMethodDef PyKatanaEngine_Methods[];
|
extern PyMethodDef PyKatanaEngine_Methods[];
|
||||||
|
|
||||||
extern PyObject* PyKatanaEngine_Link ( Katana::KatanaEngine* );
|
extern PyObject* PyKatanaEngine_Link ( Katana::KatanaEngine* );
|
||||||
extern void PyKatanaEngine_LinkPyType ();
|
extern void PyKatanaEngine_LinkPyType ();
|
||||||
|
extern void PyKatanaEngine_postModuleInit ();
|
||||||
|
|
||||||
|
|
||||||
#define IsPyKatanaEngine(v) ( (v)->ob_type == &PyTypeKatanaEngine )
|
#define IsPyKatanaEngine(v) ( (v)->ob_type == &PyTypeKatanaEngine )
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
// -*- C++ -*-
|
||||||
|
//
|
||||||
|
// This file is part of the Coriolis Software.
|
||||||
|
// Copyright (c) UPMC 2017-2017, All Rights Reserved
|
||||||
|
//
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
// | C O R I O L I S |
|
||||||
|
// | K i t e - D e t a i l e d R o u t e r |
|
||||||
|
// | |
|
||||||
|
// | Author : Jean-Paul CHAPUT |
|
||||||
|
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||||
|
// | =============================================================== |
|
||||||
|
// | C++ Header : "./katana/PyKatanaFlags.h" |
|
||||||
|
// +-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef PY_KATANA_FLAGS_H
|
||||||
|
#define PY_KATANA_FLAGS_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "hurricane/isobar/PyHurricane.h"
|
||||||
|
#include "katana/Constants.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace Katana {
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
// Python Object : "PyTransformation".
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
PyObject_HEAD
|
||||||
|
Katana::Flags* _object;
|
||||||
|
} PyKatanaFlags;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
// Functions & Types exported to "PyHurricane.ccp".
|
||||||
|
|
||||||
|
extern PyTypeObject PyTypeKatanaFlags;
|
||||||
|
extern PyMethodDef PyKatanaFlags_Methods[];
|
||||||
|
|
||||||
|
extern PyObject* PyKatanaFlags_Link ( Katana::Flags* );
|
||||||
|
extern void PyKatanaFlags_LinkPyType ();
|
||||||
|
extern void PyKatanaFlags_postModuleInit ();
|
||||||
|
|
||||||
|
|
||||||
|
# define IsPyKatanaFlags(v) ( (v)->ob_type == &PyTypeKatanaFlags )
|
||||||
|
# define PYKATANAFLAGS(v) ( (PyKatanaFlags*)(v) )
|
||||||
|
# define PYKATANAFLAGS_O(v) ( PYKATANAFLAGS(v)->_object )
|
||||||
|
|
||||||
|
|
||||||
|
} // extern "C".
|
||||||
|
|
||||||
|
} // Katana namespace.
|
||||||
|
|
||||||
|
#endif // PY_KATANA_FLAGS_H
|
|
@ -18,7 +18,7 @@
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(LEFDEF REQUIRED)
|
find_package(LEFDEF REQUIRED)
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
setup_boost(program_options filesystem regex python)
|
setup_boost(program_options filesystem regex python)
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
set_lib_link_mode()
|
set_lib_link_mode()
|
||||||
setup_boost()
|
setup_boost()
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
setup_boost(program_options filesystem python regex)
|
setup_boost(program_options filesystem python regex)
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
set_lib_link_mode()
|
set_lib_link_mode()
|
||||||
setup_sysconfdir("${CMAKE_INSTALL_PREFIX}")
|
setup_sysconfdir("${CMAKE_INSTALL_PREFIX}")
|
||||||
|
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
find_package(Libbfd)
|
find_package(Libbfd)
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(LEFDEF REQUIRED)
|
find_package(LEFDEF REQUIRED)
|
||||||
find_package(COLOQUINTE)
|
find_package(COLOQUINTE)
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
find_package(LibXml2 REQUIRED)
|
find_package(LibXml2 REQUIRED)
|
||||||
find_package(PythonSitePackages REQUIRED)
|
find_package(PythonSitePackages REQUIRED)
|
||||||
find_package(PythonLibs REQUIRED)
|
find_package(PythonLibs 2.7 REQUIRED)
|
||||||
find_package(BISON REQUIRED)
|
find_package(BISON REQUIRED)
|
||||||
find_package(FLEX REQUIRED)
|
find_package(FLEX REQUIRED)
|
||||||
find_package(Doxygen)
|
find_package(Doxygen)
|
||||||
|
|
|
@ -13,11 +13,7 @@
|
||||||
static double floatToken;
|
static double floatToken;
|
||||||
static std::string nameToken;
|
static std::string nameToken;
|
||||||
|
|
||||||
#ifndef FLEX_BETA
|
|
||||||
int Liberty_lineno = 1;
|
|
||||||
#else
|
|
||||||
extern int Liberty_lineno;
|
extern int Liberty_lineno;
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue