From 1e7346619940f8a38cd294ea0f45cc1e121bd574 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sun, 22 Mar 2015 19:12:45 +0100 Subject: [PATCH] Added new CMake macro add_python_module() and some cleanup. --- bootstrap/cmake_modules/FindBootstrap.cmake | 50 +++ crlcore/src/pyCRL/CMakeLists.txt | 138 ++++----- etesian/src/CMakeLists.txt | 130 ++++---- hurricane/src/isobar/CMakeLists.txt | 292 +++++++++--------- hurricane/src/viewer/CMakeLists.txt | 265 ++++++++-------- hurricane/src/viewer/Script.cpp | 4 + .../src/viewer/hurricane/viewer/Script.h | 11 +- katabatic/src/CMakeLists.txt | 167 +++++----- kite/src/CMakeLists.txt | 218 +++++++------ knik/src/CMakeLists.txt | 2 +- unicorn/CMakeLists.txt | 1 + unicorn/cmake_modules/FindUNICORN.cmake | 2 +- unicorn/python/CMakeLists.txt | 4 + unicorn/{src/init => python}/unicornInit.py | 0 unicorn/src/CMakeLists.txt | 180 +++++------ 15 files changed, 753 insertions(+), 711 deletions(-) create mode 100644 unicorn/python/CMakeLists.txt rename unicorn/{src/init => python}/unicornInit.py (100%) diff --git a/bootstrap/cmake_modules/FindBootstrap.cmake b/bootstrap/cmake_modules/FindBootstrap.cmake index 2d5df7ba..9760ed94 100644 --- a/bootstrap/cmake_modules/FindBootstrap.cmake +++ b/bootstrap/cmake_modules/FindBootstrap.cmake @@ -316,3 +316,53 @@ set(${project}_FOUND FALSE) endif(${project}_INCLUDE_DIR AND ${project}_LIBRARY) endmacro(set_found project) + + +# +# Build a Python extention module. +# Usage: +# * clibSpec: The C/C++ shared part of the Python module. +# A four three list CLIB_NAME;version;soversion; +# - CLIB_NAME: the name of the C/C++ shared library +# - version: the full version number (ex: 1.0). +# - soversion: the shared version major (ex: 1). +# If the C library must not be generated because it is +# already included in another one, set to IGNORE. +# * pymodule: The name of the Python module (for "import PYMODULE"). +# * deplibs: The list of dependencies. +# + macro( add_python_module pyCpps pyIncludes argClibSpec pymodule deplibs inc_install_dir ) + set( pyDeplibs ${deplibs} ) + # Force the argument to be parsed as a list. + set( clibSpec ${argClibSpec} ) + list( GET clibSpec 0 clib ) + + message( STATUS ${clib} ) + if( NOT (${clib} STREQUAL "Do_not_generate_C_library") ) + list( LENGTH clibSpec clibLen ) + if( NOT (clibLen EQUAL 3) ) + message( FATAL_ERROR "python_module(): clibSpec doesnt't have exactly 3 elements (${clibSpec})." ) + endif() + list( GET clibSpec 1 version ) + list( GET clibSpec 2 soversion ) + set( pyDeplibs ${clib} ${deplibs} ) + + add_library( ${clib} ${pyCpps} ) + set_target_properties( ${clib} PROPERTIES VERSION ${version} SOVERSION ${soversion} ) + target_link_libraries( ${clib} ${deplibs} ) + install( TARGETS ${clib} DESTINATION lib${LIB_SUFFIX} ) + endif() + + set( pytarget "${pymodule}_target" ) + + add_library( ${pytarget} MODULE ${pyCpps} ) + set_target_properties( ${pytarget} PROPERTIES + COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" + PREFIX "" + OUTPUT_NAME ${pymodule} + ) + target_link_libraries( ${pytarget} ${pyDeplibs} ) + + install( TARGETS ${pytarget} DESTINATION ${PYTHON_SITE_PACKAGES} ) + install( FILES ${pyIncludes} DESTINATION ${inc_install_dir} ) + endmacro( add_python_module ) diff --git a/crlcore/src/pyCRL/CMakeLists.txt b/crlcore/src/pyCRL/CMakeLists.txt index 42de6500..3596a2be 100644 --- a/crlcore/src/pyCRL/CMakeLists.txt +++ b/crlcore/src/pyCRL/CMakeLists.txt @@ -1,76 +1,72 @@ # -*- explicit-buffer-name: "CMakeLists.txt" -*- - 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} - ${Boost_INCLUDE_DIR} - ) + 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} + ${Boost_INCLUDE_DIR} + ) - add_definitions ( -DCORIOLIS_TOP="${CORIOLIS_TOP}" - -DSYS_CONF_DIR="${SYS_CONF_DIR}" - -DPYTHON_SITE_PACKAGES="${PYTHON_SITE_PACKAGES}" - ) + add_definitions( -DCORIOLIS_TOP="${CORIOLIS_TOP}" + -DSYS_CONF_DIR="${SYS_CONF_DIR}" + -DPYTHON_SITE_PACKAGES="${PYTHON_SITE_PACKAGES}" + ) - set ( sources PyCRL.cpp - PyBanner.cpp - PyCatalog.cpp - PyCatalogState.cpp - PyEnvironment.cpp - PyCellGauge.cpp - PyRoutingGauge.cpp - PyRoutingLayerGauge.cpp - PyAllianceFramework.cpp - PyToolBox.cpp - PyToolEngine.cpp - PyToolEngineCollection.cpp - PyGraphicToolEngine.cpp - PyAcmSigda.cpp - PyIspd05.cpp - ) - set ( includes crlcore/PyBanner.h - crlcore/PyCatalog.h - crlcore/PyCatalogState.h - crlcore/PyEnvironment.h - crlcore/PyCellGauge.h - crlcore/PyRoutingGauge.h - crlcore/PyRoutingLayerGauge.h - crlcore/PyAllianceFramework.h - crlcore/PyToolBox.h - crlcore/PyToolEngine.h - crlcore/PyToolEngineCollection.h - crlcore/PyGraphicToolEngine.h - crlcore/PyAcmSigda.h - crlcore/PyIspd05.h - ) + set( pyCpps PyCRL.cpp + PyBanner.cpp + PyCatalog.cpp + PyCatalogState.cpp + PyEnvironment.cpp + PyCellGauge.cpp + PyRoutingGauge.cpp + PyRoutingLayerGauge.cpp + PyAllianceFramework.cpp + PyToolBox.cpp + PyToolEngine.cpp + PyToolEngineCollection.cpp + PyGraphicToolEngine.cpp + PyAcmSigda.cpp + PyIspd05.cpp + ) + set( pyIncludes crlcore/PyBanner.h + crlcore/PyCatalog.h + crlcore/PyCatalogState.h + crlcore/PyEnvironment.h + crlcore/PyCellGauge.h + crlcore/PyRoutingGauge.h + crlcore/PyRoutingLayerGauge.h + crlcore/PyAllianceFramework.h + crlcore/PyToolBox.h + crlcore/PyToolEngine.h + crlcore/PyToolEngineCollection.h + crlcore/PyGraphicToolEngine.h + crlcore/PyAcmSigda.h + crlcore/PyIspd05.h + ) + set( depLibs crlcore + ${HURRICANE_PYTHON_LIBRARIES} + ${PYTHON_LIBRARIES} + -lutil + ) - - add_library ( pycrlcore ${sources} ) - set_target_properties ( pycrlcore PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( pycrlcore crlcore - ${HURRICANE_PYTHON_LIBRARIES} - ${PYTHON_LIBRARIES} -lutil - ) - add_library ( CRL MODULE ${sources} ) - target_link_libraries ( CRL pycrlcore ) - 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} ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "pycrlcore;1.0;1" + CRL + "${depLibs}" + include/coriolis2/crlcore + ) diff --git a/etesian/src/CMakeLists.txt b/etesian/src/CMakeLists.txt index 703fde79..67f6df94 100644 --- a/etesian/src/CMakeLists.txt +++ b/etesian/src/CMakeLists.txt @@ -1,74 +1,68 @@ # -*- explicit-buffer-name: "CMakeLists.txt" -*- -# include ( ${QT_USE_FILE} ) +# include( ${QT_USE_FILE} ) + include_directories( ${ETESIAN_SOURCE_DIR}/src + ${COLOQUINTE_INCLUDE_DIR} + ${CORIOLIS_INCLUDE_DIR} + ${HURRICANE_INCLUDE_DIR} + ${CONFIGURATION_INCLUDE_DIR} + ${QtX_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${PYTHON_INCLUDE_PATH} + ) + set( includes etesian/Configuration.h + etesian/FeedCells.h + etesian/EtesianEngine.h + etesian/GraphicEtesianEngine.h + ) + set( pyIncludes etesian/PyEtesianEngine.h + etesian/PyGraphicEtesianEngine.h + ) + set( mocIncludes etesian/GraphicEtesianEngine.h ) + set( cpps Configuration.cpp + AddFeeds.cpp + FeedCells.cpp + EtesianEngine.cpp + GraphicEtesianEngine.cpp + ) + set( pyCpps PyEtesian.cpp + PyEtesianEngine.cpp + PyGraphicEtesianEngine.cpp + ) + qtX_wrap_cpp( mocCpps ${mocIncludes} ) + set( depLibs ${CORIOLIS_PYTHON_LIBRARIES} + ${CORIOLIS_LIBRARIES} + ${HURRICANE_PYTHON_LIBRARIES} + ${HURRICANE_GRAPHICAL_LIBRARIES} + ${HURRICANE_LIBRARIES} + ${CONFIGURATION_LIBRARY} + ${BOOKSHELF_LIBRARY} + ${CIF_LIBRARY} + ${AGDS_LIBRARY} + ${UTILITIES_LIBRARY} + ${LEFDEF_LIBRARIES} + ${COLOQUINTE_LIBRARIES} + ${OA_LIBRARIES} + ${QtX_LIBRARIES} + ${Boost_LIBRARIES} + ${LIBXML2_LIBRARIES} + ${PYTHON_LIBRARIES} -lutil + ${LIBEXECINFO_LIBRARIES} + ) - include_directories ( ${ETESIAN_SOURCE_DIR}/src - ${COLOQUINTE_INCLUDE_DIR} - ${CORIOLIS_INCLUDE_DIR} - ${HURRICANE_INCLUDE_DIR} - ${CONFIGURATION_INCLUDE_DIR} - ${QtX_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} - ${PYTHON_INCLUDE_PATH} - ) - set ( includes etesian/Configuration.h - etesian/FeedCells.h - etesian/EtesianEngine.h - etesian/GraphicEtesianEngine.h - ) - set ( pyIncludes etesian/PyEtesianEngine.h - etesian/PyGraphicEtesianEngine.h - ) - set ( mocIncludes etesian/GraphicEtesianEngine.h ) - set ( cpps Configuration.cpp - AddFeeds.cpp - FeedCells.cpp - EtesianEngine.cpp - GraphicEtesianEngine.cpp - ) - set ( pyCpps PyEtesian.cpp - PyEtesianEngine.cpp - PyGraphicEtesianEngine.cpp - ) - qtX_wrap_cpp ( mocCpps ${mocIncludes} ) + add_library( etesian ${cpps} ${mocCpps} ${pyCpps} ) + set_target_properties( etesian PROPERTIES VERSION 1.0 SOVERSION 1 ) + target_link_libraries( etesian ${depLibs} ) - add_library ( etesian ${cpps} ${mocCpps} ${pyCpps} ) - set_target_properties ( etesian PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( etesian ${CORIOLIS_LIBRARIES} - ${HURRICANE_PYTHON_LIBRARIES} - ${HURRICANE_GRAPHICAL_LIBRARIES} - ${HURRICANE_LIBRARIES} - ${CONFIGURATION_LIBRARY} - ${BOOKSHELF_LIBRARY} - ${CIF_LIBRARY} - ${AGDS_LIBRARY} - ${UTILITIES_LIBRARY} - ${LEFDEF_LIBRARIES} - ${COLOQUINTE_LIBRARIES} - ${OA_LIBRARIES} - ${QtX_LIBRARIES} - ${Boost_LIBRARIES} - ${LIBXML2_LIBRARIES} - ${PYTHON_LIBRARIES} -lutil - ${LIBEXECINFO_LIBRARIES} - ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "Do_not_generate_C_library" + Etesian + "etesian;${depLibs}" + include/coriolis2/etesian + ) - add_library ( pyEtesian MODULE ${pyCpps} ) - set_target_properties ( pyEtesian PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" - PREFIX "" - OUTPUT_NAME "Etesian" - ) - target_link_libraries ( pyEtesian etesian - ${CORIOLIS_PYTHON_LIBRARIES} - -# add_executable ( etesian.bin ${etesiancpps} ) -#target_link_libraries ( etesian.bin etesian ) - ) - install ( TARGETS etesian DESTINATION lib${LIB_SUFFIX} ) -# install ( TARGETS etesian.bin DESTINATION bin ) - install ( TARGETS pyEtesian DESTINATION ${PYTHON_SITE_PACKAGES} ) - - install ( FILES ${includes} - ${mocIncludes} - ${pyIncludes} DESTINATION include/coriolis2/etesian ) + install( TARGETS etesian DESTINATION lib${LIB_SUFFIX} ) + install( FILES ${includes} + ${mocIncludes} DESTINATION include/coriolis2/etesian ) diff --git a/hurricane/src/isobar/CMakeLists.txt b/hurricane/src/isobar/CMakeLists.txt index 26b3a673..66ea5835 100644 --- a/hurricane/src/isobar/CMakeLists.txt +++ b/hurricane/src/isobar/CMakeLists.txt @@ -1,151 +1,149 @@ # -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt" -*- -# include ( ${QT_USE_FILE} ) +# include( ${QT_USE_FILE} ) + include_directories( ${HURRICANE_SOURCE_DIR}/src/hurricane + ${HURRICANE_SOURCE_DIR}/src/viewer + ${HURRICANE_SOURCE_DIR}/src/isobar + ${PYTHON_INCLUDE_PATH} + ) + set( pyCpps ProxyProperty.cpp + PyBreakpoint.cpp + PyInterval.cpp + PyBox.cpp + PyCell.cpp + PyCellCollection.cpp + PyComponent.cpp + PyComponentCollection.cpp + PyContact.cpp + PyDataBase.cpp + PyEntity.cpp + PyHorizontal.cpp + PyHurricane.cpp + PyHyperNet.cpp + PyPlacementStatus.cpp + PyInstance.cpp + PyInstanceCollection.cpp + PyMaterial.cpp + PyLayer.cpp + PyLayerMask.cpp + PyBasicLayer.cpp + PyRegularLayer.cpp + PyContactLayer.cpp + PyDiffusionLayer.cpp + PyTransistorLayer.cpp + PyViaLayer.cpp + PyLayerCollection.cpp + PyBasicLayerCollection.cpp + PyRegularLayerCollection.cpp + PyViaLayerCollection.cpp + PyLibrary.cpp + PyNet.cpp + PyNetType.cpp + PyNetDirection.cpp + PyNetCollection.cpp + PyNetExternalComponents.cpp + PyOccurrence.cpp + PyOccurrenceCollection.cpp + PyHook.cpp + PyHookCollection.cpp + PyPad.cpp + PyPath.cpp + PyPin.cpp + PyPinPlacementStatus.cpp + PyPinDirection.cpp + PyPinCollection.cpp + PyPlug.cpp + PyPlugCollection.cpp + PyPoint.cpp + PyReference.cpp + PyReferenceCollection.cpp + PyRoutingPad.cpp + PySegment.cpp + PySegmentCollection.cpp + PyTechnology.cpp + PyTransformation.cpp + PyOrientation.cpp + PyDbU.cpp + PyUpdateSession.cpp + PyDebugSession.cpp + PyVertical.cpp + PyQueryMask.cpp + PyQuery.cpp + ) + set( pyIncludes hurricane/isobar/ProxyProperty.h + hurricane/isobar/PyBreakpoint.h + hurricane/isobar/PyInterval.h + hurricane/isobar/PyBox.h + hurricane/isobar/PyCell.h + hurricane/isobar/PyCellCollection.h + hurricane/isobar/PyComponent.h + hurricane/isobar/PyComponentCollection.h + hurricane/isobar/PyContact.h + hurricane/isobar/PyDataBase.h + hurricane/isobar/PyEntity.h + hurricane/isobar/PyHorizontal.h + hurricane/isobar/PyHurricane.h + hurricane/isobar/PyHyperNet.h + hurricane/isobar/PyPlacementStatus.h + hurricane/isobar/PyInstance.h + hurricane/isobar/PyInstanceCollection.h + hurricane/isobar/PyMaterial.h + hurricane/isobar/PyLayerMask.h + hurricane/isobar/PyLayer.h + hurricane/isobar/PyBasicLayer.h + hurricane/isobar/PyRegularLayer.h + hurricane/isobar/PyContactLayer.h + hurricane/isobar/PyDiffusionLayer.h + hurricane/isobar/PyTransistorLayer.h + hurricane/isobar/PyLayerCollection.h + hurricane/isobar/PyBasicLayerCollection.h + hurricane/isobar/PyRegularLayerCollection.h + hurricane/isobar/PyViaLayerCollection.h + hurricane/isobar/PyViaLayer.h + hurricane/isobar/PyLibrary.h + hurricane/isobar/PyNet.h + hurricane/isobar/PyNetType.h + hurricane/isobar/PyNetDirection.h + hurricane/isobar/PyNetCollection.h + hurricane/isobar/PyNetExternalComponents.h + hurricane/isobar/PyOccurrence.h + hurricane/isobar/PyOccurrenceCollection.h + hurricane/isobar/PyHook.h + hurricane/isobar/PyHookCollection.h + hurricane/isobar/PyPad.h + hurricane/isobar/PyPath.h + hurricane/isobar/PyPin.h + hurricane/isobar/PyPinPlacementStatus.h + hurricane/isobar/PyPinDirection.h + hurricane/isobar/PyPinCollection.h + hurricane/isobar/PyPlug.h + hurricane/isobar/PyPlugCollection.h + hurricane/isobar/PyPoint.h + hurricane/isobar/PyReference.h + hurricane/isobar/PyReferenceCollection.h + hurricane/isobar/PyRoutingPad.h + hurricane/isobar/PySegment.h + hurricane/isobar/PySegmentCollection.h + hurricane/isobar/PyTechnology.h + hurricane/isobar/PyTransformation.h + hurricane/isobar/PyOrientation.h + hurricane/isobar/PyDbU.h + hurricane/isobar/PyUpdateSession.h + hurricane/isobar/PyDebugSession.h + hurricane/isobar/PyVertical.h + hurricane/isobar/PyQueryMask.h + hurricane/isobar/PyQuery.h + ) - include_directories ( ${HURRICANE_SOURCE_DIR}/src/hurricane - ${HURRICANE_SOURCE_DIR}/src/viewer - ${HURRICANE_SOURCE_DIR}/src/isobar - ${PYTHON_INCLUDE_PATH} - ) - set ( sources ProxyProperty.cpp - PyBreakpoint.cpp - PyInterval.cpp - PyBox.cpp - PyCell.cpp - PyCellCollection.cpp - PyComponent.cpp - PyComponentCollection.cpp - PyContact.cpp - PyDataBase.cpp - PyEntity.cpp - PyHorizontal.cpp - PyHurricane.cpp - PyHyperNet.cpp - PyPlacementStatus.cpp - PyInstance.cpp - PyInstanceCollection.cpp - PyMaterial.cpp - PyLayer.cpp - PyLayerMask.cpp - PyBasicLayer.cpp - PyRegularLayer.cpp - PyContactLayer.cpp - PyDiffusionLayer.cpp - PyTransistorLayer.cpp - PyViaLayer.cpp - PyLayerCollection.cpp - PyBasicLayerCollection.cpp - PyRegularLayerCollection.cpp - PyViaLayerCollection.cpp - PyLibrary.cpp - PyNet.cpp - PyNetType.cpp - PyNetDirection.cpp - PyNetCollection.cpp - PyNetExternalComponents.cpp - PyOccurrence.cpp - PyOccurrenceCollection.cpp - PyHook.cpp - PyHookCollection.cpp - PyPad.cpp - PyPath.cpp - PyPin.cpp - PyPinPlacementStatus.cpp - PyPinDirection.cpp - PyPinCollection.cpp - PyPlug.cpp - PyPlugCollection.cpp - PyPoint.cpp - PyReference.cpp - PyReferenceCollection.cpp - PyRoutingPad.cpp - PySegment.cpp - PySegmentCollection.cpp - PyTechnology.cpp - PyTransformation.cpp - PyOrientation.cpp - PyDbU.cpp - PyUpdateSession.cpp - PyDebugSession.cpp - PyVertical.cpp - PyQueryMask.cpp - PyQuery.cpp - ) - set ( includes hurricane/isobar/ProxyProperty.h - hurricane/isobar/PyBreakpoint.h - hurricane/isobar/PyInterval.h - hurricane/isobar/PyBox.h - hurricane/isobar/PyCell.h - hurricane/isobar/PyCellCollection.h - hurricane/isobar/PyComponent.h - hurricane/isobar/PyComponentCollection.h - hurricane/isobar/PyContact.h - hurricane/isobar/PyDataBase.h - hurricane/isobar/PyEntity.h - hurricane/isobar/PyHorizontal.h - hurricane/isobar/PyHurricane.h - hurricane/isobar/PyHyperNet.h - hurricane/isobar/PyPlacementStatus.h - hurricane/isobar/PyInstance.h - hurricane/isobar/PyInstanceCollection.h - hurricane/isobar/PyMaterial.h - hurricane/isobar/PyLayerMask.h - hurricane/isobar/PyLayer.h - hurricane/isobar/PyBasicLayer.h - hurricane/isobar/PyRegularLayer.h - hurricane/isobar/PyContactLayer.h - hurricane/isobar/PyDiffusionLayer.h - hurricane/isobar/PyTransistorLayer.h - hurricane/isobar/PyLayerCollection.h - hurricane/isobar/PyBasicLayerCollection.h - hurricane/isobar/PyRegularLayerCollection.h - hurricane/isobar/PyViaLayerCollection.h - hurricane/isobar/PyViaLayer.h - hurricane/isobar/PyLibrary.h - hurricane/isobar/PyNet.h - hurricane/isobar/PyNetType.h - hurricane/isobar/PyNetDirection.h - hurricane/isobar/PyNetCollection.h - hurricane/isobar/PyNetExternalComponents.h - hurricane/isobar/PyOccurrence.h - hurricane/isobar/PyOccurrenceCollection.h - hurricane/isobar/PyHook.h - hurricane/isobar/PyHookCollection.h - hurricane/isobar/PyPad.h - hurricane/isobar/PyPath.h - hurricane/isobar/PyPin.h - hurricane/isobar/PyPinPlacementStatus.h - hurricane/isobar/PyPinDirection.h - hurricane/isobar/PyPinCollection.h - hurricane/isobar/PyPlug.h - hurricane/isobar/PyPlugCollection.h - hurricane/isobar/PyPoint.h - hurricane/isobar/PyReference.h - hurricane/isobar/PyReferenceCollection.h - hurricane/isobar/PyRoutingPad.h - hurricane/isobar/PySegment.h - hurricane/isobar/PySegmentCollection.h - hurricane/isobar/PyTechnology.h - hurricane/isobar/PyTransformation.h - hurricane/isobar/PyOrientation.h - hurricane/isobar/PyDbU.h - hurricane/isobar/PyUpdateSession.h - hurricane/isobar/PyDebugSession.h - hurricane/isobar/PyVertical.h - hurricane/isobar/PyQueryMask.h - hurricane/isobar/PyQuery.h - ) + set( depLibs hurricane + ${Boost_LIBRARIES} + ${PYTHON_LIBRARIES} + ) - - add_library ( isobar ${sources} ) - set_target_properties ( isobar PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( isobar hurricane ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) - add_library ( Hurricane MODULE ${sources} ) - set_target_properties ( Hurricane PROPERTIES - COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" - PREFIX "" - ) - target_link_libraries ( Hurricane isobar ) - install ( TARGETS isobar DESTINATION lib${LIB_SUFFIX} ) - install ( TARGETS Hurricane DESTINATION ${PYTHON_SITE_PACKAGES} ) - install ( FILES ${includes} DESTINATION include/coriolis2/hurricane/isobar ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "isobar;1.0;1" + Hurricane + "${depLibs}" + include/coriolis2/hurricane/isobar + ) diff --git a/hurricane/src/viewer/CMakeLists.txt b/hurricane/src/viewer/CMakeLists.txt index 90538c54..25aed97f 100644 --- a/hurricane/src/viewer/CMakeLists.txt +++ b/hurricane/src/viewer/CMakeLists.txt @@ -11,141 +11,138 @@ ${PYTHON_INCLUDE_PATH} ) - set ( mocincludes hurricane/viewer/HApplication.h - hurricane/viewer/PaletteItem.h - hurricane/viewer/PaletteNamedItem.h - hurricane/viewer/PaletteLayerItem.h - hurricane/viewer/PaletteExtensionGoItem.h - hurricane/viewer/PaletteWidget.h - hurricane/viewer/GraphicsWidget.h - hurricane/viewer/ExceptionWidget.h - hurricane/viewer/BreakpointWidget.h - hurricane/viewer/GotoWidget.h - hurricane/viewer/DynamicLabel.h - hurricane/viewer/MousePositionWidget.h - hurricane/viewer/SelectCommand.h - hurricane/viewer/CellWidget.h - hurricane/viewer/CellViewer.h - hurricane/viewer/CellPrinter.h - hurricane/viewer/CellImage.h - hurricane/viewer/RecordModel.h - hurricane/viewer/InspectorWidget.h - hurricane/viewer/SelectionPopupModel.h - hurricane/viewer/SelectionPopup.h - hurricane/viewer/SelectionModel.h - hurricane/viewer/SelectionWidget.h - hurricane/viewer/NetlistModel.h - hurricane/viewer/NetlistWidget.h - hurricane/viewer/DisplayFilterWidget.h - hurricane/viewer/ControllerWidget.h - hurricane/viewer/ScriptWidget.h - ) - set ( includes hurricane/viewer/ScreenUtilities.h - hurricane/viewer/DisplayStyle.h - hurricane/viewer/ColorScale.h - hurricane/viewer/Graphics.h - hurricane/viewer/Selector.h - hurricane/viewer/Ruler.h - hurricane/viewer/Command.h - hurricane/viewer/AreaCommand.h - hurricane/viewer/MoveCommand.h - hurricane/viewer/ZoomCommand.h - hurricane/viewer/RulerCommand.h - hurricane/viewer/SelectCommand.h - hurricane/viewer/HierarchyCommand.h - hurricane/viewer/SelectorCriterion.h - hurricane/viewer/CellWidgets.h - ) - set ( pyincludes hurricane/viewer/PyHSVr.h - hurricane/viewer/PyDrawingStyle.h - hurricane/viewer/PyDrawingGroup.h - hurricane/viewer/PyDisplayStyle.h - hurricane/viewer/PyHApplication.h - hurricane/viewer/PyGraphics.h - hurricane/viewer/PyCellViewer.h - ) - set ( cpps HApplication.cpp - ScreenUtilities.cpp - DisplayStyle.cpp - ColorScale.cpp - Graphics.cpp - GraphicsWidget.cpp - ExceptionWidget.cpp - BreakpointWidget.cpp - GotoWidget.cpp - PaletteItem.cpp - PaletteNamedItem.cpp - PaletteLayerItem.cpp - PaletteExtensionGoItem.cpp - PaletteWidget.cpp - DynamicLabel.cpp - MousePositionWidget.cpp - Selector.cpp - Command.cpp - AreaCommand.cpp - MoveCommand.cpp - ZoomCommand.cpp - RulerCommand.cpp - SelectCommand.cpp - HierarchyCommand.cpp - SelectorCriterion.cpp - CellWidget.cpp - CellViewer.cpp - CellPrinter.cpp - CellImage.cpp - RecordModel.cpp - InspectorWidget.cpp - SelectionPopupModel.cpp - SelectionPopup.cpp - SelectionModel.cpp - SelectionWidget.cpp - Ruler.cpp - NetInformations.cpp - NetlistModel.cpp - NetlistWidget.cpp - DisplayFilterWidget.cpp - ControllerWidget.cpp - ScriptWidget.cpp - ) - set ( pycpps PyHSVr.cpp - PyDrawingStyle.cpp - PyDrawingGroup.cpp - PyDisplayStyle.cpp - PyHApplication.cpp - PyGraphics.cpp - PyViewer.cpp - PyCellViewer.cpp - ) -# source2 & include2 for module that are *not* Python wrappers but true -# Hurricane modules. - set ( sources2 Script.cpp ) - set ( includes2 hurricane/viewer/Script.h ) + set( mocIncludes hurricane/viewer/HApplication.h + hurricane/viewer/PaletteItem.h + hurricane/viewer/PaletteNamedItem.h + hurricane/viewer/PaletteLayerItem.h + hurricane/viewer/PaletteExtensionGoItem.h + hurricane/viewer/PaletteWidget.h + hurricane/viewer/GraphicsWidget.h + hurricane/viewer/ExceptionWidget.h + hurricane/viewer/BreakpointWidget.h + hurricane/viewer/GotoWidget.h + hurricane/viewer/DynamicLabel.h + hurricane/viewer/MousePositionWidget.h + hurricane/viewer/SelectCommand.h + hurricane/viewer/CellWidget.h + hurricane/viewer/CellViewer.h + hurricane/viewer/CellPrinter.h + hurricane/viewer/CellImage.h + hurricane/viewer/RecordModel.h + hurricane/viewer/InspectorWidget.h + hurricane/viewer/SelectionPopupModel.h + hurricane/viewer/SelectionPopup.h + hurricane/viewer/SelectionModel.h + hurricane/viewer/SelectionWidget.h + hurricane/viewer/NetlistModel.h + hurricane/viewer/NetlistWidget.h + hurricane/viewer/DisplayFilterWidget.h + hurricane/viewer/ControllerWidget.h + hurricane/viewer/ScriptWidget.h + ) + set( includes hurricane/viewer/ScreenUtilities.h + hurricane/viewer/DisplayStyle.h + hurricane/viewer/ColorScale.h + hurricane/viewer/Graphics.h + hurricane/viewer/Selector.h + hurricane/viewer/Ruler.h + hurricane/viewer/Command.h + hurricane/viewer/AreaCommand.h + hurricane/viewer/MoveCommand.h + hurricane/viewer/ZoomCommand.h + hurricane/viewer/RulerCommand.h + hurricane/viewer/SelectCommand.h + hurricane/viewer/HierarchyCommand.h + hurricane/viewer/SelectorCriterion.h + hurricane/viewer/CellWidgets.h + ) + set( pyIncludes hurricane/viewer/PyHSVr.h + hurricane/viewer/PyDrawingStyle.h + hurricane/viewer/PyDrawingGroup.h + hurricane/viewer/PyDisplayStyle.h + hurricane/viewer/PyHApplication.h + hurricane/viewer/PyGraphics.h + hurricane/viewer/PyCellViewer.h + hurricane/viewer/Script.h + ) + set( cpps HApplication.cpp + ScreenUtilities.cpp + DisplayStyle.cpp + ColorScale.cpp + Graphics.cpp + GraphicsWidget.cpp + ExceptionWidget.cpp + BreakpointWidget.cpp + GotoWidget.cpp + PaletteItem.cpp + PaletteNamedItem.cpp + PaletteLayerItem.cpp + PaletteExtensionGoItem.cpp + PaletteWidget.cpp + DynamicLabel.cpp + MousePositionWidget.cpp + Selector.cpp + Command.cpp + AreaCommand.cpp + MoveCommand.cpp + ZoomCommand.cpp + RulerCommand.cpp + SelectCommand.cpp + HierarchyCommand.cpp + SelectorCriterion.cpp + CellWidget.cpp + CellViewer.cpp + CellPrinter.cpp + CellImage.cpp + RecordModel.cpp + InspectorWidget.cpp + SelectionPopupModel.cpp + SelectionPopup.cpp + SelectionModel.cpp + SelectionWidget.cpp + Ruler.cpp + NetInformations.cpp + NetlistModel.cpp + NetlistWidget.cpp + DisplayFilterWidget.cpp + ControllerWidget.cpp + ScriptWidget.cpp + ) + set( pyCpps PyHSVr.cpp + PyDrawingStyle.cpp + PyDrawingGroup.cpp + PyDisplayStyle.cpp + PyHApplication.cpp + PyGraphics.cpp + PyViewer.cpp + PyCellViewer.cpp + Script.cpp + ) - qtX_wrap_cpp ( MOC_SRCS ${mocincludes} ) - qtX_add_resources ( RCC_SRCS CellViewer.qrc ) + qtX_wrap_cpp( MOC_SRCS ${mocIncludes} ) + qtX_add_resources( RCC_SRCS CellViewer.qrc ) - add_library ( viewer ${cpps} ${MOC_SRCS} ${RCC_SRCS} ${sources2} ${pycpps} ) - set_target_properties ( viewer PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( viewer hurricane - isobar - ${UTILITIES_LIBRARY} - ${CONFIGURATION_LIBRARY} - ${LIBXML2_LIBRARIES} - ${Boost_LIBRARIES} - ${QtX_LIBRARIES} - ) - add_library ( pyViewer MODULE ${pycpps} ) - target_link_libraries ( pyViewer viewer ) - set_target_properties ( pyViewer PROPERTIES - COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" - OUTPUT_NAME "Viewer" - PREFIX "" - ) + set( depLibs hurricane + isobar + ${UTILITIES_LIBRARY} + ${CONFIGURATION_LIBRARY} + ${LIBXML2_LIBRARIES} + ${Boost_LIBRARIES} + ${QtX_LIBRARIES} + ) + add_library( viewer ${cpps} ${MOC_SRCS} ${RCC_SRCS} ${pyCpps} ) + set_target_properties( viewer PROPERTIES VERSION 1.0 SOVERSION 1 ) + target_link_libraries( viewer ${depLibs} ) - install ( FILES ${includes} - ${includes2} - ${mocincludes} - ${pyincludes} DESTINATION include/coriolis2/hurricane/viewer ) - install ( TARGETS viewer DESTINATION lib${LIB_SUFFIX} ) - install ( TARGETS pyViewer DESTINATION ${PYTHON_SITE_PACKAGES} ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "Do_not_generate_C_library" + Viewer + "viewer;${depLibs}" + include/coriolis2/hurricane/viewer + ) + + install( FILES ${includes} + ${mocIncludes} DESTINATION include/coriolis2/hurricane/viewer ) + install( TARGETS viewer DESTINATION lib${LIB_SUFFIX} ) diff --git a/hurricane/src/viewer/Script.cpp b/hurricane/src/viewer/Script.cpp index cf1266e9..47526843 100644 --- a/hurricane/src/viewer/Script.cpp +++ b/hurricane/src/viewer/Script.cpp @@ -14,6 +14,8 @@ // +-----------------------------------------------------------------+ +#if !defined(__PYTHON_MODULE__) + #include #include #include "hurricane/Error.h" @@ -303,3 +305,5 @@ namespace Isobar { } // End of Isobar namespace. + +#endif diff --git a/hurricane/src/viewer/hurricane/viewer/Script.h b/hurricane/src/viewer/hurricane/viewer/Script.h index a217b987..e771a121 100644 --- a/hurricane/src/viewer/hurricane/viewer/Script.h +++ b/hurricane/src/viewer/hurricane/viewer/Script.h @@ -14,8 +14,10 @@ // +-----------------------------------------------------------------+ -# ifndef ISOBAR_SCRIPT_H -# define ISOBAR_SCRIPT_H +#if !defined(__PYTHON_MODULE__) + +#ifndef ISOBAR_SCRIPT_H +#define ISOBAR_SCRIPT_H #include @@ -97,7 +99,8 @@ namespace Isobar { { return _userModule = _importModule(_moduleName,flags); } -} // End of Isobar namespace. +} // Isobar namespace. +#endif // ISOBAR_SCRIPT_H -# endif // ISOBAR_SCRIPT_H +#endif diff --git a/katabatic/src/CMakeLists.txt b/katabatic/src/CMakeLists.txt index 7e619d6e..fc9ac3fa 100644 --- a/katabatic/src/CMakeLists.txt +++ b/katabatic/src/CMakeLists.txt @@ -4,93 +4,90 @@ if ( CHECK_DETERMINISM ) add_definitions ( -DCHECK_DETERMINISM ) endif ( CHECK_DETERMINISM ) -# include ( ${QT_USE_FILE} ) +# include( ${QT_USE_FILE} ) + include_directories( ${KATABATIC_SOURCE_DIR}/src + ${CORIOLIS_INCLUDE_DIR} + ${HURRICANE_INCLUDE_DIR} + ${CONFIGURATION_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ${QtX_INCLUDE_DIR} + ${PYTHON_INCLUDE_PATH} + ) + set( includes katabatic/Constants.h + katabatic/Observer.h + katabatic/Configuration.h + katabatic/ChipTools.h + katabatic/AutoContact.h + katabatic/AutoContactTerminal.h + katabatic/AutoContactTurn.h + katabatic/AutoContactHTee.h + katabatic/AutoContactVTee.h + katabatic/AutoSegment.h katabatic/AutoSegments.h + katabatic/AutoHorizontal.h + katabatic/AutoVertical.h + katabatic/Grid.h katabatic/GridCollections.h + katabatic/GridBox.h + katabatic/GCell.h katabatic/GCells.h + katabatic/GCellGrid.h + katabatic/Session.h + katabatic/KatabaticEngine.h + ) + set( mocIncludes katabatic/GraphicKatabaticEngine.h ) + set( cpps Configuration.cpp + Observer.cpp + ChipTools.cpp + AutoContact.cpp + AutoContactTerminal.cpp + AutoContactTurn.cpp + AutoContactHTee.cpp + AutoContactVTee.cpp + AutoSegment.cpp + AutoSegments.cpp + AutoHorizontal.cpp + AutoVertical.cpp + Grid.cpp + GCell.cpp + GCellGrid.cpp + PowerRails.cpp + Session.cpp + LayerAssign.cpp + LoadGrByNet.cpp + NetConstraints.cpp + NetOptimals.cpp + KatabaticEngine.cpp + ) + set( pyCpps PyKatabatic.cpp ) + qtX_wrap_cpp( mocCpps ${mocIncludes} ) - include_directories ( ${KATABATIC_SOURCE_DIR}/src - ${CORIOLIS_INCLUDE_DIR} - ${HURRICANE_INCLUDE_DIR} - ${CONFIGURATION_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} - ${QtX_INCLUDE_DIR} - ${PYTHON_INCLUDE_PATH} - ) - set ( includes katabatic/Constants.h - katabatic/Observer.h - katabatic/Configuration.h - katabatic/ChipTools.h - katabatic/AutoContact.h - katabatic/AutoContactTerminal.h - katabatic/AutoContactTurn.h - katabatic/AutoContactHTee.h - katabatic/AutoContactVTee.h - katabatic/AutoSegment.h katabatic/AutoSegments.h - katabatic/AutoHorizontal.h - katabatic/AutoVertical.h - katabatic/Grid.h katabatic/GridCollections.h - katabatic/GridBox.h - katabatic/GCell.h katabatic/GCells.h - katabatic/GCellGrid.h - katabatic/Session.h - katabatic/KatabaticEngine.h - #katabatic/GraphicKatabaticEngine.h - ) - set ( mocIncludes katabatic/GraphicKatabaticEngine.h ) - set ( cpps Configuration.cpp - Observer.cpp - ChipTools.cpp - AutoContact.cpp - AutoContactTerminal.cpp - AutoContactTurn.cpp - AutoContactHTee.cpp - AutoContactVTee.cpp - AutoSegment.cpp - AutoSegments.cpp - AutoHorizontal.cpp - AutoVertical.cpp - Grid.cpp - GCell.cpp - GCellGrid.cpp - PowerRails.cpp - Session.cpp - LayerAssign.cpp - LoadGrByNet.cpp - NetConstraints.cpp - NetOptimals.cpp - KatabaticEngine.cpp - #GraphicKatabaticEngine.cpp - ) - set ( pyCpps PyKatabatic.cpp ) - qtX_wrap_cpp ( mocCpps ${mocIncludes} ) + set( depLibs ${KNIK_LIBRARIES} + ${CORIOLIS_LIBRARIES} + ${HURRICANE_PYTHON_LIBRARIES} + ${HURRICANE_GRAPHICAL_LIBRARIES} + ${HURRICANE_LIBRARIES} + ${CONFIGURATION_LIBRARY} + ${CIF_LIBRARY} + ${AGDS_LIBRARY} + ${LEFDEF_LIBRARIES} + ${OA_LIBRARIES} + ${QtX_LIBRARIES} + ${Boost_LIBRARIES} + ${LIBXML2_LIBRARIES} + ${PYTHON_LIBRARIES} -lutil + ) + add_library( katabatic ${cpps} ) + set_target_properties( katabatic PROPERTIES VERSION 1.0 SOVERSION 1 ) + target_link_libraries( katabatic ${depLibs} ) - add_library ( katabatic ${cpps} ) - set_target_properties ( katabatic PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( katabatic ${KNIK_LIBRARIES} - ${CORIOLIS_LIBRARIES} - ${HURRICANE_PYTHON_LIBRARIES} - ${HURRICANE_GRAPHICAL_LIBRARIES} - ${HURRICANE_LIBRARIES} - ${CONFIGURATION_LIBRARY} - ${CIF_LIBRARY} - ${AGDS_LIBRARY} - ${LEFDEF_LIBRARIES} - ${OA_LIBRARIES} - ${QtX_LIBRARIES} - ${Boost_LIBRARIES} - ${LIBXML2_LIBRARIES} - ${PYTHON_LIBRARIES} -lutil - ) - add_library ( pyKatabatic MODULE ${pyCpps} ) - set_target_properties ( pyKatabatic PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" - PREFIX "" - OUTPUT_NAME "Katabatic" - ) - target_link_libraries ( pyKatabatic katabatic - ${CORIOLIS_PYTHON_LIBRARIES} - ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "Do_not_generate_C_library" + Katabatic + "katabatic;${depLibs}" + include/coriolis2/katabatic + ) - install ( TARGETS katabatic DESTINATION lib${LIB_SUFFIX} ) - install ( TARGETS pyKatabatic DESTINATION ${PYTHON_SITE_PACKAGES} ) - install ( FILES ${includes} - ${mocIncludes} DESTINATION include/coriolis2/katabatic ) + install( TARGETS katabatic DESTINATION lib${LIB_SUFFIX} ) + install( FILES ${includes} + ${mocIncludes} DESTINATION include/coriolis2/katabatic ) diff --git a/kite/src/CMakeLists.txt b/kite/src/CMakeLists.txt index de53f375..7b7d1ca1 100644 --- a/kite/src/CMakeLists.txt +++ b/kite/src/CMakeLists.txt @@ -1,119 +1,117 @@ # -*- explicit-buffer-name: "CMakeLists.txt" -*- -# include ( ${QT_USE_FILE} ) +# include( ${QT_USE_FILE} ) + include_directories( ${KITE_SOURCE_DIR}/src + ${CORIOLIS_INCLUDE_DIR} + ${HURRICANE_INCLUDE_DIR} + ${CONFIGURATION_INCLUDE_DIR} + ${WtX_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ${PYTHON_INCLUDE_PATH} + ) + set( includes kite/Constants.h + kite/TrackCost.h + kite/DataNegociate.h + kite/TrackElement.h kite/TrackElements.h + kite/TrackSegment.h + kite/TrackFixedSegment.h + kite/TrackMarker.h + kite/Track.h + kite/Tracks.h + kite/HorizontalTrack.h + kite/VerticalTrack.h + kite/RoutingPlane.h + kite/Session.h + kite/Manipulator.h + kite/SegmentFsm.h + kite/RoutingEvent.h + kite/RoutingEventQueue.h + kite/RoutingEventHistory.h + kite/RoutingEventLoop.h + kite/NegociateWindow.h + kite/Configuration.h + kite/KiteEngine.h + kite/GraphicKiteEngine.h + ) + set( pyIncludes kite/PyKiteEngine.h + kite/PyGraphicKiteEngine.h + ) + set( mocIncludes kite/GraphicKiteEngine.h ) + set( cpps TrackCost.cpp + DataNegociate.cpp + TrackElement.cpp + TrackElements.cpp + TrackSegment.cpp + TrackFixedSegment.cpp + TrackMarker.cpp + Track.cpp + Tracks.cpp + HorizontalTrack.cpp + VerticalTrack.cpp + RoutingPlane.cpp + Session.cpp + Manipulator.cpp + SegmentFsm.cpp + RoutingEvent.cpp + RoutingEventQueue.cpp + RoutingEventHistory.cpp + RoutingEventLoop.cpp + NegociateWindow.cpp + BuildPowerRails.cpp + BuildPreRouteds.cpp + ProtectRoutingPads.cpp + PreProcess.cpp + Configuration.cpp + KiteEngine.cpp + GraphicKiteEngine.cpp + ) + set( pyCpps PyKite.cpp + PyKiteEngine.cpp + PyGraphicKiteEngine.cpp + ) + set( kiteCpps KiteMain.cpp ) + qtX_wrap_cpp( mocCpps ${mocIncludes} ) - include_directories ( ${KITE_SOURCE_DIR}/src - ${CORIOLIS_INCLUDE_DIR} - ${HURRICANE_INCLUDE_DIR} - ${CONFIGURATION_INCLUDE_DIR} - ${WtX_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} - ${PYTHON_INCLUDE_PATH} - ) - set ( includes kite/Constants.h - kite/TrackCost.h - kite/DataNegociate.h - kite/TrackElement.h kite/TrackElements.h - kite/TrackSegment.h - kite/TrackFixedSegment.h - kite/TrackMarker.h - kite/Track.h - kite/Tracks.h - kite/HorizontalTrack.h - kite/VerticalTrack.h - kite/RoutingPlane.h - kite/Session.h - kite/Manipulator.h - kite/SegmentFsm.h - kite/RoutingEvent.h - kite/RoutingEventQueue.h - kite/RoutingEventHistory.h - kite/RoutingEventLoop.h - kite/NegociateWindow.h - kite/Configuration.h - kite/KiteEngine.h - kite/GraphicKiteEngine.h - ) - set ( pyIncludes kite/PyKiteEngine.h - kite/PyGraphicKiteEngine.h - ) - set ( mocIncludes kite/GraphicKiteEngine.h ) - set ( cpps TrackCost.cpp - DataNegociate.cpp - TrackElement.cpp - TrackElements.cpp - TrackSegment.cpp - TrackFixedSegment.cpp - TrackMarker.cpp - Track.cpp - Tracks.cpp - HorizontalTrack.cpp - VerticalTrack.cpp - RoutingPlane.cpp - Session.cpp - Manipulator.cpp - SegmentFsm.cpp - RoutingEvent.cpp - RoutingEventQueue.cpp - RoutingEventHistory.cpp - RoutingEventLoop.cpp - NegociateWindow.cpp - BuildPowerRails.cpp - BuildPreRouteds.cpp - ProtectRoutingPads.cpp - PreProcess.cpp - Configuration.cpp - KiteEngine.cpp - GraphicKiteEngine.cpp - ) - set ( pyCpps PyKite.cpp - PyKiteEngine.cpp - PyGraphicKiteEngine.cpp - ) - set ( kitecpps KiteMain.cpp ) - qtX_wrap_cpp ( mocCpps ${mocIncludes} ) + set( depLibs ${KATABATIC_LIBRARIES} + ${KNIK_LIBRARIES} + ${NIMBUS_LIBRARIES} + ${CORIOLIS_PYTHON_LIBRARIES} + ${CORIOLIS_LIBRARIES} + ${HURRICANE_PYTHON_LIBRARIES} + ${HURRICANE_GRAPHICAL_LIBRARIES} + ${HURRICANE_LIBRARIES} + ${CONFIGURATION_LIBRARY} + ${BOOKSHELF_LIBRARY} + ${CIF_LIBRARY} + ${AGDS_LIBRARY} + ${UTILITIES_LIBRARY} + ${LEFDEF_LIBRARIES} + ${OA_LIBRARIES} + ${QtX_LIBRARIES} + ${Boost_LIBRARIES} + ${LIBXML2_LIBRARIES} + ${PYTHON_LIBRARIES} -lutil + ${LIBEXECINFO_LIBRARIES} + ) + add_library( kite ${cpps} ${mocCpps} ${pyCpps} ) + set_target_properties( kite PROPERTIES VERSION 1.0 SOVERSION 1 ) + target_link_libraries( kite ${depLibs} ) - add_library ( kite ${cpps} ${mocCpps} ${pyCpps} ) - set_target_properties ( kite PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( kite ${KATABATIC_LIBRARIES} - ${KNIK_LIBRARIES} - ${NIMBUS_LIBRARIES} - ${CORIOLIS_LIBRARIES} - ${HURRICANE_PYTHON_LIBRARIES} - ${HURRICANE_GRAPHICAL_LIBRARIES} - ${HURRICANE_LIBRARIES} - ${CONFIGURATION_LIBRARY} - ${BOOKSHELF_LIBRARY} - ${CIF_LIBRARY} - ${AGDS_LIBRARY} - ${UTILITIES_LIBRARY} - ${LEFDEF_LIBRARIES} - ${OA_LIBRARIES} - ${QtX_LIBRARIES} - ${Boost_LIBRARIES} - ${LIBXML2_LIBRARIES} - ${PYTHON_LIBRARIES} -lutil - ${LIBEXECINFO_LIBRARIES} - ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "Do_not_generate_C_library" + Kite + "kite;${depLibs}" + include/coriolis2/kite + ) - add_library ( pyKite MODULE ${pyCpps} ) - set_target_properties ( pyKite PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" - PREFIX "" - OUTPUT_NAME "Kite" - ) +# add_executable( kite.bin ${kiteCpps} ) +#target_link_libraries( kite.bin kite ${depLibs} ) -# add_executable ( kite.bin ${kitecpps} ) -#target_link_libraries ( kite.bin kite ) - target_link_libraries ( pyKite kite - ${CORIOLIS_PYTHON_LIBRARIES} - ) - install ( TARGETS kite DESTINATION lib${LIB_SUFFIX} ) -# install ( TARGETS kite.bin DESTINATION bin ) - install ( TARGETS pyKite DESTINATION ${PYTHON_SITE_PACKAGES} ) - - install ( FILES ${includes} - ${mocIncludes} - ${pyIncludes} DESTINATION include/coriolis2/kite ) + install( TARGETS kite DESTINATION lib${LIB_SUFFIX} ) +# install( TARGETS kite.bin DESTINATION bin ) + install( FILES ${includes} + ${mocIncludes} DESTINATION include/coriolis2/kite ) diff --git a/knik/src/CMakeLists.txt b/knik/src/CMakeLists.txt index d0ac657d..0fa21064 100644 --- a/knik/src/CMakeLists.txt +++ b/knik/src/CMakeLists.txt @@ -1,6 +1,6 @@ +# -*- explicit-buffer-name: "CMakeLists.txt" -*- # include ( ${QT_USE_FILE} ) - include_directories ( ${KNIK_SOURCE_DIR}/src ${KNIK_SOURCE_DIR}/src/flute-2.4/src ${HURRICANE_INCLUDE_DIR} diff --git a/unicorn/CMakeLists.txt b/unicorn/CMakeLists.txt index d7ec65d6..9d9623e6 100644 --- a/unicorn/CMakeLists.txt +++ b/unicorn/CMakeLists.txt @@ -35,6 +35,7 @@ #find_package(SOLSTICE REQUIRED) add_subdirectory(src) + add_subdirectory(python) add_subdirectory(cmake_modules) if(BUILD_DOC) diff --git a/unicorn/cmake_modules/FindUNICORN.cmake b/unicorn/cmake_modules/FindUNICORN.cmake index d303aa02..e11d96dc 100644 --- a/unicorn/cmake_modules/FindUNICORN.cmake +++ b/unicorn/cmake_modules/FindUNICORN.cmake @@ -18,7 +18,7 @@ IF(UNIX) FIND_PATH(UNICORN_INCLUDE_PATH NAMES unicorn/UnicornGui.h PATHS # Look in other places. ${CORIOLIS_DIR_SEARCH} - PATH_SUFFIXES include/coriolis + PATH_SUFFIXES include/coriolis2 include # Help the user find it if we cannot. DOC "The ${UNICORN_INCLUDE_PATH_DESCRIPTION}" ) diff --git a/unicorn/python/CMakeLists.txt b/unicorn/python/CMakeLists.txt new file mode 100644 index 00000000..4b962c68 --- /dev/null +++ b/unicorn/python/CMakeLists.txt @@ -0,0 +1,4 @@ +# -*- explicit-buffer-name: "CMakeLists.txt" -*- + + install( FILES unicornInit.py DESTINATION ${PYTHON_SITE_PACKAGES}/unicorn ) + diff --git a/unicorn/src/init/unicornInit.py b/unicorn/python/unicornInit.py similarity index 100% rename from unicorn/src/init/unicornInit.py rename to unicorn/python/unicornInit.py diff --git a/unicorn/src/CMakeLists.txt b/unicorn/src/CMakeLists.txt index 92de6669..ad7bccb7 100644 --- a/unicorn/src/CMakeLists.txt +++ b/unicorn/src/CMakeLists.txt @@ -1,98 +1,98 @@ # -*- explicit-buffer-name: "CMakeLists.txt" -*- -# include ( ${QT_USE_FILE} ) - include_directories ( ${UNICORN_SOURCE_DIR}/src - ${HURRICANE_INCLUDE_DIR} - ${CORIOLIS_INCLUDE_DIR} - ${BOOKSHELF_INCLUDE_DIR} - ${CONFIGURATION_INCLUDE_DIR} - ${QtX_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} - ${LEFDEF_INCLUDE_DIR} - ${PYTHON_INCLUDE_PATH} - ) - add_definitions ( -DSYS_CONF_DIR="${SYS_CONF_DIR}" ) +# include( ${QT_USE_FILE} ) + include_directories( ${UNICORN_SOURCE_DIR}/src + ${HURRICANE_INCLUDE_DIR} + ${CORIOLIS_INCLUDE_DIR} + ${BOOKSHELF_INCLUDE_DIR} + ${CONFIGURATION_INCLUDE_DIR} + ${QtX_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ${LEFDEF_INCLUDE_DIR} + ${PYTHON_INCLUDE_PATH} + ) + add_definitions( -DSYS_CONF_DIR="${SYS_CONF_DIR}" ) - set ( includes unicorn/ImportCell.h ) - set ( mocincludes unicorn/UnicornGui.h - unicorn/OpenCellDialog.h - unicorn/SaveCellDialog.h - unicorn/ImportCellDialog.h - unicorn/ExportCellDialog.h - ) - set ( pyIncludes unicorn/PyUnicornGui.h - ) - set ( cpps ImportCell.cpp - OpenCellDialog.cpp - SaveCellDialog.cpp - ImportCellDialog.cpp - ExportCellDialog.cpp - UnicornGui.cpp - ) - set ( pyCpps PyUnicorn.cpp - PyUnicornGui.cpp - ) - set ( cgtcpp CgtMain.cpp ) + set( includes unicorn/ImportCell.h ) + set( mocincludes unicorn/UnicornGui.h + unicorn/OpenCellDialog.h + unicorn/SaveCellDialog.h + unicorn/ImportCellDialog.h + unicorn/ExportCellDialog.h + ) + set( pyIncludes unicorn/PyUnicornGui.h + ) + set( cpps ImportCell.cpp + OpenCellDialog.cpp + SaveCellDialog.cpp + ImportCellDialog.cpp + ExportCellDialog.cpp + UnicornGui.cpp + ) + set( pyCpps PyUnicorn.cpp + PyUnicornGui.cpp + ) + set( cgtcpp CgtMain.cpp ) - qtX_wrap_cpp ( mocCpps ${mocincludes} ) - qtX_add_resources ( RCC_SRCS Unicorn.qrc ) + qtX_wrap_cpp( mocCpps ${mocincludes} ) + qtX_add_resources( RCC_SRCS Unicorn.qrc ) - add_library ( unicorn ${cpps} ${mocCpps} ${pyCpps} ) - set_target_properties ( unicorn PROPERTIES VERSION 1.0 SOVERSION 1 ) - target_link_libraries ( unicorn ${SOLSTICE_GRAPHICAL_LIBRARIES} - ${SOLSTICE_LIBRARIES} - ${EQUINOX_GRAPHICAL_LIBRARIES} - ${EQUINOX_LIBRARIES} - ${KITE_GRAPHICAL_LIBRARIES} - ${KITE_LIBRARIES} - ${KATABATIC_GRAPHICAL_LIBRARIES} - ${KATABATIC_LIBRARIES} - ${KNIK_GRAPHICAL_LIBRARIES} - ${KNIK_LIBRARIES} - ${ETESIAN_GRAPHICAL_LIBRARIES} - ${ETESIAN_LIBRARIES} - ${MAUKA_GRAPHICAL_LIBRARIES} - ${MAUKA_LIBRARIES} - ${METIS_LIBRARIES} - ${HMETIS_LIBRARIES} - ${NIMBUS_GRAPHICAL_LIBRARIES} - ${NIMBUS_LIBRARIES} - ${CORIOLIS_PYTHON_LIBRARIES} - ${CORIOLIS_LIBRARIES} - ${HURRICANE_PYTHON_LIBRARIES} - ${HURRICANE_GRAPHICAL_LIBRARIES} - ${HURRICANE_LIBRARIES} - ${BOOKSHELF_LIBRARY} - ${AGDS_LIBRARY} - ${CIF_LIBRARY} - ${UTILITIES_LIBRARY} - ${CONFIGURATION_LIBRARY} - ${COLOQUINTE_LIBRARY} - ${LEFDEF_LIBRARIES} - ${OA_LIBRARIES} - ${QtX_LIBRARIES} - ${Boost_LIBRARIES} - ${PYTHON_LIBRARIES} - -lutil - ${LIBXML2_LIBRARIES} - ) - add_library ( pyUnicorn MODULE ${pyCpps} ) - target_link_libraries ( pyUnicorn unicorn ) - set_target_properties ( pyUnicorn PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -D__PYTHON_MODULE__=1" - PREFIX "" - OUTPUT_NAME "Unicorn" - ) + set( depLibs ${SOLSTICE_GRAPHICAL_LIBRARIES} + ${SOLSTICE_LIBRARIES} + ${EQUINOX_GRAPHICAL_LIBRARIES} + ${EQUINOX_LIBRARIES} + ${KITE_GRAPHICAL_LIBRARIES} + ${KITE_LIBRARIES} + ${KATABATIC_GRAPHICAL_LIBRARIES} + ${KATABATIC_LIBRARIES} + ${KNIK_GRAPHICAL_LIBRARIES} + ${KNIK_LIBRARIES} + ${ETESIAN_GRAPHICAL_LIBRARIES} + ${ETESIAN_LIBRARIES} + ${MAUKA_GRAPHICAL_LIBRARIES} + ${MAUKA_LIBRARIES} + ${METIS_LIBRARIES} + ${HMETIS_LIBRARIES} + ${NIMBUS_GRAPHICAL_LIBRARIES} + ${NIMBUS_LIBRARIES} + ${CORIOLIS_PYTHON_LIBRARIES} + ${CORIOLIS_LIBRARIES} + ${HURRICANE_PYTHON_LIBRARIES} + ${HURRICANE_GRAPHICAL_LIBRARIES} + ${HURRICANE_LIBRARIES} + ${BOOKSHELF_LIBRARY} + ${AGDS_LIBRARY} + ${CIF_LIBRARY} + ${UTILITIES_LIBRARY} + ${CONFIGURATION_LIBRARY} + ${COLOQUINTE_LIBRARY} + ${LEFDEF_LIBRARIES} + ${OA_LIBRARIES} + ${QtX_LIBRARIES} + ${Boost_LIBRARIES} + ${PYTHON_LIBRARIES} + -lutil + ${LIBXML2_LIBRARIES} + ) - add_executable ( cgt.bin ${cgtcpp} ) - target_link_libraries ( cgt.bin unicorn ) + add_library( unicorn ${cpps} ${mocCpps} ${pyCpps} ) + set_target_properties( unicorn PROPERTIES VERSION 1.0 SOVERSION 1 ) + target_link_libraries( unicorn ${depLibs} ) - install ( TARGETS unicorn DESTINATION lib${LIB_SUFFIX} ) - install ( TARGETS pyUnicorn DESTINATION ${PYTHON_SITE_PACKAGES} ) - install ( TARGETS cgt.bin DESTINATION bin ) - install ( PROGRAMS cgt.py DESTINATION bin RENAME cgt ) - install ( FILES ${includes} - ${mocincludes} - ${pyIncludes} DESTINATION include/coriolis2/unicorn ) - install ( FILES init/unicornInit.py - DESTINATION ${PYTHON_SITE_PACKAGES}/unicorn ) + add_python_module( "${pyCpps}" + "${pyIncludes}" + "Do_not_generate_C_library" + Unicorn + "unicorn;${depLibs}" + include/coriolis2/unicorn + ) + + add_executable( cgt.bin ${cgtcpp} ) + target_link_libraries( cgt.bin unicorn ${depLibs} ) + + install( TARGETS unicorn DESTINATION lib${LIB_SUFFIX} ) + install( TARGETS cgt.bin DESTINATION bin ) + install( PROGRAMS cgt.py DESTINATION bin RENAME cgt ) + install( FILES ${includes} + ${mocincludes} DESTINATION include/coriolis2/unicorn )