@@ -49,22 +49,48 @@ type BuilderFactory struct {
4949// NewBuilderFactory creates a factory with all standard builders registered. 
5050// 
5151// The standard builders are registered in this order: 
52- //  1. ExtConfBuilder - extconf.rb files 
53- //  2. ConfigureBuilder - configure scripts 
52+ // 
53+ // Traditional Ruby builders: 
54+ //  1. ExtConfBuilder - extconf.rb files (C/C++) 
55+ //  2. ConfigureBuilder - configure scripts (autotools) 
5456//  3. RakeBuilder - Rakefile and mkrf_conf.rb 
55- //  4. CmakeBuilder - CMakeLists.txt 
56- //  5. CargoBuilder - Cargo.toml 
57+ // 
58+ // Modern build systems: 
59+ //  4. CMakeBuilder - CMakeLists.txt 
60+ //  5. CargoBuilder - Cargo.toml (Rust) 
61+ //  6. MakefileBuilder - Plain Makefile 
62+ //  7. GoBuilder - Go with CGO 
63+ //  8. JavaBuilder - Java/JRuby extensions 
64+ // 
65+ // Modern languages (generic builders): 
66+ //  9. CrystalBuilder - Crystal language 
67+ // 
68+ // 10. ZigBuilder - Zig language 
69+ // 11. SwiftBuilder - Swift language 
5770// 
5871// This is the recommended way to create a BuilderFactory for most use cases. 
72+ // Builders are checked in registration order, so more specific builders 
73+ // should be registered first. 
5974func  NewBuilderFactory () * BuilderFactory  {
6075	factory  :=  & BuilderFactory {}
6176
6277	// Register all standard builders in priority order 
78+ 	// Traditional Ruby builders first (most common) 
6379	factory .Register (& ExtConfBuilder {})
6480	factory .Register (& ConfigureBuilder {})
6581	factory .Register (& RakeBuilder {})
82+ 
83+ 	// Modern build systems 
6684	factory .Register (& CmakeBuilder {})
6785	factory .Register (& CargoBuilder {})
86+ 	factory .Register (& MakefileBuilder {})
87+ 	factory .Register (& GoBuilder {})
88+ 	factory .Register (& JavaBuilder {})
89+ 
90+ 	// Modern languages via generic builders 
91+ 	factory .Register (NewCrystalBuilder ())
92+ 	factory .Register (NewZigBuilder ())
93+ 	factory .Register (NewSwiftBuilder ())
6894
6995	return  factory 
7096}
0 commit comments