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 |