diff --git a/hurricane/src/analog/meson.build b/hurricane/src/analog/meson.build new file mode 100644 index 00000000..92e7a041 --- /dev/null +++ b/hurricane/src/analog/meson.build @@ -0,0 +1,88 @@ +analog = shared_library( + 'analog', + 'AnalogCellExtension.cpp', + 'Parameter.cpp', + 'CapacitiesParameter.cpp', + 'FormFactorParameter.cpp', + 'ChoiceParameter.cpp', + 'FloatParameter.cpp', + 'MatrixParameter.cpp', + 'MCheckBoxParameter.cpp', + 'SpinBoxParameter.cpp', + 'StepParameter.cpp', + 'StringParameter.cpp', + 'BJT.cpp', + 'BJTFamily.cpp', + 'BJTFamilyNames.cpp', + 'CapacitorFamily.cpp', + 'CapacitorFamilyNames.cpp', + 'Cascode.cpp', + 'ChoiceParameter.cpp', + 'Choices.cpp', + 'CommonDrain.cpp', + 'CommonGatePair.cpp', + 'CommonSourcePair.cpp', + 'CrossCoupledPair.cpp', + 'Device.cpp', + 'DifferentialPair.cpp', + 'LayoutGenerator.cpp', + 'LevelShifter.cpp', + 'MetaCapacitor.cpp', + 'MetaTransistor.cpp', + 'MultiCapacitor.cpp', + 'SimpleCurrentMirror.cpp', + 'Transistor.cpp', + 'TransistorFamily.cpp', + 'TransistorFamilyNames.cpp', + 'TransistorPair.cpp', + 'MultiCapacitor.cpp', + 'MetaResistor.cpp', + 'ResistorFamily.cpp', + 'Resistor.cpp', + + 'PyAnalog.cpp', + 'PyCapacitorFamily.cpp', + 'PyCapacitorParameter.cpp', + 'PyCascode.cpp', + 'PyChoiceParameter.cpp', + 'PyCommonDrain.cpp', + 'PyCommonGatePair.cpp', + 'PyCommonSourcePair.cpp', + 'PyCrossCoupledPair.cpp', + 'PyDevice.cpp', + 'PyDifferentialPair.cpp', + 'PyFormFactorParameter.cpp', + 'PyLayoutGenerator.cpp', + 'PyLevelShifter.cpp', + 'PyMCheckBoxParameter.cpp', + 'PyMultiCapacitor.cpp', + 'PyMatrix.cpp', + 'PyParameter.cpp', + 'PySimpleCurrentMirror.cpp', + 'PySpinBoxParameter.cpp', + 'PyStepParameter.cpp', + 'PyStringParameter.cpp', + 'PyFloatParameter.cpp', + 'PyTransistor.cpp', + 'PyTransistorFamily.cpp', + 'PyTransistorPair.cpp', + 'PyMatrixParameter.cpp', + 'PyCapacitiesParameter.cpp', + 'PyMultiCapacitor.cpp', + 'PyResistorFamily.cpp', + 'PyResistor.cpp', + + dependencies: [qt_deps, py_deps, boost], + link_with: [hurricane, isobar, utils], + include_directories: includes +) + +py.extension_module( + 'Analog', + dependencies: [qt_deps, py_deps, boost, rapidjson], + link_with: [hurricane, utils, configuration, pytypemanager, isobar, analog], + include_directories: includes +) + + + diff --git a/hurricane/src/viewer/PyCellViewer.cpp b/hurricane/src/isobar/PyCellViewer.cpp similarity index 100% rename from hurricane/src/viewer/PyCellViewer.cpp rename to hurricane/src/isobar/PyCellViewer.cpp diff --git a/hurricane/src/viewer/PyErrorWidget.cpp b/hurricane/src/isobar/PyErrorWidget.cpp similarity index 100% rename from hurricane/src/viewer/PyErrorWidget.cpp rename to hurricane/src/isobar/PyErrorWidget.cpp diff --git a/hurricane/src/viewer/Script.cpp b/hurricane/src/isobar/Script.cpp similarity index 100% rename from hurricane/src/viewer/Script.cpp rename to hurricane/src/isobar/Script.cpp diff --git a/hurricane/src/viewer/hurricane/viewer/PyCellViewer.h b/hurricane/src/isobar/hurricane/isobar/PyCellViewer.h similarity index 100% rename from hurricane/src/viewer/hurricane/viewer/PyCellViewer.h rename to hurricane/src/isobar/hurricane/isobar/PyCellViewer.h diff --git a/hurricane/src/viewer/hurricane/viewer/PyErrorWidget.h b/hurricane/src/isobar/hurricane/isobar/PyErrorWidget.h similarity index 100% rename from hurricane/src/viewer/hurricane/viewer/PyErrorWidget.h rename to hurricane/src/isobar/hurricane/isobar/PyErrorWidget.h diff --git a/hurricane/src/viewer/hurricane/viewer/Script.h b/hurricane/src/isobar/hurricane/isobar/Script.h similarity index 100% rename from hurricane/src/viewer/hurricane/viewer/Script.h rename to hurricane/src/isobar/hurricane/isobar/Script.h diff --git a/hurricane/src/isobar/meson.build b/hurricane/src/isobar/meson.build index debbd88e..751fa6f2 100644 --- a/hurricane/src/isobar/meson.build +++ b/hurricane/src/isobar/meson.build @@ -76,6 +76,9 @@ isobar_sources = [ 'PyUnitRule.cpp', 'PyPhysicalRule.cpp', 'PyTwoLayersPhysicalRule.cpp', + 'Script.cpp', + 'PyCellViewer.cpp', + 'PyErrorWidget.cpp', ] isobar = library( diff --git a/hurricane/src/meson.build b/hurricane/src/meson.build index b8f948b8..96ceb982 100644 --- a/hurricane/src/meson.build +++ b/hurricane/src/meson.build @@ -1,5 +1,18 @@ +includes = include_directories( + 'hurricane', + 'utilities', + 'isobar', + 'configuration', + 'analog', + 'viewer' +) + +hurricane_deps = [qt_deps, py_deps, rapidjson, boost] -includes = include_directories('utilities', 'hurricane', 'analog', 'viewer', 'isobar') subdir('hurricane') +subdir('utilities') subdir('isobar') subdir('configuration') +subdir('analog') +subdir('viewer') + diff --git a/hurricane/src/utilities/meson.build b/hurricane/src/utilities/meson.build new file mode 100644 index 00000000..5f0fe126 --- /dev/null +++ b/hurricane/src/utilities/meson.build @@ -0,0 +1,7 @@ +utils = shared_library( + 'utils', + 'Path.cpp', + 'Dots.cpp', + link_with: hurricane +) + diff --git a/hurricane/src/viewer/meson.build b/hurricane/src/viewer/meson.build new file mode 100644 index 00000000..a2be133b --- /dev/null +++ b/hurricane/src/viewer/meson.build @@ -0,0 +1,118 @@ +viewer_mocs = qt.compile_moc( + headers: [ + '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/ErrorWidget.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/OpenBlobDialog.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/HierarchyModel.h', + 'hurricane/viewer/HierarchyWidget.h', + 'hurricane/viewer/DisplayFilterWidget.h', + 'hurricane/viewer/ControllerWidget.h', + 'hurricane/viewer/ScriptWidget.h', + 'hurricane/viewer/AboutWindow.h' + ], + include_directories: includes +) + +viewer_resources = qt.compile_resources( + sources: 'CellViewer.qrc' +) + +viewer = shared_library( + 'viewer', + 'HApplication.cpp', + 'ScreenUtilities.cpp', + 'DisplayStyle.cpp', + 'ColorScale.cpp', + 'Graphics.cpp', + 'GraphicsWidget.cpp', + 'ErrorWidget.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', + 'OpenBlobDialog.cpp', + 'RecordModel.cpp', + 'InspectorWidget.cpp', + 'SelectionPopupModel.cpp', + 'SelectionPopup.cpp', + 'SelectionModel.cpp', + 'SelectionWidget.cpp', + 'Ruler.cpp', + 'NetInformations.cpp', + 'NetlistModel.cpp', + 'NetlistWidget.cpp', + 'HierarchyInformations.cpp', + 'HierarchyModel.cpp', + 'HierarchyWidget.cpp', + 'DisplayFilterWidget.cpp', + 'ControllerWidget.cpp', + 'ScriptWidget.cpp', + 'DesignBlob.cpp', + 'JsonConfiguration.cpp', + 'AboutWindow.cpp', + 'PyHSVr.cpp', + 'PyDrawingStyle.cpp', + 'PyDrawingGroup.cpp', + 'PyDisplayStyle.cpp', + 'PyHApplication.cpp', + 'PyGraphics.cpp', + 'PyViewer.cpp', + 'PyAboutWindow.cpp', + viewer_mocs, + viewer_resources, + dependencies: [qt_deps, py_deps, boost, rapidjson], + link_with: [hurricane, utils, configuration, pytypemanager, isobar, analog], + include_directories: includes +) + +py.extension_module( + 'Viewer', + dependencies: [qt_deps, py_deps, boost, rapidjson], + link_with: [hurricane, utils, configuration, pytypemanager, viewer, isobar, analog], + include_directories: includes +) + + diff --git a/meson.build b/meson.build index 6f7e8b04..acc10030 100644 --- a/meson.build +++ b/meson.build @@ -17,6 +17,9 @@ add_project_arguments( '-Wno-deprecated-declarations', '-Wno-unused-function', '-Wno-unused-private-field', + '-Wno-return-type-c-linkage', + '-Wno-unused-variable', + '-Wno-#pragma-messages', language: ['c','cpp'] ) @@ -24,7 +27,11 @@ py = import('python').find_installation() py_deps = dependency('python3-embed', required: true) qt = import('qt5') -qt_deps = dependency('qt5', modules: ['Core', 'Gui', 'Widgets'], required:true) +qt_deps = dependency('qt5', + modules: ['Core', 'Gui', 'Widgets', 'PrintSupport', 'Svg'], + required:true +) + boost = dependency('boost', required: true) subdir('hurricane')