mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 03:51:18 +00:00
Improve support for Windows cross compilation on targets with case sensitive file systems.
This commit is contained in:
@@ -234,10 +234,13 @@ lib = list((OUTPUT / "VC/Tools/MSVC/").glob("*/lib"))[0]
|
|||||||
|
|
||||||
SDK_OUTPUT.mkdir(exist_ok=True)
|
SDK_OUTPUT.mkdir(exist_ok=True)
|
||||||
|
|
||||||
|
def copy(src, dst):
|
||||||
|
shutil.copy(src, dst.lower())
|
||||||
|
|
||||||
for arch in archs:
|
for arch in archs:
|
||||||
out_dir = SDK_OUTPUT / arch
|
out_dir = SDK_OUTPUT / arch
|
||||||
shutil.copytree(ucrt / arch, out_dir, dirs_exist_ok=True)
|
shutil.copytree(ucrt / arch, out_dir, copy_function=copy, dirs_exist_ok=True)
|
||||||
shutil.copytree(um / arch, out_dir, dirs_exist_ok=True)
|
shutil.copytree(um / arch, out_dir, copy_function=copy, dirs_exist_ok=True)
|
||||||
shutil.copytree(lib / arch, out_dir, dirs_exist_ok=True)
|
shutil.copytree(lib / arch, out_dir, copy_function=copy, dirs_exist_ok=True)
|
||||||
|
|
||||||
print("Congratulations! The 'msvc_sdk' directory was successfully generated.")
|
print("Congratulations! The 'msvc_sdk' directory was successfully generated.")
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
- Allow splat in initializers.
|
- Allow splat in initializers.
|
||||||
- Init command will now add `test-sources` to `project.json` #1520
|
- Init command will now add `test-sources` to `project.json` #1520
|
||||||
- `a++` may be discarded if `a` is optional and ++/-- works for overloaded operators.
|
- `a++` may be discarded if `a` is optional and ++/-- works for overloaded operators.
|
||||||
|
- Improve support for Windows cross compilation on targets with case sensitive file systems.
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
- Fix bug where `a > 0 ? f() : g()` could cause a compiler crash if both returned `void!`.
|
- Fix bug where `a > 0 ? f() : g()` could cause a compiler crash if both returned `void!`.
|
||||||
|
|||||||
@@ -47,11 +47,8 @@ static const char *ld_target(ArchType arch_type)
|
|||||||
default:
|
default:
|
||||||
error_exit("Architecture currently not available for cross linking.");
|
error_exit("Architecture currently not available for cross linking.");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void linker_setup_windows(const char ***args_ref, Linker linker_type, const char *output_file)
|
static void linker_setup_windows(const char ***args_ref, Linker linker_type, const char *output_file)
|
||||||
{
|
{
|
||||||
add_plain_arg(compiler.build.win.use_win_subsystem ? "/SUBSYSTEM:WINDOWS" : "/SUBSYSTEM:CONSOLE");
|
add_plain_arg(compiler.build.win.use_win_subsystem ? "/SUBSYSTEM:WINDOWS" : "/SUBSYSTEM:CONSOLE");
|
||||||
@@ -179,8 +176,8 @@ static void linker_setup_windows(const char ***args_ref, Linker linker_type, con
|
|||||||
linking_add_link(&compiler.linking, "ntdll");
|
linking_add_link(&compiler.linking, "ntdll");
|
||||||
linking_add_link(&compiler.linking, "user32");
|
linking_add_link(&compiler.linking, "user32");
|
||||||
linking_add_link(&compiler.linking, "shell32");
|
linking_add_link(&compiler.linking, "shell32");
|
||||||
linking_add_link(&compiler.linking, "Shlwapi");
|
linking_add_link(&compiler.linking, "shlwapi");
|
||||||
linking_add_link(&compiler.linking, "Ws2_32");
|
linking_add_link(&compiler.linking, "ws2_32");
|
||||||
linking_add_link(&compiler.linking, "legacy_stdio_definitions");
|
linking_add_link(&compiler.linking, "legacy_stdio_definitions");
|
||||||
|
|
||||||
// Do not link any.
|
// Do not link any.
|
||||||
|
|||||||
Reference in New Issue
Block a user