src/Pure/Tools/build.scala
changeset 67030 a9859e879f38
parent 67026 687c822ee5e3
child 67052 caf87d4b9b61
equal deleted inserted replaced
67029:d6d9fd2559ce 67030:a9859e879f38
   389       val digests =
   389       val digests =
   390         full_sessions(name).meta_digest :: deps.sources(name) ::: deps.imported_sources(name)
   390         full_sessions(name).meta_digest :: deps.sources(name) ::: deps.imported_sources(name)
   391       SHA1.digest(cat_lines(digests.map(_.toString).sorted)).toString
   391       SHA1.digest(cat_lines(digests.map(_.toString).sorted)).toString
   392     }
   392     }
   393 
   393 
       
   394     val selection1 =
       
   395       Sessions.Selection(requirements, all_sessions, base_sessions, exclude_session_groups,
       
   396         exclude_sessions, session_groups, sessions) ++ selection
       
   397 
   394     val (selected_sessions, deps) =
   398     val (selected_sessions, deps) =
   395     {
   399     {
   396       val selected_sessions0 =
   400       val selected_sessions0 = full_sessions.selection(selection1)
   397         full_sessions.selection(
       
   398             Sessions.Selection(requirements, all_sessions, base_sessions, exclude_session_groups,
       
   399               exclude_sessions, session_groups, sessions) ++ selection)
       
   400 
       
   401       val deps0 =
   401       val deps0 =
   402         Sessions.deps(selected_sessions0, full_sessions.global_theories,
   402         Sessions.deps(selected_sessions0, full_sessions.global_theories,
   403           progress = progress, inlined_files = true, verbose = verbose,
   403           progress = progress, inlined_files = true, verbose = verbose,
   404           list_files = list_files, check_keywords = check_keywords).check_errors
   404           list_files = list_files, check_keywords = check_keywords).check_errors
   405 
   405 
   448 
   448 
   449     store.prepare_output()
   449     store.prepare_output()
   450 
   450 
   451     // optional cleanup
   451     // optional cleanup
   452     if (clean_build) {
   452     if (clean_build) {
   453       for (name <- full_sessions.build_descendants(selected_sessions.build_topological_order)) {
   453       for (name <- full_sessions.build_descendants(full_sessions.build_selection(selection1))) {
   454         val files =
   454         val files =
   455           List(Path.basic(name), store.database(name), store.log(name), store.log_gz(name)).
   455           List(Path.basic(name), store.database(name), store.log(name), store.log_gz(name)).
   456             map(store.output_dir + _).filter(_.is_file)
   456             map(store.output_dir + _).filter(_.is_file)
   457         if (files.nonEmpty) progress.echo("Cleaning " + name + " ...")
   457         if (files.nonEmpty) progress.echo("Cleaning " + name + " ...")
   458         if (!files.forall(p => p.file.delete)) progress.echo(name + " FAILED to delete")
   458         if (!files.forall(p => p.file.delete)) progress.echo(name + " FAILED to delete")