diff --git a/dependency_support/org_theopenroadproject/build_helper.bzl b/dependency_support/org_theopenroadproject/build_helper.bzl index fd4259ce..2421ad5a 100644 --- a/dependency_support/org_theopenroadproject/build_helper.bzl +++ b/dependency_support/org_theopenroadproject/build_helper.bzl @@ -29,9 +29,6 @@ OPENROAD_BINARY_SRCS_WITHOUT_MAIN = [ #finale ":finale_swig", ":finale_tcl", - #TritionMP - ":tritonmp_swig", - ":tritonmp_tcl", #antenna_checker ":ant_swig", ":ant_tcl", @@ -62,9 +59,9 @@ OPENROAD_BINARY_SRCS_WITHOUT_MAIN = [ #PDNGen ":pdngen_tcl", ":pdngen_swig", - #MPL2 - ":mpl2_swig", - ":mpl2_tcl", + #MPL + ":mpl_swig", + ":mpl_tcl", #RMP ":rmp_swig", ":rmp_tcl", @@ -105,6 +102,15 @@ OPENROAD_COPTS = [ "-Wno-unused-parameter", ] +OPENROAD_DEFINES = [ + "OPENROAD_GIT_DESCRIBE=\\\"bazel_rules_hdl\\\"", + "BUILD_TYPE=\\\"release\\\"", + "GPU=false", + "BUILD_PYTHON=false", + "ABC_NAMESPACE=abc", + "TCLRL_VERSION_STR=", +] + OPENROAD_BINARY_DEPS = [ ":logger", ":opendb_lib", @@ -123,6 +129,8 @@ OPENROAD_LIBRARY_HDRS_INCLUDE = [ "src/ifp/include/ifp/*.hh", #GUI "src/gui/include/gui/*.h", + #STA + "src/sta/include/sta/*.hh", #DbSTA "src/dbSta/include/db_sta/*.hh", #ioPlacer @@ -137,6 +145,7 @@ OPENROAD_LIBRARY_HDRS_INCLUDE = [ "src/mpl/include/mpl/*.h", #antenna_checker "src/ant/include/ant/*.hh", + "src/ant/src/*.hh", #FastRoute "src/grt/src/fastroute/include/*.h", "src/grt/include/grt/*.h", @@ -150,6 +159,7 @@ OPENROAD_LIBRARY_HDRS_INCLUDE = [ "src/rcx/include/rcx/*.h", #TritonRoute "src/drt/include/triton_route/*.h", + "src/drt/src/db/infra/*.hpp", #PDNSim "src/psm/include/psm/*.h", "src/psm/include/psm/*.hh", @@ -160,9 +170,10 @@ OPENROAD_LIBRARY_HDRS_INCLUDE = [ "src/pdn/include/pdn/*.hh", #STT "src/stt/include/stt/*.h", - #MPL2 - "src/mpl2/include/mpl2/*.h", + #MPL + "src/mpl/include/mpl/*.h", #RMP + "src/rmp/src/*.h", "src/rmp/include/rmp/*.h", #Distributed "src/dst/include/dst/*.h", @@ -174,13 +185,18 @@ OPENROAD_LIBRARY_HDRS_INCLUDE = [ "src/dft/include/dft/*.hh", #upf "src/upf/include/upf/*.h", + "src/upf/src/*.h", ] OPENROAD_LIBRARY_INCLUDES = [ #Root OpenRoad "include", + #OpenDB + "src/odb/include/odb", #OpenDBTCL "src/odb/src/swig/common", + #STA + "src/sta/include/sta", #DbSTA "src/dbSta/include", "src/dbSta/include/db_sta", @@ -242,9 +258,9 @@ OPENROAD_LIBRARY_INCLUDES = [ #PDNGen "src/pdn/include", "src/pdn/include/pdn", - #MPL2 - "src/mpl2/include", - "src/mpl2/src", + #MPL + "src/mpl/include", + "src/mpl/src", #RMP "src/rmp/include", #STT @@ -308,6 +324,9 @@ OPENROAD_LIBRARY_DEPS = [ OPENROAD_LIBRARY_SRCS_EXCLUDE = [ "src/Main.cc", + "src/Main_bindings.cc", + "src/OpenRoad.cc", + "src/rcx/src/extmeasure_res_v2.cpp", "src/rsz/src/Unused.cc", "src/drt/src/main.cpp", "src/utl/src/Logger.cpp", @@ -316,6 +335,7 @@ OPENROAD_LIBRARY_SRCS_EXCLUDE = [ "src/par/src/MLPart/mlpart/ABKCommon/abkrand_templ.cxx", "src/par/src/MLPart/mlpart/Partitioners/aGreedMoveMan.cxx", "src/par/src/MLPart/mlpart/Combi/grayPermut.cxx", + "src/utl/src/ScopedTemporaryFile.cpp", ] OPENROAD_LIBRARY_SRCS_INCLUDE = [ @@ -392,9 +412,9 @@ OPENROAD_LIBRARY_SRCS_INCLUDE = [ "src/stt/src/pdr/src/*.h", "src/stt/src/pdr/src/*.cpp", "src/stt/src/flt/*.cpp", - #MPL2 - "src/mpl2/src/*.cpp", - "src/mpl2/src/*.h", + #mpl + "src/mpl/src/*.cpp", + "src/mpl/src/*.h", #RMP "src/rmp/src/*.cpp", #Distributed @@ -409,6 +429,8 @@ OPENROAD_LIBRARY_SRCS_INCLUDE = [ "src/pad/src/*.h", #upf "src/upf/src/*.cpp", + #utl + "src/utl/*.h", #dft "src/dft/src/**/*.cpp", "src/dft/src/**/*.hh", diff --git a/dependency_support/org_theopenroadproject/bundled.BUILD.bazel b/dependency_support/org_theopenroadproject/bundled.BUILD.bazel index df6a613f..2f692f9f 100644 --- a/dependency_support/org_theopenroadproject/bundled.BUILD.bazel +++ b/dependency_support/org_theopenroadproject/bundled.BUILD.bazel @@ -105,9 +105,11 @@ cc_library( ], ), copts = OPENROAD_COPTS, - defines = [ - "OPENROAD_GIT_DESCRIBE=\\\"bazel_rules_hdl\\\"", - "ENABLE_MPL2", + defines = OPENROAD_DEFINES + [ + "BUILD_GUI=false", + "ENABLE_CHARTS=false", + "ENABLE_mpl", + "ENABLE_PAR", ], features = ["-use_header_modules"], includes = OPENROAD_LIBRARY_INCLUDES, @@ -125,6 +127,8 @@ cc_library( exclude = OPENROAD_LIBRARY_SRCS_EXCLUDE, allow_empty = True, ) + [ + "src/Main_bindings.cc", + "src/OpenRoad.cc", "src/stt/src/flt/etc/POST9.cpp", "src/stt/src/flt/etc/POWV9.cpp", ], @@ -136,9 +140,11 @@ cc_library( ], ), copts = OPENROAD_COPTS, - defines = [ - "OPENROAD_GIT_DESCRIBE=\\\"bazel_rules_hdl\\\"", - "ENABLE_MPL2", + defines = OPENROAD_DEFINES + [ + "ENABLE_mpl", + "ENABLE_PAR", + "BUILD_GUI=false", + "ENABLE_CHARTS=false", ], features = ["-use_header_modules"], includes = OPENROAD_LIBRARY_INCLUDES, @@ -173,11 +179,16 @@ cc_library( srcs = [ "src/utl/src/Logger.cpp", "src/utl/src/Metrics.cpp", + "src/utl/src/ScopedTemporaryFile.cpp", + "src/utl/src/prometheus/metrics_server.cpp", ], hdrs = [ "src/utl/include/utl/Logger.h", "src/utl/include/utl/Metrics.h", - ], + "src/utl/include/utl/ScopedTemporaryFile.h", + ] + glob([ + "src/utl/include/utl/prometheus/*.h", + ]), copts = [ "-fexceptions", "-Wno-error", @@ -185,7 +196,6 @@ cc_library( "-Wextra", "-pedantic", "-Wno-cast-qual", # typically from TCL swigging - "-Wno-missing-braces", # typically from TCL swigging "-Wredundant-decls", "-Wformat-security", "-Wno-unused-parameter", @@ -219,7 +229,6 @@ cc_library( "-Wextra", "-pedantic", "-Wno-cast-qual", # typically from TCL swigging - "-Wno-missing-braces", # typically from TCL swigging "-Wredundant-decls", "-Wformat-security", "-Wno-unused-parameter", @@ -271,6 +280,7 @@ tcl_encode( name = "init_floorplan_tcl", srcs = [ "src/ifp/src/InitFloorplan.tcl", + "src/odb/src/db/odb.tcl", ], out = "InitFloorplanTclInitVar.cc", char_array_name = "ifp_tcl_inits", @@ -318,14 +328,6 @@ tcl_encode( char_array_name = "fin_tcl_inits", ) -tcl_encode( - name = "tritonmp_tcl", - srcs = [ - "src/mpl/src/MacroPlacer.tcl", - ], - char_array_name = "mpl_tcl_inits", -) - tcl_encode( name = "ant_tcl", srcs = [ @@ -423,11 +425,11 @@ tcl_encode( ) tcl_encode( - name = "mpl2_tcl", + name = "mpl_tcl", srcs = [ - "src/mpl2/src/mpl.tcl", + "src/mpl/src/mpl.tcl", ], - char_array_name = "mpl2_tcl_inits", + char_array_name = "mpl_tcl_inits", ) tcl_encode( @@ -504,6 +506,7 @@ tcl_wrap_cc( name = "init_floorplan_swig", srcs = [ "src/ifp/src/InitFloorplan.i", + ":design_swig", ":error_swig", ] + glob([ "src/odb/src/swig/tcl/*.i", @@ -558,12 +561,14 @@ tcl_wrap_cc( srcs = [ "src/rsz/src/Resizer.i", ":error_swig", + ":sta_swig_files", ], module = "rsz", namespace_prefix = "rsz", root_swig_src = "src/rsz/src/Resizer.i", swig_includes = [ "src/rsz/src", + "src/sta", ], ) @@ -610,20 +615,6 @@ tcl_wrap_cc( ], ) -tcl_wrap_cc( - name = "tritonmp_swig", - srcs = [ - "src/mpl/src/MacroPlacer.i", - ":error_swig", - ], - module = "mpl", - namespace_prefix = "mpl", - root_swig_src = "src/mpl/src/MacroPlacer.i", - swig_includes = [ - "src/mpl/src", - ], -) - tcl_wrap_cc( name = "ant_swig", srcs = [ @@ -657,12 +648,17 @@ tcl_wrap_cc( srcs = [ "src/gpl/src/replace.i", ":error_swig", - ], + ] + glob([ + "src/odb/src/swig/tcl/*.i", + "src/odb/src/swig/common/*.i", + ]), module = "gpl", namespace_prefix = "gpl", root_swig_src = "src/gpl/src/replace.i", swig_includes = [ "src/gpl/src", + "src/odb/src/swig/common", + "src/odb/src/swig/tcl", ], ) @@ -704,6 +700,7 @@ tcl_wrap_cc( name = "rcx_swig", srcs = [ "src/rcx/src/ext.i", + ":design_swig", ":error_swig", ], module = "rcx", @@ -812,16 +809,16 @@ tcl_wrap_cc( ) tcl_wrap_cc( - name = "mpl2_swig", + name = "mpl_swig", srcs = [ - "src/mpl2/src/mpl.i", + "src/mpl/src/mpl.i", ":error_swig", ], - module = "mpl2", - namespace_prefix = "mpl2", - root_swig_src = "src/mpl2/src/mpl.i", + module = "mpl", + namespace_prefix = "mpl", + root_swig_src = "src/mpl/src/mpl.i", swig_includes = [ - "src/mpl2/src", + "src/mpl/src", ], ) @@ -890,7 +887,7 @@ tcl_wrap_cc( module = "gui", namespace_prefix = "gui", root_swig_src = "src/gui/src/gui.i", - #runtime_header = "src/gui/src/tclSwig.h", + runtime_header = "src/gui/src/tclSwig.h", swig_includes = [ "src/gui/src", ], @@ -903,15 +900,15 @@ filegroup( ], ) -## OPENDB filegroup( - name = "dbdiff", + name = "design_swig", srcs = [ - "src/odb/src/swig/common/dbdiff.i", + "src/Design.i", ], - visibility = ["@org_theopenroadproject//:__subpackages__"], ) +## OPENDB + filegroup( name = "opendb_tcl_common", srcs = [ @@ -927,7 +924,10 @@ tcl_wrap_cc( "src/odb/src/swig/tcl/*.i", "src/odb/src/swig/common/*.i", "src/odb/include/odb/*.h", - ]) + ["src/Exception.i"], + ]) + [ + "src/Design.i", + "src/Exception.i", + ], module = "odbtcl", namespace_prefix = "odb", root_swig_src = "src/odb/src/swig/common/odb.i", @@ -970,6 +970,7 @@ cc_library( "src/odb/src/db/*.h", "src/odb/src/db/*.hpp", "src/odb/src/zutil/*.cpp", + "src/odb/src/zlib/*.cpp", "src/odb/src/defout/*.cpp", "src/odb/src/defout/*.h", "src/odb/src/defin/*.cpp", @@ -977,10 +978,14 @@ cc_library( "src/odb/src/lefin/*.cpp", "src/odb/src/lefin/*.h", "src/odb/src/lefout/*.cpp", + "src/odb/src/lefout/*.h", + "src/odb/src/tm/*.cpp", ]), hdrs = glob([ "src/odb/include/odb/*.h", "src/odb/include/odb/*.hpp", + "src/utl/include/utl/*.h", + "src/odb/src/db/*.h", ]) + [ "src/odb/src/def/def/defiAlias.hpp", "src/odb/src/def/def/defrReader.hpp", @@ -988,6 +993,7 @@ cc_library( "src/odb/src/lef/lef/lefiDebug.hpp", "src/odb/src/lef/lef/lefiUtil.hpp", "src/odb/src/lef/lef/lefrReader.hpp", + "src/odb/src/lef/lef/lefwWriter.hpp", ], copts = [ "-fexceptions", @@ -1138,18 +1144,18 @@ genyacc( ## OpenSTA genlex( - name = "LibertyExprLex", - src = "src/sta/liberty/LibertyExprLex.ll", - out = "src/sta/liberty/LibertyExprLex.cc", - prefix = "LibertyExprLex_", + name = "LibExprLex", + src = "src/sta/liberty/LibExprLex.ll", + out = "src/sta/liberty/LibExprLex.cc", + prefix = "LibExprLex_", ) genyacc( - name = "LibertyExprParser", - src = "src/sta/liberty/LibertyExprParse.yy", - header_out = "src/sta/liberty/LibertyExprParse.hh", - prefix = "LibertyExprParse_", - source_out = "src/sta/liberty/LibertyExprParse.cc", + name = "LibExprParse", + src = "src/sta/liberty/LibExprParse.yy", + header_out = "src/sta/liberty/LibExprParse.hh", + prefix = "LibExprParse_", + source_out = "src/sta/liberty/LibExprParse.cc", ) # Liberty Parser @@ -1163,6 +1169,7 @@ genlex( genyacc( name = "LibertyParser", src = "src/sta/liberty/LibertyParse.yy", + extra_outs = ["src/sta/liberty/LibertyLocation.hh"], header_out = "src/sta/liberty/LibertyParse.hh", prefix = "LibertyParse_", source_out = "src/sta/liberty/LibertyParse.cc", @@ -1179,6 +1186,7 @@ genlex( genyacc( name = "SpefParser", src = "src/sta/parasitics/SpefParse.yy", + extra_outs = ["src/sta/parasitics/SpefLocation.hh"], header_out = "src/sta/parasitics/SpefParse.hh", prefix = "SpefParse_", source_out = "src/sta/parasitics/SpefParse.cc", @@ -1195,6 +1203,7 @@ genlex( genyacc( name = "VerilogParser", src = "src/sta/verilog/VerilogParse.yy", + extra_outs = ["src/sta/verilog/VerilogLocation.hh"], header_out = "src/sta/verilog/VerilogParse.hh", prefix = "VerilogParse_", source_out = "src/sta/verilog/VerilogParse.cc", @@ -1211,54 +1220,70 @@ genlex( genyacc( name = "SdfParser", src = "src/sta/sdf/SdfParse.yy", + extra_outs = ["src/sta/sdf/SdfLocation.hh"], header_out = "src/sta/sdf/SdfParse.hh", prefix = "SdfParse_", source_out = "src/sta/sdf/SdfParse.cc", ) +genlex( + name = "SaifLex", + src = "src/sta/power/SaifLex.ll", + out = "src/sta/power/SaifLex.cc", + prefix = "SaifLex_", +) + +genyacc( + name = "SaifParser", + src = "src/sta/power/SaifParse.yy", + extra_outs = ["src/sta/power/SaifLocation.hh"], + header_out = "src/sta/power/SaifParse.hh", + prefix = "SaifParse_", + source_out = "src/sta/power/SaifParse.cc", +) + # The order here is very important as the script to encode these relies on it tcl_srcs = [ - "src/sta/tcl/Init.tcl", "src/sta/tcl/Util.tcl", - "src/sta/tcl/CmdArgs.tcl", "src/sta/tcl/CmdUtil.tcl", - "src/sta/tcl/Graph.tcl", - "src/sta/tcl/Liberty.tcl", - "src/sta/tcl/Link.tcl", - "src/sta/tcl/Network.tcl", - "src/sta/tcl/NetworkEdit.tcl", + "src/sta/tcl/Init.tcl", + "src/sta/tcl/CmdArgs.tcl", "src/sta/tcl/Property.tcl", - "src/sta/tcl/Sdc.tcl", - "src/sta/tcl/Search.tcl", "src/sta/tcl/Sta.tcl", "src/sta/tcl/Variables.tcl", - "src/sta/tcl/WritePathSpice.tcl", "src/sta/tcl/Splash.tcl", + "src/sta/graph/Graph.tcl", + "src/sta/liberty/Liberty.tcl", + "src/sta/network/Link.tcl", + "src/sta/network/Network.tcl", + "src/sta/network/NetworkEdit.tcl", + "src/sta/search/Search.tcl", "src/sta/dcalc/DelayCalc.tcl", "src/sta/parasitics/Parasitics.tcl", "src/sta/power/Power.tcl", + "src/sta/sdc/Sdc.tcl", "src/sta/sdf/Sdf.tcl", "src/sta/verilog/Verilog.tcl", ] exported_tcl = [ - "src/sta/dcalc/DelayCalc.tcl", - "src/sta/parasitics/Parasitics.tcl", - "src/sta/power/Power.tcl", - "src/sta/sdf/Sdf.tcl", - "src/sta/tcl/CmdArgs.tcl", + "src/sta/tcl/Util.tcl", "src/sta/tcl/CmdUtil.tcl", - "src/sta/tcl/Graph.tcl", - "src/sta/tcl/Liberty.tcl", - "src/sta/tcl/Network.tcl", - "src/sta/tcl/NetworkEdit.tcl", + "src/sta/tcl/CmdArgs.tcl", "src/sta/tcl/Property.tcl", - "src/sta/tcl/Sdc.tcl", - "src/sta/tcl/Search.tcl", "src/sta/tcl/Splash.tcl", "src/sta/tcl/Sta.tcl", "src/sta/tcl/Variables.tcl", - "src/sta/tcl/WritePathSpice.tcl", + "src/sta/sdc/Sdc.tcl", + "src/sta/sdf/Sdf.tcl", + "src/sta/search/Search.tcl", + "src/sta/dcalc/DelayCalc.tcl", + "src/sta/graph/Graph.tcl", + "src/sta/liberty/Liberty.tcl", + "src/sta/network/Network.tcl", + "src/sta/network/NetworkEdit.tcl", + "src/sta/parasitics/Parasitics.tcl", + "src/sta/power/Power.tcl", ] filegroup( @@ -1293,13 +1318,19 @@ filegroup( srcs = [ "src/sta/app/StaApp.i", "src/sta/dcalc/DelayCalc.i", + "src/sta/graph/Graph.i", + "src/sta/liberty/Liberty.i", + "src/sta/network/Network.i", + "src/sta/network/NetworkEdit.i", "src/sta/parasitics/Parasitics.i", "src/sta/power/Power.i", + "src/sta/sdc/Sdc.i", "src/sta/sdf/Sdf.i", + "src/sta/search/Search.i", + "src/sta/spice/WriteSpice.i", "src/sta/tcl/Exception.i", - "src/sta/tcl/NetworkEdit.i", - "src/sta/tcl/StaTcl.i", "src/sta/tcl/StaTclTypes.i", + "src/sta/util/Util.i", "src/sta/verilog/Verilog.i", ], visibility = ["@org_theopenroadproject//:__subpackages__"], @@ -1313,19 +1344,14 @@ tcl_wrap_cc( namespace_prefix = "sta", root_swig_src = "src/sta/app/StaApp.i", swig_includes = [ - "src/sta/dcalc", - "src/sta/parasitics", - "src/sta/power", - "src/sta/sdf", - "src/sta/tcl", - "src/sta/verilog", + "src/sta", ], ) parser_cc = [ # Liberty Expression Parser - ":src/sta/liberty/LibertyExprParse.cc", - ":src/sta/liberty/LibertyExprLex.cc", + ":src/sta/liberty/LibExprParse.cc", + ":src/sta/liberty/LibExprLex.cc", # Liberty Parser ":src/sta/liberty/LibertyLex.cc", ":src/sta/liberty/LibertyParse.cc", @@ -1338,19 +1364,29 @@ parser_cc = [ # sdf scan/parse. ":src/sta/sdf/SdfLex.cc", ":src/sta/sdf/SdfParse.cc", + # Saif scan/parse. + ":src/sta/power/SaifLex.cc", + ":src/sta/power/SaifParse.cc", ] parser_headers = [ # Liberty Expression Parser - ":src/sta/liberty/LibertyExprParse.hh", + ":src/sta/liberty/LibExprParse.hh", # Liberty Parser ":src/sta/liberty/LibertyParse.hh", + ":src/sta/liberty/LibertyLocation.hh", # Spef scan/parse. ":src/sta/parasitics/SpefParse.hh", + ":src/sta/parasitics/SpefLocation.hh", # Verilog scan/parse. ":src/sta/verilog/VerilogParse.hh", + ":src/sta/verilog/VerilogLocation.hh", # sdf scan/parse. ":src/sta/sdf/SdfParse.hh", + ":src/sta/sdf/SdfLocation.hh", + # Saif scan/parse. + ":src/sta/power/SaifParse.hh", + ":src/sta/power/SaifLocation.hh", ] cc_binary( @@ -1399,6 +1435,7 @@ cc_library( "src/sta/search/*.hh", "src/sta/verilog/*.hh", "src/sta/power/*.hh", + "src/sta/spice/*.hh", ]) + glob( include = [ "src/sta/app/StaMain.cc", @@ -1413,14 +1450,16 @@ cc_library( "src/sta/search/*.cc", "src/sta/verilog/*.cc", "src/sta/power/*.cc", + "src/sta/spice/*.cc", + "src/sta/tcl/*.cc", ], exclude = [ - "src/sta/search/WriteSpice.cc", "src/sta/graph/Delay.cc", "src/sta/liberty/LibertyExt.cc", "src/sta/util/Machine*.cc", ], ) + [ + "src/sta/util/Machine.cc", ":StaConfig", ] + select({ "@bazel_tools//src/conditions:windows": ["src/sta/util/MachineWin32.cc"], @@ -1452,7 +1491,12 @@ cc_library( "src/sta/dcalc", "src/sta/include", "src/sta/include/sta", + "src/sta/liberty", + "src/sta/parasitics", + "src/sta/power", + "src/sta/sdf", "src/sta/util", + "src/sta/verilog", ], visibility = ["@org_theopenroadproject//:__subpackages__"], deps = [ @@ -1466,7 +1510,7 @@ filegroup( srcs = [ "src/sta/tcl/Util.tcl", ], - visibility = ["@org_theopenroadproject//:__subpackages__"], + visibility = ["//visibility:private"], ) ## OpenSTA