std.Build: fix regression in Step.ConfigHeader

Commit 0b7123f41d66bdda4da29d59623299d47b29aefb regressed the
`include_path` option of ConfigHeader which is intended to set the path,
including subdirectories, that C code would pass to an include
directive.

For example if it passes

    .include_path = "config/config.h",

Then the C code should be able to have

    #include "config/config.h"

This regressed https://github.com/andrewrk/nasm/ but this commit fixes
it.
This commit is contained in:
Andrew Kelley 2024-04-07 21:59:29 -07:00
parent 6dcbad780c
commit fbb38a7682

View File

@ -694,7 +694,9 @@ pub fn appendZigProcessFlags(
}
},
.config_header_step => |config_header| {
try zig_args.appendSlice(&.{ "-I", std.fs.path.dirname(config_header.output_file.getPath()).? });
const full_file_path = config_header.output_file.getPath();
const header_dir_path = full_file_path[0 .. full_file_path.len - config_header.include_path.len];
try zig_args.appendSlice(&.{ "-I", header_dir_path });
},
}
}