coriolis/bora/src/CMakeLists.txt

113 lines
5.3 KiB
CMake
Raw Normal View History

Analog integration part II. Analog place & route (slicing tree). * Change: In Hurricane::CellWidget, set the minimal size to 350 pixels to fit my normal DPI secondary screen... * Change: In Hurricane::Error(), reactivate the backtrace generation by default. Seriously slow down the program each time an Error is to be constructed. * Bug: In Analog::Device::preCreate(), check for NULL Technology before attempting to use it. * Change: In Hurricane/Analog, remove all '*Arguments*' classes and their Python interface. It was an obsoleted way of passing devices parameters to the Python layout generators (located in Oroshi). Now we just get them straight from the Device with the getParamter() method. * Change: In CRL::System CTOR, add Python pathes for Oroshi & Karakaze. * Change: In Oroshi/Python/WIP_*.py layout generator scripts, remove all uses of the "Arguments". Directly access the parameters through the device itself. Make the checkCoherency() with identical arguments as of layout(). * New: Bora tool that performs analog place & route. Based on a slicing tree representation. It is the thesis work of Eric Lao. Code beautyfication and some programming cleanup. * New: Karakaze tool, provide the Python base class AnalogDesign used to build an analog design. Create/configure devices and assemble them in a slicing tree. * Change: In Unicorn/cgt.py, display the stack trace in case of an ImportError exception as well as for other exceptions. Add Bora to the set for included tool engines.
2018-10-18 11:10:01 -05:00
# -*- explicit-buffer-name: "CMakeLists.txt<bora/src>" -*-
include_directories( ${BORA_SOURCE_DIR}/src
${CORIOLIS_INCLUDE_DIR}
${HURRICANE_INCLUDE_DIR}
${CONFIGURATION_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
${QWT_INCLUDE_DIR}
${QtX_INCLUDE_DIR}
${PYTHON_INCLUDE_PATH}
)
set( includes bora/Constants.h
bora/BoxSet.h
bora/NodeSets.h
bora/HVSetState.h
bora/ChannelRouting.h
bora/SlicingNode.h
bora/HVSlicingNode.h
bora/HSlicingNode.h
bora/VSlicingNode.h
bora/DSlicingNode.h
bora/RHVSlicingNode.h
bora/RHSlicingNode.h
bora/RVSlicingNode.h
bora/AnalogDistance.h
bora/Pareto.h
bora/BoraEngine.h
)
set( pyIncludes bora/PySlicingNode.h
bora/PyDSlicingNode.h
bora/PyHSlicingNode.h
bora/PyVSlicingNode.h
bora/PyRHSlicingNode.h
bora/PyRVSlicingNode.h
bora/PyBoraEngine.h
bora/PyGraphicBoraEngine.h
)
set( mocIncludes bora/SlicingDataModel.h
bora/SlicingDataWidget.h
bora/SlicingPlotWidget.h
bora/SlicingWidget.h
bora/GraphicBoraEngine.h
)
set( cpps BoxSet.cpp
NodeSets.cpp
HVSetState.cpp
SlicingNode.cpp
HVSlicingNode.cpp
HSlicingNode.cpp
VSlicingNode.cpp
DSlicingNode.cpp
RHVSlicingNode.cpp
RHSlicingNode.cpp
RVSlicingNode.cpp
ChannelRouting.cpp
BoraEngine.cpp
Pareto.cpp
SlicingDataModel.cpp
SlicingDataWidget.cpp
SlicingPlotWidget.cpp
SlicingWidget.cpp
GraphicBoraEngine.cpp
)
set( pyCpps PySlicingNode.cpp
PyDSlicingNode.cpp
PyHSlicingNode.cpp
PyRHSlicingNode.cpp
PyRVSlicingNode.cpp
PyVSlicingNode.cpp
PyBoraEngine.cpp
PyGraphicBoraEngine.cpp
PyBora.cpp
)
qtX_wrap_cpp( mocCpps ${mocIncludes} )
set( depLibs ${KATANA_LIBRARIES}
${ANABATIC_LIBRARIES}
${CORIOLIS_PYTHON_LIBRARIES}
${CORIOLIS_LIBRARIES}
${HURRICANE_PYTHON_LIBRARIES}
${HURRICANE_ANALOG_LIBRARIES}
${HURRICANE_GRAPHICAL_LIBRARIES}
${HURRICANE_LIBRARIES}
${CONFIGURATION_LIBRARY}
${CIF_LIBRARY}
${AGDS_LIBRARY}
${LEFDEF_LIBRARIES}
${OA_LIBRARIES}
${QWT_LIBRARY}
${QtX_LIBRARIES}
${Boost_LIBRARIES}
${PYTHON_LIBRARIES} -lutil
)
add_library( bora ${cpps} ${mocCpps} )
set_target_properties( bora PROPERTIES VERSION 1.0 SOVERSION 1 )
target_link_libraries( bora ${depLibs} )
add_python_module( "${pyCpps}"
"${pyIncludes}"
"pybora;1.0;1"
Bora
"bora;${depLibs}"
include/coriolis2/bora
)
install( TARGETS bora DESTINATION lib${LIB_SUFFIX} )
install( FILES ${includes}
${mocIncludes} DESTINATION include/coriolis2/bora )