* All Tools:

- A complete sweep of cleanup to suppress allmost all compiler warnings.

  * ./nimbus:
    - New: Added Python support, for configuration & Unicorn.
This commit is contained in:
Jean-Paul Chaput 2012-11-16 13:00:15 +00:00
parent da88363881
commit 596e5512a6
3 changed files with 92 additions and 69 deletions

View File

@ -13,6 +13,8 @@
setup_boost(program_options filesystem python regex) setup_boost(program_options filesystem python regex)
find_package(Qt4 REQUIRED) find_package(Qt4 REQUIRED)
find_package(PythonLibs REQUIRED)
find_package(PythonSitePackages REQUIRED)
find_package(VLSISAPD REQUIRED) find_package(VLSISAPD REQUIRED)
find_package(HURRICANE REQUIRED) find_package(HURRICANE REQUIRED)
find_package(CORIOLIS REQUIRED) find_package(CORIOLIS REQUIRED)

View File

@ -6,53 +6,71 @@
${CORIOLIS_INCLUDE_DIR} ${CORIOLIS_INCLUDE_DIR}
${CONFIGURATION_INCLUDE_DIR} ${CONFIGURATION_INCLUDE_DIR}
${Boost_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}
${PYTHON_INCLUDE_PATH}
) )
set ( includes nimbus/Configuration.h set ( includes nimbus/Configuration.h
nimbus/SplitterContact.h nimbus/SplitterContacts.h nimbus/SplitterContact.h nimbus/SplitterContacts.h
nimbus/Splitter.h nimbus/Splitters.h nimbus/Splitter.h nimbus/Splitters.h
nimbus/Fence.h nimbus/Fences.h nimbus/Fence.h nimbus/Fences.h
nimbus/HFence.h nimbus/HFence.h
nimbus/VFence.h nimbus/VFence.h
nimbus/FrontLine.h nimbus/FrontLine.h
nimbus/FenceProperty.h nimbus/FenceProperty.h
nimbus/StepProperty.h nimbus/StepProperty.h
nimbus/GCell.h nimbus/GCells.h nimbus/GCell.h nimbus/GCells.h
nimbus/Grid.h nimbus/Grid.h
nimbus/NimbusEngine.h nimbus/NimbusEngine.h
nimbus/RoutTools.h nimbus/RoutTools.h
) )
set ( cpps Configuration.cpp set ( pyIncludes nimbus/PyNimbusEngine.h
SplitterContact.cpp )
Splitter.cpp set ( cpps Configuration.cpp
Fence.cpp SplitterContact.cpp
FenceProperty.cpp Splitter.cpp
HFence.cpp Fence.cpp
VFence.cpp FenceProperty.cpp
FrontLine.cpp HFence.cpp
GCell.cpp VFence.cpp
Grid.cpp FrontLine.cpp
StepProperty.cpp GCell.cpp
NimbusEngine.cpp Grid.cpp
RoutTools.cpp StepProperty.cpp
NimbusEngine.cpp
RoutTools.cpp
)
set ( pyCpps PyNimbus.cpp
PyNimbusEngine.cpp
) )
add_library ( nimbus ${cpps} ) add_library ( nimbus ${cpps} ${pyCpps} )
set_target_properties ( nimbus PROPERTIES VERSION 1.0 SOVERSION 1 ) set_target_properties ( nimbus PROPERTIES VERSION 1.0 SOVERSION 1 )
target_link_libraries ( nimbus ${CORIOLIS_LIBRARIES} target_link_libraries ( nimbus ${CORIOLIS_LIBRARIES}
${HURRICANE_PYTHON_LIBRARIES} ${HURRICANE_PYTHON_LIBRARIES}
${HURRICANE_GRAPHICAL_LIBRARIES} ${HURRICANE_GRAPHICAL_LIBRARIES}
${HURRICANE_LIBRARIES} ${HURRICANE_LIBRARIES}
${CONFIGURATION_LIBRARY} ${CONFIGURATION_LIBRARY}
${CIF_LIBRARY} ${CIF_LIBRARY}
${AGDS_LIBRARY} ${AGDS_LIBRARY}
${LEFDEF_LIBRARIES} ${LEFDEF_LIBRARIES}
${OA_LIBRARIES} ${OA_LIBRARIES}
${QT_LIBRARIES} ${QT_LIBRARIES}
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${LIBXML2_LIBRARIES} ${LIBXML2_LIBRARIES}
${PYTHON_LIBRARIES} -lutil ${PYTHON_LIBRARIES} -lutil
) )
install ( TARGETS nimbus DESTINATION lib${LIB_SUFFIX} )
install ( FILES ${includes} DESTINATION include/coriolis2/nimbus ) add_library ( pyNimbus MODULE ${pyCpps} )
set_target_properties ( pyNimbus PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1"
PREFIX ""
OUTPUT_NAME "Nimbus"
)
target_link_libraries ( pyNimbus nimbus
${CORIOLIS_PYTHON_LIBRARIES}
)
install ( TARGETS nimbus DESTINATION lib${LIB_SUFFIX} )
install ( TARGETS pyNimbus DESTINATION ${PYTHON_SITE_PACKAGES} )
install ( FILES ${includes}
${pyIncludes} DESTINATION include/coriolis2/nimbus )

View File

@ -57,27 +57,29 @@ class NimbusEngine : public ToolEngine {
// Constructors // Constructors
// ************ // ************
private: NimbusEngine (Cell* cell, const Box& workzone); private:
NimbusEngine (Cell* cell, const Box& workzone);
public: static void _preCreate(Cell*); public:
public: static NimbusEngine* create (Cell* cell, const Box& workZone=Box()); static NimbusEngine* create (Cell* cell, const Box& workZone=Box());
static void _preCreate (Cell*);
// Accessors // Accessors
// ********* // *********
public: public:
virtual const Name& getName () const; virtual const Name& getName () const;
static const Name& staticGetName (); static const Name& staticGetName ();
static NimbusEngine* get ( Cell* ); static NimbusEngine* get ( Cell* );
inline Configuration* getConfiguration (); inline Configuration* getConfiguration ();
inline bool doPinsPlacement () const; inline void printConfiguration () const;
inline double getAspectRatio () const; inline bool doPinsPlacement () const;
inline double getMargin () const; inline double getAspectRatio () const;
inline const Box& getWorkZone () const; inline double getMargin () const;
inline DbU::Unit getPitch () const; inline const Box& getWorkZone () const;
inline DbU::Unit getSliceHeight () const; inline DbU::Unit getPitch () const;
inline DbU::Unit getSliceStep () const; inline DbU::Unit getSliceHeight () const;
inline DbU::Unit getSliceStep () const;
inline const std::vector<RoutingLayerGauge*>& inline const std::vector<RoutingLayerGauge*>&
getLayerGauges () const; getLayerGauges () const;
public: Grid* getGrid() { return _grid; }; public: Grid* getGrid() { return _grid; };
public: unsigned getDepth() { return _depth; }; public: unsigned getDepth() { return _depth; };
@ -164,16 +166,17 @@ class NimbusEngine : public ToolEngine {
}; };
inline Configuration* NimbusEngine::getConfiguration () { return _configuration; } inline Configuration* NimbusEngine::getConfiguration () { return _configuration; }
inline bool NimbusEngine::doPinsPlacement () const { return _configuration->doPinsPlacement(); } inline void NimbusEngine::printConfiguration () const { _configuration->print(getCell()); }
inline double NimbusEngine::getAspectRatio () const { return _configuration->getAspectRatio(); } inline bool NimbusEngine::doPinsPlacement () const { return _configuration->doPinsPlacement(); }
inline double NimbusEngine::getMargin () const { return _configuration->getMargin(); } inline double NimbusEngine::getAspectRatio () const { return _configuration->getAspectRatio(); }
inline const Box& NimbusEngine::getWorkZone () const { return _configuration->getWorkZone(); } inline double NimbusEngine::getMargin () const { return _configuration->getMargin(); }
inline DbU::Unit NimbusEngine::getPitch () const { return _configuration->getPitch(); } inline const Box& NimbusEngine::getWorkZone () const { return _configuration->getWorkZone(); }
inline DbU::Unit NimbusEngine::getSliceHeight () const { return _configuration->getSliceHeight(); } inline DbU::Unit NimbusEngine::getPitch () const { return _configuration->getPitch(); }
inline DbU::Unit NimbusEngine::getSliceStep () const { return _configuration->getSliceStep(); } inline DbU::Unit NimbusEngine::getSliceHeight () const { return _configuration->getSliceHeight(); }
inline const std::vector<RoutingLayerGauge*>& inline DbU::Unit NimbusEngine::getSliceStep () const { return _configuration->getSliceStep(); }
NimbusEngine::getLayerGauges () const { return _configuration->getLayerGauges(); } inline const std::vector<RoutingLayerGauge*>&
NimbusEngine::getLayerGauges () const { return _configuration->getLayerGauges(); }
} // namespace Nimbus } // namespace Nimbus