Added conditional compilation for each OS

This commit is contained in:
Eduard Urbach 2024-08-12 14:17:24 +02:00
parent 985fa5ae14
commit de223908d7
Signed by: akyoto
GPG Key ID: C874F672B1AF20C0
3 changed files with 36 additions and 0 deletions

27
lib/sys/sys_mac.q Normal file
View File

@ -0,0 +1,27 @@
read(fd Int, address Pointer, length Int) -> Int {
return syscall(0x2000003, fd, address, length)
}
write(fd Int, address Pointer, length Int) -> Int {
return syscall(0x2000004, fd, address, length)
}
open(file Pointer, flags Int, mode Int) -> Int {
return syscall(0x2000005, file, flags, mode)
}
close(fd Int) -> Int {
return syscall(0x2000006, fd)
}
mmap(address Int, length Int, protection Int, flags Int) -> Pointer {
return syscall(0x20000C5, address, length, protection, flags)
}
munmap(address Pointer, length Int) -> Int {
return syscall(0x2000049, address, length)
}
exit(status Int) {
syscall(0x2000001, status)
}

View File

@ -4,6 +4,7 @@ import (
"path/filepath"
"strings"
"git.akyoto.dev/cli/q/src/config"
"git.akyoto.dev/cli/q/src/fs"
)
@ -20,6 +21,14 @@ func (s *Scanner) queueDirectory(directory string, pkg string) {
return
}
if strings.HasSuffix(name, "_linux.q") && config.TargetOS != "linux" {
return
}
if strings.HasSuffix(name, "_mac.q") && config.TargetOS != "mac" {
return
}
fullPath := filepath.Join(directory, name)
s.queueFile(fullPath, pkg)
})