Object files have platform specific extensions

This commit is contained in:
Sasha Koshka 2024-03-30 22:48:33 -04:00
parent b6b0a1e592
commit 810175b6c9
1 changed files with 11 additions and 2 deletions

View File

@ -29,7 +29,7 @@ func FiletypeFromString (ext string) (Filetype, bool) {
// FiletypeFromExt returns a filetype based on the given filename extension.
func FiletypeFromExt (target generator.Target, ext string) (Filetype, bool) {
switch ext {
case ".o": return FiletypeObject, true
case targetObjExt(target): return FiletypeObject, true
case targetSoExt(target): return FiletypeLibrary, true
case ".s": return FiletypeAssembly, true
case ".ll": return FiletypeIR, true
@ -55,7 +55,7 @@ func (filetype Filetype) String () string {
func (filetype Filetype) Ext (target generator.Target) string {
switch filetype {
case FiletypeUnknown: return ""
case FiletypeObject: return ".o"
case FiletypeObject: return targetObjExt(target)
case FiletypeLibrary: return targetSoExt(target)
case FiletypeAssembly: return ".s"
case FiletypeIR: return ".ll"
@ -77,6 +77,15 @@ func targetSoExt (target generator.Target) string {
}
}
func targetObjExt (target generator.Target) string {
// TODO: more research is required here
switch target.OS {
case "win32": return ".obj"
default: return ".o"
}
}
func targetExeExt (target generator.Target) string {
// TODO: more research is required here
switch target.OS {