2020-02-27 13:18:25 +02:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
< title > 3/is< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
< link href = "inweb.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< / head >
< body >
<!-- Weave of '3/is2' generated by 7 -->
< ul class = "crumbs" > < li > < a href = "../webs.html" > ★ < / a > < / li > < li > < a href = "index.html" > inbuild< / a > < / li > < li > < a href = "index.html#3" > Chapter 3: Incremental Builds< / a > < / li > < li > < b > Inform7 Skill< / b > < / li > < / ul > < p class = "purpose" > A build step is a task such as running inform7 or inblorb on some file.< / p >
< p class = "inwebparagraph" > < a id = "SP1" > < / a > < b > § 1. < / b > < / p >
< pre class = "display" >
< span class = "reserved" > build_skill< / span > < span class = "plain" > *< / span > < span class = "identifier" > compile_using_inform7_skill< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > Inform7Skill::create< / span > < span class = "plain" > (< / span > < span class = "reserved" > void< / span > < span class = "plain" > ) {< / span >
< span class = "identifier" > compile_using_inform7_skill< / span > < span class = "plain" > = < / span > < span class = "functiontext" > BuildSteps::new_skill< / span > < span class = "plain" > (< / span > < span class = "identifier" > I< / span > < span class = "string" > "compile using inform7"< / span > < span class = "plain" > );< / span >
< span class = "identifier" > METHOD_ADD< / span > < span class = "plain" > (< / span > < span class = "identifier" > compile_using_inform7_skill< / span > < span class = "plain" > , < / span > < span class = "constant" > BUILD_SKILL_COMMAND_MTID< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Inform7Skill::inform7_via_shell< / span > < span class = "plain" > );< / span >
< span class = "identifier" > METHOD_ADD< / span > < span class = "plain" > (< / span > < span class = "identifier" > compile_using_inform7_skill< / span > < span class = "plain" > , < / span > < span class = "constant" > BUILD_SKILL_INTERNAL_MTID< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Inform7Skill::inform7_internally< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "functiontext" > Inform7Skill::inform7_via_shell< / span > < span class = "plain" > (< / span > < span class = "reserved" > build_skill< / span > < span class = "plain" > *< / span > < span class = "identifier" > skill< / span > < span class = "plain" > , < / span > < span class = "reserved" > build_step< / span > < span class = "plain" > *< / span > < span class = "identifier" > S< / span > < span class = "plain" > , < / span > < span class = "identifier" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "reserved" > build_methodology< / span > < span class = "plain" > *< / span > < span class = "identifier" > meth< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > inform_project< / span > < span class = "plain" > *< / span > < span class = "identifier" > project< / span > < span class = "plain" > = < / span > < span class = "functiontext" > ProjectBundleManager::from_copy< / span > < span class = "plain" > (< / span > < span class = "identifier" > S< / span > < span class = "plain" > -< / span > < span class = "element" > > associated_copy< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > project< / span > < span class = "plain" > == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ) < / span > < span class = "identifier" > project< / span > < span class = "plain" > = < / span > < span class = "functiontext" > ProjectFileManager::from_copy< / span > < span class = "plain" > (< / span > < span class = "identifier" > S< / span > < span class = "plain" > -< / span > < span class = "element" > > associated_copy< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > project< / span > < span class = "plain" > == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ) < / span > < span class = "identifier" > internal_error< / span > < span class = "plain" > (< / span > < span class = "string" > "no project"< / span > < span class = "plain" > );< / span >
< span class = "identifier" > Shell::quote_file< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "identifier" > meth< / span > < span class = "plain" > -< / span > < span class = "element" > > to_inform7< / span > < span class = "plain" > );< / span >
2020-03-11 02:21:09 +02:00
< span class = "reserved" > kit_dependency< / span > < span class = "plain" > *< / span > < span class = "identifier" > kd< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > LOOP_OVER_LINKED_LIST< / span > < span class = "plain" > (< / span > < span class = "identifier" > kd< / span > < span class = "plain" > , < / span > < span class = "reserved" > kit_dependency< / span > < span class = "plain" > , < / span > < span class = "identifier" > project< / span > < span class = "plain" > -< / span > < span class = "element" > > kits_to_include< / span > < span class = "plain" > )< / span >
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "string" > "-kit %S "< / span > < span class = "plain" > , < / span > < span class = "identifier" > kd< / span > < span class = "plain" > -< / span > < span class = "element" > > kit< / span > < span class = "plain" > -< / span > < span class = "element" > > as_copy< / span > < span class = "plain" > -< / span > < span class = "element" > > edition< / span > < span class = "plain" > -< / span > < span class = "element" > > work< / span > < span class = "plain" > -< / span > < span class = "element" > > title< / span > < span class = "plain" > );< / span >
2020-02-27 13:18:25 +02:00
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "string" > "-format=%S "< / span > < span class = "plain" > , < / span > < span class = "identifier" > TargetVMs::get_unblorbed_extension< / span > < span class = "plain" > (< / span > < span class = "identifier" > S< / span > < span class = "plain" > -< / span > < span class = "element" > > for_vm< / span > < span class = "plain" > ));< / span >
< span class = "reserved" > inbuild_nest< / span > < span class = "plain" > *< / span > < span class = "identifier" > N< / span > < span class = "plain" > ;< / span >
< span class = "identifier" > LOOP_OVER_LINKED_LIST< / span > < span class = "plain" > (< / span > < span class = "identifier" > N< / span > < span class = "plain" > , < / span > < span class = "reserved" > inbuild_nest< / span > < span class = "plain" > , < / span > < span class = "identifier" > S< / span > < span class = "plain" > -< / span > < span class = "element" > > search_path< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > switch< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Nests::get_tag< / span > < span class = "plain" > (< / span > < span class = "identifier" > N< / span > < span class = "plain" > )) {< / span >
< span class = "reserved" > case< / span > < span class = "plain" > < / span > < span class = "constant" > MATERIALS_NEST_TAG< / span > < span class = "plain" > : < / span > < span class = "reserved" > continue< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > case< / span > < span class = "plain" > < / span > < span class = "constant" > EXTERNAL_NEST_TAG< / span > < span class = "plain" > : < / span > < span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "string" > "-external "< / span > < span class = "plain" > ); < / span > < span class = "reserved" > break< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > case< / span > < span class = "plain" > < / span > < span class = "constant" > GENERIC_NEST_TAG< / span > < span class = "plain" > : < / span > < span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "string" > "-nest "< / span > < span class = "plain" > ); < / span > < span class = "reserved" > break< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > case< / span > < span class = "plain" > < / span > < span class = "constant" > INTERNAL_NEST_TAG< / span > < span class = "plain" > : < / span > < span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "string" > "-internal "< / span > < span class = "plain" > ); < / span > < span class = "reserved" > break< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > default< / span > < span class = "plain" > : < / span > < span class = "identifier" > internal_error< / span > < span class = "plain" > (< / span > < span class = "string" > "mystery nest"< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "identifier" > Shell::quote_path< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "identifier" > N< / span > < span class = "plain" > -< / span > < span class = "element" > > location< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "string" > "-project "< / span > < span class = "plain" > );< / span >
< span class = "identifier" > Shell::quote_path< / span > < span class = "plain" > (< / span > < span class = "identifier" > command< / span > < span class = "plain" > , < / span > < span class = "identifier" > S< / span > < span class = "plain" > -< / span > < span class = "element" > > associated_copy< / span > < span class = "plain" > -< / span > < span class = "element" > > location_if_path< / span > < span class = "plain" > );< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > TRUE< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "functiontext" > Inform7Skill::inform7_internally< / span > < span class = "plain" > (< / span > < span class = "reserved" > build_skill< / span > < span class = "plain" > *< / span > < span class = "identifier" > skill< / span > < span class = "plain" > , < / span > < span class = "reserved" > build_step< / span > < span class = "plain" > *< / span > < span class = "identifier" > S< / span > < span class = "plain" > , < / span > < span class = "reserved" > build_methodology< / span > < span class = "plain" > *< / span > < span class = "identifier" > meth< / span > < span class = "plain" > ) {< / span >
< span class = "plain" > #< / span > < span class = "identifier" > ifdef< / span > < span class = "plain" > < / span > < span class = "identifier" > CORE_MODULE< / span >
2020-03-11 02:21:09 +02:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > Task::carry_out< / span > < span class = "plain" > (< / span > < span class = "identifier" > S< / span > < span class = "plain" > );< / span >
2020-02-27 13:18:25 +02:00
< span class = "plain" > #< / span > < span class = "identifier" > endif< / span >
2020-03-11 02:21:09 +02:00
< span class = "plain" > #< / span > < span class = "identifier" > ifndef< / span > < span class = "plain" > < / span > < span class = "identifier" > CORE_MODULE< / span >
2020-02-27 13:18:25 +02:00
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > FALSE< / span > < span class = "plain" > ;< / span >
2020-03-11 02:21:09 +02:00
< span class = "plain" > #< / span > < span class = "identifier" > endif< / span >
2020-02-27 13:18:25 +02:00
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > The function Inform7Skill::create is used in 1/im (< a href = "1-im.html#SP3" > § 3< / a > ).< / p >
< p class = "endnote" > The function Inform7Skill::inform7_via_shell appears nowhere else.< / p >
< p class = "endnote" > The function Inform7Skill::inform7_internally appears nowhere else.< / p >
< hr class = "tocbar" >
< ul class = "toc" > < li > < a href = "3-is.html" > Back to 'Inter Skill'< / a > < / li > < li > < a href = "3-is3.html" > Continue with 'Inform6 Skill'< / a > < / li > < / ul > < hr class = "tocbar" >
<!-- End of weave -->
< / body >
< / html >