vkd3d-compiler: Add a --version option.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2020-07-02 18:13:15 +04:30 committed by Alexandre Julliard
parent 7df61873d0
commit 4a094f5cba
1 changed files with 16 additions and 1 deletions

View File

@ -33,6 +33,7 @@ enum
{ {
OPTION_HELP = CHAR_MAX + 1, OPTION_HELP = CHAR_MAX + 1,
OPTION_STRIP_DEBUG, OPTION_STRIP_DEBUG,
OPTION_VERSION,
}; };
static bool read_shader(struct vkd3d_shader_code *shader, const char *filename) static bool read_shader(struct vkd3d_shader_code *shader, const char *filename)
@ -101,6 +102,7 @@ static void print_usage(const char *program_name)
" -h, --help Display this information and exit.\n" " -h, --help Display this information and exit.\n"
" -o <file> Write the output to <file>.\n" " -o <file> Write the output to <file>.\n"
" --strip-debug Strip debug information from the output.\n" " --strip-debug Strip debug information from the output.\n"
" -V, --version Display version information and exit.\n"
" -- Stop option processing. Any subsequent argument is\n" " -- Stop option processing. Any subsequent argument is\n"
" interpreted as a filename.\n"; " interpreted as a filename.\n";
@ -111,6 +113,7 @@ struct options
{ {
const char *filename; const char *filename;
const char *output_filename; const char *output_filename;
bool print_version;
struct vkd3d_shader_compile_option compile_options[MAX_COMPILE_OPTIONS]; struct vkd3d_shader_compile_option compile_options[MAX_COMPILE_OPTIONS];
unsigned int compile_option_count; unsigned int compile_option_count;
@ -152,6 +155,7 @@ static bool parse_command_line(int argc, char **argv, struct options *options)
{ {
{"help", no_argument, NULL, OPTION_HELP}, {"help", no_argument, NULL, OPTION_HELP},
{"strip-debug", no_argument, NULL, OPTION_STRIP_DEBUG}, {"strip-debug", no_argument, NULL, OPTION_STRIP_DEBUG},
{"version", no_argument, NULL, OPTION_VERSION},
{NULL, 0, NULL, 0}, {NULL, 0, NULL, 0},
}; };
@ -159,7 +163,7 @@ static bool parse_command_line(int argc, char **argv, struct options *options)
for (;;) for (;;)
{ {
if ((option = getopt_long(argc, argv, "ho:", long_options, NULL)) == -1) if ((option = getopt_long(argc, argv, "ho:V", long_options, NULL)) == -1)
break; break;
switch (option) switch (option)
@ -172,6 +176,11 @@ static bool parse_command_line(int argc, char **argv, struct options *options)
add_compile_option(options, VKD3D_SHADER_COMPILE_OPTION_STRIP_DEBUG, 1); add_compile_option(options, VKD3D_SHADER_COMPILE_OPTION_STRIP_DEBUG, 1);
break; break;
case OPTION_VERSION:
case 'V':
options->print_version = true;
return true;
default: default:
return false; return false;
} }
@ -198,6 +207,12 @@ int main(int argc, char **argv)
return 1; return 1;
} }
if (options.print_version)
{
fprintf(stdout, "vkd3d shader compiler version " PACKAGE_VERSION "\n");
return 0;
}
info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO; info.type = VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO;
info.next = NULL; info.next = NULL;
info.source_type = VKD3D_SHADER_SOURCE_DXBC_TPF; info.source_type = VKD3D_SHADER_SOURCE_DXBC_TPF;