diff --git a/SConstruct b/SConstruct index bd62d48..b1f3162 100644 --- a/SConstruct +++ b/SConstruct @@ -21,13 +21,25 @@ else: opts = Variables([], ARGUMENTS) -opts.Add(EnumVariable('platform', 'Target platform', host_platform, ('linux', 'osx', 'windows'))) +opts.Add(EnumVariable('platform', 'Target platform', host_platform, + allowed_values=('linux', 'osx', 'windows'), + ignorecase=2)) opts.Add(EnumVariable('bits', 'Target platform bits', 'default', ('default', '32', '64'))) opts.Add(BoolVariable('use_llvm', 'Use the LLVM compiler - only effective when targeting Linux', False)) opts.Add(BoolVariable('use_mingw', 'Use the MinGW compiler - only effective on Windows', False)) # Must be the same setting as used for cpp_bindings -opts.Add(EnumVariable('target', 'Compilation target', 'debug', ('debug', 'release'))) -opts.Add(PathVariable('headers_dir', 'Path to the directory containing Godot headers', 'godot_headers')) +opts.Add(EnumVariable('target', 'Compilation target', 'debug', + allowed_values=('debug', 'release'), + ignorecase=2)) +opts.Add(PathVariable('headers_dir', 'Path to the directory containing Godot headers', 'godot_headers', PathVariable.PathisDir)) +opts.Add(BoolVariable('use_custom_api_file', 'Use a custom JSON API file', False)) +opts.Add(PathVariable('custom_api_file', 'Path to the custom JSON API file', '', PathVariable.PathIsFile)) +opts.Add(BoolVariable('generate_bindings', 'Generate GDNative API bindings', False)) + +unknown = vars.UnknownVariables() +if unknown: + print "Unknown variables:", unknown.keys() + Exit(1) env = Environment() opts.Update(env) @@ -101,22 +113,18 @@ env.Append(CPPPATH=['.', env['headers_dir'], 'include', 'include/gen', 'include/ # Generate bindings? json_api_file = '' -# Generate bindings? -json_api_file = '' - -if ARGUMENTS.get('use_custom_api_file', 'no') == 'yes': - json_api_file = ARGUMENTS.get('custom_api_file', '') +if env['use_custom_api_file']: + json_api_file = env['custom_api_file'] else: json_api_file = os.path.join(os.getcwd(), 'godot_headers', 'api.json') -if ARGUMENTS.get('generate_bindings', 'no') == 'yes': +if env['generate_bindings']: # Actually create the bindings here import binding_generator binding_generator.generate_bindings(json_api_file) - # source to compile sources = [] add_sources(sources, 'src/core', 'cpp')