src/Pure/Thy/sessions.scala
changeset 67922 9e668ae81f97
parent 67880 e59220a075de
child 68018 3747fe57eb67
equal deleted inserted replaced
67921:1722384ffd4a 67922:9e668ae81f97
   371 
   371 
   372   def base_info(options: Options,
   372   def base_info(options: Options,
   373     session: String,
   373     session: String,
   374     progress: Progress = No_Progress,
   374     progress: Progress = No_Progress,
   375     dirs: List[Path] = Nil,
   375     dirs: List[Path] = Nil,
       
   376     include_sessions: List[String] = Nil,
   376     ancestor_session: Option[String] = None,
   377     ancestor_session: Option[String] = None,
   377     all_known: Boolean = false,
   378     all_known: Boolean = false,
   378     focus_session: Boolean = false,
   379     focus_session: Boolean = false,
   379     required_session: Boolean = false): Base_Info =
   380     required_session: Boolean = false): Base_Info =
   380   {
   381   {
   433 
   434 
   434     val full_sessions1 =
   435     val full_sessions1 =
   435       if (infos1.isEmpty) full_sessions
   436       if (infos1.isEmpty) full_sessions
   436       else load_structure(options, dirs = dirs, infos = infos1)
   437       else load_structure(options, dirs = dirs, infos = infos1)
   437 
   438 
   438     val select_sessions1 =
       
   439       if (focus_session) full_sessions1.imports_descendants(List(session1))
       
   440       else List(session1)
       
   441     val selected_sessions1 =
   439     val selected_sessions1 =
       
   440     {
       
   441       val sel_sessions1 = session1 :: include_sessions
       
   442       val select_sessions1 =
       
   443         if (focus_session) full_sessions1.imports_descendants(sel_sessions1) else sel_sessions1
   442       full_sessions1.selection(Selection(sessions = select_sessions1))
   444       full_sessions1.selection(Selection(sessions = select_sessions1))
       
   445     }
   443 
   446 
   444     val sessions1 = if (all_known) full_sessions1 else selected_sessions1
   447     val sessions1 = if (all_known) full_sessions1 else selected_sessions1
   445     val deps1 = Sessions.deps(sessions1, global_theories, progress = progress)
   448     val deps1 = Sessions.deps(sessions1, global_theories, progress = progress)
   446     val base1 = if (all_known) deps1(session1).copy(known = deps1.all_known) else deps1(session1)
   449     val base1 = deps1(session1).copy(known = deps1.all_known)
   447 
   450 
   448     Base_Info(options, dirs, session1, sessions1, deps1.errors, base1, infos1)
   451     Base_Info(options, dirs, session1, sessions1, deps1.errors, base1, infos1)
   449   }
   452   }
   450 
   453 
   451 
   454