re-write to use python, hopefully this is portable enough, tested with python 3.6.5 anf 2.7.18
This commit is contained in:
		
							parent
							
								
									b34650ea31
								
							
						
					
					
						commit
						ff6031a8ea
					
				
							
								
								
									
										16
									
								
								src/_cmake
								
								
								
								
							
							
						
						
									
										16
									
								
								src/_cmake
								
								
								
								
							|  | @ -141,13 +141,21 @@ _cmake_generator_options() { | ||||||
| # -------------- | # -------------- | ||||||
| (( $+functions[_cmake_presets] )) || | (( $+functions[_cmake_presets] )) || | ||||||
| _cmake_presets() { | _cmake_presets() { | ||||||
|   local invoke; invoke=(${words[@]}) | 
 | ||||||
|   # TODO: remove all arguments -* except -S |   local parse_presets; parse_presets=' | ||||||
|   invoke[$CURRENT]=--list-presets | import json     | ||||||
|  | import os     | ||||||
|  | try:     | ||||||
|  |     with open("CMakePresets.json") as preset_file:     | ||||||
|  |         print(os.linesep.join([ x["name"] + ":" + x.get("description", "") for x in json.load(preset_file)["configurePresets"]])) | ||||||
|  | except:     | ||||||
|  |     pass     | ||||||
|  | 
 | ||||||
|  | ' | ||||||
| 
 | 
 | ||||||
|   # TODO: Problems with quotes need eval |   # TODO: Problems with quotes need eval | ||||||
|   # would need a way to exec the array |   # would need a way to exec the array | ||||||
|   local list_presets; list_presets=(${(f)"$(eval "${invoke[@]} 2> /dev/null" | grep -Po '(?<=\").*(?=")' )"}) |   local list_presets; list_presets=(${(f)"$(eval python <<< $parse_presets)"}) | ||||||
| 
 | 
 | ||||||
|   _describe 'presets' list_presets |   _describe 'presets' list_presets | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue