| 
									
										
										
										
											2022-04-25 07:35:26 -06:00
										 |  |  | #!/usr/bin/env node
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const child_process = require('child_process'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const XCODE_VERSIONS = { | 
					
						
							|  |  |  |   "macos-10.15": { | 
					
						
							|  |  |  |       webkit: '11.7', | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   "macos-11": { | 
					
						
							|  |  |  |       webkit: '12.5', // WebKit strongly requires xcode 12.5 and not higher on MacOS 11
 | 
					
						
							|  |  |  |      firefox: '13.2', // As of Oct 2021 building Firefox requires XCode 13
 | 
					
						
							|  |  |  |       ffmpeg: '13.2', | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   "macos-12": { | 
					
						
							| 
									
										
										
										
											2022-05-10 05:05:06 -06:00
										 |  |  |       webkit: '13.2', // WebKit requires xcode 13.2 to work on MacOS 12.2. 
 | 
					
						
							| 
									
										
										
										
											2022-04-25 07:35:26 -06:00
										 |  |  |      firefox: '13.2', // As of Oct 2021 building Firefox requires XCode 13
 | 
					
						
							|  |  |  |     chromium: '13.3', // As of Apr 2022 Chromium requires Xcode13.3
 | 
					
						
							|  |  |  |       ffmpeg: '13.2', | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const [major, minor, patch] = child_process.execSync(`sw_vers -productVersion`).toString().trim().split('.'); | 
					
						
							|  |  |  | const browserName = process.argv[2]; | 
					
						
							|  |  |  | const macosVersion = major === '10' ? `macos-${major}.${minor}` : `macos-${major}`; | 
					
						
							|  |  |  | const versions = XCODE_VERSIONS[macosVersion]; | 
					
						
							|  |  |  | if (!versions || !versions[browserName.toLowerCase()]) | 
					
						
							|  |  |  |   throw new Error(`Compilation of ${browserName} is not supported on ${macosVersion}`); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | console.log(versions[browserName.toLowerCase()]); | 
					
						
							|  |  |  | 
 |