55use itertools:: Itertools ;
66use std:: collections:: BTreeSet ;
77
8+ use stone_recipe:: macros:: BuiltinDefinition as Def ;
89use stone_recipe:: {
910 script,
1011 tuning:: { self , Toolchain } ,
@@ -140,20 +141,20 @@ impl Phase {
140141 parser. add_macros ( macros. clone ( ) ) ;
141142 }
142143
143- parser. add_definition ( "name" , & recipe. parsed . source . name ) ;
144- parser. add_definition ( "version" , & recipe. parsed . source . version ) ;
145- parser. add_definition ( "release" , recipe. parsed . source . release ) ;
146- parser. add_definition ( "jobs" , num_jobs) ;
147- parser. add_definition ( "pkgdir" , paths. recipe ( ) . guest . join ( "pkg" ) . display ( ) ) ;
148- parser. add_definition ( "sourcedir" , paths. upstreams ( ) . guest . display ( ) ) ;
149- parser. add_definition ( "installroot" , paths. install ( ) . guest . display ( ) ) ;
150- parser. add_definition ( "buildroot" , build_dir. display ( ) ) ;
151- parser. add_definition ( "workdir" , work_dir. display ( ) ) ;
144+ parser. add_definition ( Def :: Name , & recipe. parsed . source . name ) ;
145+ parser. add_definition ( Def :: Version , & recipe. parsed . source . version ) ;
146+ parser. add_definition ( Def :: Release , recipe. parsed . source . release ) ;
147+ parser. add_definition ( Def :: Jobs , num_jobs) ;
148+ parser. add_definition ( Def :: PkgDir , paths. recipe ( ) . guest . join ( "pkg" ) . display ( ) ) ;
149+ parser. add_definition ( Def :: SourceDir , paths. upstreams ( ) . guest . display ( ) ) ;
150+ parser. add_definition ( Def :: InstallRoot , paths. install ( ) . guest . display ( ) ) ;
151+ parser. add_definition ( Def :: BuildRoot , build_dir. display ( ) ) ;
152+ parser. add_definition ( Def :: WorkDir , work_dir. display ( ) ) ;
152153
153- parser. add_definition ( "compiler_cache" , "/mason/ccache" ) ;
154- parser. add_definition ( "scompiler_cache" , "/mason/sccache" ) ;
154+ parser. add_definition ( Def :: CompilerCache , "/mason/ccache" ) ;
155+ parser. add_definition ( Def :: SCompilerCache , "/mason/sccache" ) ;
155156
156- parser. add_definition ( "sourcedateepoch" , recipe. build_time . timestamp ( ) ) ;
157+ parser. add_definition ( Def :: SourceDateEpoch , recipe. build_time . timestamp ( ) ) ;
157158
158159 let path = if ccache {
159160 "/usr/lib/ccache/bin:/usr/bin:/bin"
@@ -162,63 +163,63 @@ impl Phase {
162163 } ;
163164
164165 if ccache {
165- parser. add_definition ( "rustc_wrapper" , "/usr/bin/sccache" ) ;
166+ parser. add_definition ( Def :: RustcWrapper , "/usr/bin/sccache" ) ;
166167 } else {
167- parser. add_definition ( "rustc_wrapper" , "" ) ;
168+ parser. add_definition ( Def :: RustcWrapper , "" ) ;
168169 }
169170
170171 /* Set the relevant compilers */
171172 if matches ! ( recipe. parsed. options. toolchain, Toolchain :: Llvm ) {
172- parser. add_definition ( "compiler_c" , "clang" ) ;
173- parser. add_definition ( "compiler_cxx" , "clang++" ) ;
174- parser. add_definition ( "compiler_objc" , "clang" ) ;
175- parser. add_definition ( "compiler_objcxx" , "clang++" ) ;
176- parser. add_definition ( "compiler_cpp" , "clang-cpp" ) ;
177- parser. add_definition ( "compiler_objcpp" , "clang -E -" ) ;
178- parser. add_definition ( "compiler_objcxxcpp" , "clang++ -E" ) ;
179- parser. add_definition ( "compiler_d" , "ldc2" ) ;
180- parser. add_definition ( "compiler_ar" , "llvm-ar" ) ;
181- parser. add_definition ( "compiler_objcopy" , "llvm-objcopy" ) ;
182- parser. add_definition ( "compiler_nm" , "llvm-nm" ) ;
183- parser. add_definition ( "compiler_ranlib" , "llvm-ranlib" ) ;
184- parser. add_definition ( "compiler_strip" , "llvm-strip" ) ;
173+ parser. add_definition ( Def :: CompilerC , "clang" ) ;
174+ parser. add_definition ( Def :: CompilerCxx , "clang++" ) ;
175+ parser. add_definition ( Def :: CompilerObjC , "clang" ) ;
176+ parser. add_definition ( Def :: CompilerObjCxx , "clang++" ) ;
177+ parser. add_definition ( Def :: CompilerCpp , "clang-cpp" ) ;
178+ parser. add_definition ( Def :: CompilerObjCpp , "clang -E -" ) ;
179+ parser. add_definition ( Def :: CompilerObjCxxCpp , "clang++ -E" ) ;
180+ parser. add_definition ( Def :: CompilerD , "ldc2" ) ;
181+ parser. add_definition ( Def :: CompilerAr , "llvm-ar" ) ;
182+ parser. add_definition ( Def :: CompilerObjcopy , "llvm-objcopy" ) ;
183+ parser. add_definition ( Def :: CompilerNm , "llvm-nm" ) ;
184+ parser. add_definition ( Def :: CompilerRanlib , "llvm-ranlib" ) ;
185+ parser. add_definition ( Def :: CompilerStrip , "llvm-strip" ) ;
185186 } else {
186- parser. add_definition ( "compiler_c" , "gcc" ) ;
187- parser. add_definition ( "compiler_cxx" , "g++" ) ;
188- parser. add_definition ( "compiler_objc" , "gcc" ) ;
189- parser. add_definition ( "compiler_objcxx" , "g++" ) ;
190- parser. add_definition ( "compiler_cpp" , "gcc -E" ) ;
191- parser. add_definition ( "compiler_objcpp" , "gcc -E" ) ;
192- parser. add_definition ( "compiler_objcxxcpp" , "g++ -E" ) ;
193- parser. add_definition ( "compiler_d" , "ldc2" ) ; // FIXME: GDC
194- parser. add_definition ( "compiler_ar" , "gcc-ar" ) ;
195- parser. add_definition ( "compiler_objcopy" , "objcopy" ) ;
196- parser. add_definition ( "compiler_nm" , "gcc-nm" ) ;
197- parser. add_definition ( "compiler_ranlib" , "gcc-ranlib" ) ;
198- parser. add_definition ( "compiler_strip" , "strip" ) ;
187+ parser. add_definition ( Def :: CompilerC , "gcc" ) ;
188+ parser. add_definition ( Def :: CompilerCxx , "g++" ) ;
189+ parser. add_definition ( Def :: CompilerObjC , "gcc" ) ;
190+ parser. add_definition ( Def :: CompilerObjCxx , "g++" ) ;
191+ parser. add_definition ( Def :: CompilerCpp , "gcc -E" ) ;
192+ parser. add_definition ( Def :: CompilerObjCpp , "gcc -E" ) ;
193+ parser. add_definition ( Def :: CompilerObjCxxCpp , "g++ -E" ) ;
194+ parser. add_definition ( Def :: CompilerD , "ldc2" ) ; // FIXME: GDC
195+ parser. add_definition ( Def :: CompilerAr , "gcc-ar" ) ;
196+ parser. add_definition ( Def :: CompilerObjcopy , "objcopy" ) ;
197+ parser. add_definition ( Def :: CompilerNm , "gcc-nm" ) ;
198+ parser. add_definition ( Def :: CompilerRanlib , "gcc-ranlib" ) ;
199+ parser. add_definition ( Def :: CompilerStrip , "strip" ) ;
199200 }
200- parser. add_definition ( "compiler_path" , path) ;
201+ parser. add_definition ( Def :: CompilerPath , path) ;
201202
202203 if recipe. parsed . mold {
203- parser. add_definition ( "compiler_ld" , "ld.mold" ) ;
204+ parser. add_definition ( Def :: CompilerLd , "ld.mold" ) ;
204205 } else if matches ! ( recipe. parsed. options. toolchain, Toolchain :: Llvm ) {
205- parser. add_definition ( "compiler_ld" , "ld.lld" ) ;
206+ parser. add_definition ( Def :: CompilerLd , "ld.lld" ) ;
206207 } else {
207- parser. add_definition ( "compiler_ld" , "ld.bfd" ) ;
208+ parser. add_definition ( Def :: CompilerLd , "ld.bfd" ) ;
208209 }
209210
210211 /* Allow packagers to do stage specific actions in a pgo build */
211212 if matches ! ( pgo_stage, Some ( pgo:: Stage :: One ) ) {
212- parser. add_definition ( "pgo_stage" , "ONE" ) ;
213+ parser. add_definition ( Def :: PgoStage , "ONE" ) ;
213214 } else if matches ! ( pgo_stage, Some ( pgo:: Stage :: Two ) ) {
214- parser. add_definition ( "pgo_stage" , "TWO" ) ;
215+ parser. add_definition ( Def :: PgoStage , "TWO" ) ;
215216 } else if matches ! ( pgo_stage, Some ( pgo:: Stage :: Use ) ) {
216- parser. add_definition ( "pgo_stage" , "USE" ) ;
217+ parser. add_definition ( Def :: PgoStage , "USE" ) ;
217218 } else {
218- parser. add_definition ( "pgo_stage" , "NONE" ) ;
219+ parser. add_definition ( Def :: PgoStage , "NONE" ) ;
219220 }
220221
221- parser. add_definition ( "pgo_dir" , format ! ( "{}-pgo" , build_dir. display( ) ) ) ;
222+ parser. add_definition ( Def :: PgoDir , format ! ( "{}-pgo" , build_dir. display( ) ) ) ;
222223
223224 add_tuning ( target, pgo_stage, recipe, macros, & mut parser) ?;
224225
@@ -388,12 +389,12 @@ fn add_tuning(
388389 rustflags. push_str ( " -Clink-arg=-fuse-ld=mold" ) ;
389390 }
390391
391- parser. add_definition ( "cflags" , cflags) ;
392- parser. add_definition ( "cxxflags" , cxxflags) ;
393- parser. add_definition ( "fflags" , fflags) ;
394- parser. add_definition ( "ldflags" , ldflags) ;
395- parser. add_definition ( "dflags" , dflags) ;
396- parser. add_definition ( "rustflags" , rustflags) ;
392+ parser. add_definition ( Def :: CFlags , cflags) ;
393+ parser. add_definition ( Def :: CxxFlags , cxxflags) ;
394+ parser. add_definition ( Def :: FFlags , fflags) ;
395+ parser. add_definition ( Def :: LdFlags , ldflags) ;
396+ parser. add_definition ( Def :: DFlags , dflags) ;
397+ parser. add_definition ( Def :: RustFlags , rustflags) ;
397398
398399 Ok ( ( ) )
399400}
0 commit comments