@@ -67,6 +67,7 @@ using std::string;
6767 X(par) \
6868 X(rcx) \
6969 X(rmp) \
70+ X(cgt) \
7071 X(stt) \
7172 X(psm) \
7273 X(pdn) \
@@ -88,6 +89,7 @@ static const char* log_filename = nullptr;
8889static const char * metrics_filename = nullptr ;
8990static bool no_settings = false ;
9091static bool minimize = false ;
92+ static bool abc_initialized = false ;
9193
9294static const char * init_filename = " .openroad" ;
9395
@@ -167,6 +169,12 @@ static void initPython()
167169}
168170#endif
169171
172+ namespace abc {
173+ // Forward declare instead of including to avoid warnings from ABC
174+ void Abc_Start ();
175+ void Abc_Stop ();
176+ } // namespace abc
177+
170178static volatile sig_atomic_t fatal_error_in_progress = 0 ;
171179
172180// When we enter through main() we have a single tech and design.
@@ -301,6 +309,10 @@ int main(int argc, char* argv[])
301309 // Set argc to 1 so Tcl_Main doesn't source any files.
302310 // Tcl_Main never returns.
303311 Tcl_Main (1 , argv, ord::tclAppInit);
312+
313+ if (abc_initialized) {
314+ abc::Abc_Stop ();
315+ }
304316 return 0 ;
305317}
306318
@@ -516,6 +528,14 @@ int ord::tclInit(Tcl_Interp* interp)
516528 return tclAppInit (cmd_argc, cmd_argv, init_filename, interp);
517529}
518530
531+ void ord::abcInit ()
532+ {
533+ if (!abc_initialized) {
534+ abc::Abc_Start ();
535+ abc_initialized = true ;
536+ }
537+ }
538+
519539static void showUsage (const char * prog, const char * init_filename)
520540{
521541 printf (" Usage: %s [-help] [-version] [-no_init] [-no_splash] [-exit] " , prog);
0 commit comments