diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2025-06-04 12:22:40 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-04 12:22:40 +0200 |
| commit | 77594a0dc9fccea94cc547ce2b3c02be4fc0bac0 (patch) | |
| tree | 9f665eb56509b5367d1a76ea7f3f52abb8c5c1bf | |
| parent | 17319efd8f938fbc7b7bab8ff4dcdc6b0426c6ec (diff) | |
| parent | 1dffc2efd828c467954913be587656e24f4b99d9 (diff) | |
Merge pull request #5268 from Kelimion/check-js
Allow `odin check examples/all` for js_wasm
| -rw-r--r-- | .github/workflows/ci.yml | 6 | ||||
| -rw-r--r-- | core/compress/common.odin | 3 | ||||
| -rw-r--r-- | core/path/filepath/path_js.odin | 36 | ||||
| -rw-r--r-- | core/sys/info/sysinfo.odin | 2 | ||||
| -rw-r--r-- | core/time/timezone/tz_js.odin | 13 | ||||
| -rw-r--r-- | examples/all/all_js.odin | 148 | ||||
| -rw-r--r-- | examples/all/all_linux.odin | 9 | ||||
| -rw-r--r-- | examples/all/all_main.odin | 428 | ||||
| -rw-r--r-- | examples/all/all_posix.odin | 7 | ||||
| -rw-r--r-- | examples/all/all_vendor.odin | 138 | ||||
| -rw-r--r-- | examples/all/all_vendor_js.odin | 13 | ||||
| -rw-r--r-- | examples/all/all_vendor_windows.odin | 21 |
12 files changed, 421 insertions, 403 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 356a977b0..3b378b693 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -159,6 +159,12 @@ jobs: - name: Odin check examples/all for OpenBSD amd64 if: matrix.os == 'ubuntu-latest' run: ./odin check examples/all -vet -strict-style -disallow-do -target:openbsd_amd64 + - name: Odin check examples/all for js_wasm32 + if: matrix.os == 'ubuntu-latest' + run: ./odin check examples/all -vet -strict-style -disallow-do -no-entry-point -target:js_wasm32 + - name: Odin check examples/all for js_wasm64p32 + if: matrix.os == 'ubuntu-latest' + run: ./odin check examples/all -vet -strict-style -disallow-do -no-entry-point -target:js_wasm64p32 - name: Odin check examples/all/sdl3 for Linux i386 if: matrix.os == 'ubuntu-latest' diff --git a/core/compress/common.odin b/core/compress/common.odin index 242538e78..f4429b667 100644 --- a/core/compress/common.odin +++ b/core/compress/common.odin @@ -139,9 +139,6 @@ Context_Memory_Input :: struct #packed { } when size_of(rawptr) == 8 { #assert(size_of(Context_Memory_Input) == 64) -} else { - // e.g. `-target:windows_i386` - #assert(size_of(Context_Memory_Input) == 52) } Context_Stream_Input :: struct #packed { diff --git a/core/path/filepath/path_js.odin b/core/path/filepath/path_js.odin new file mode 100644 index 000000000..3b5ac04f5 --- /dev/null +++ b/core/path/filepath/path_js.odin @@ -0,0 +1,36 @@ +package filepath + +import "base:runtime" + +import "core:strings" + +SEPARATOR :: '/' +SEPARATOR_STRING :: `/` +LIST_SEPARATOR :: ':' + +is_reserved_name :: proc(path: string) -> bool { + return false +} + +is_abs :: proc(path: string) -> bool { + return strings.has_prefix(path, "/") +} + +abs :: proc(path: string, allocator := context.allocator) -> (string, bool) { + if is_abs(path) { + return strings.clone(string(path), allocator), true + } + + return path, false +} + +join :: proc(elems: []string, allocator := context.allocator) -> (joined: string, err: runtime.Allocator_Error) #optional_allocator_error { + for e, i in elems { + if e != "" { + runtime.DEFAULT_TEMP_ALLOCATOR_TEMP_GUARD(ignore = context.temp_allocator == allocator) + p := strings.join(elems[i:], SEPARATOR_STRING, context.temp_allocator) or_return + return clean(p, allocator) + } + } + return "", nil +}
\ No newline at end of file diff --git a/core/sys/info/sysinfo.odin b/core/sys/info/sysinfo.odin index f624a1718..75cc237c6 100644 --- a/core/sys/info/sysinfo.odin +++ b/core/sys/info/sysinfo.odin @@ -1,6 +1,6 @@ package sysinfo -when !(ODIN_ARCH == .amd64 || ODIN_ARCH == .i386 || ODIN_ARCH == .arm32 || ODIN_ARCH == .arm64 || ODIN_ARCH == .riscv64) { +when !(ODIN_ARCH == .amd64 || ODIN_ARCH == .i386 || ODIN_ARCH == .arm32 || ODIN_ARCH == .arm64 || ODIN_ARCH == .riscv64 || ODIN_ARCH == .wasm32 || ODIN_ARCH == .wasm64p32) { #assert(false, "This package is unsupported on this architecture.") } diff --git a/core/time/timezone/tz_js.odin b/core/time/timezone/tz_js.odin new file mode 100644 index 000000000..d63e40033 --- /dev/null +++ b/core/time/timezone/tz_js.odin @@ -0,0 +1,13 @@ +#+build js +#+private +package timezone + +import "core:time/datetime" + +local_tz_name :: proc(allocator := context.allocator) -> (name: string, success: bool) { + return +} + +_region_load :: proc(_reg_str: string, allocator := context.allocator) -> (out_reg: ^datetime.TZ_Region, success: bool) { + return nil, true +}
\ No newline at end of file diff --git a/examples/all/all_js.odin b/examples/all/all_js.odin new file mode 100644 index 000000000..28b85f537 --- /dev/null +++ b/examples/all/all_js.odin @@ -0,0 +1,148 @@ +#+build js +package all + +// Imports "every" package +// This is useful for knowing what exists and producing documentation with `odin doc` + +@(require) import "core:bufio" +@(require) import "core:bytes" +@(require) import "core:c" + +@(require) import "core:compress" +@(require) import "core:compress/shoco" +@(require) import "core:compress/gzip" +@(require) import "core:compress/zlib" + +@(require) import "core:container/avl" +@(require) import "core:container/bit_array" +@(require) import "core:container/priority_queue" +@(require) import "core:container/queue" +@(require) import "core:container/small_array" +@(require) import "core:container/lru" +@(require) import "core:container/intrusive/list" +@(require) import "core:container/rbtree" +@(require) import "core:container/topological_sort" + +@(require) import "core:crypto" +@(require) import "core:crypto/aead" +@(require) import "core:crypto/aegis" +@(require) import "core:crypto/aes" +@(require) import "core:crypto/blake2b" +@(require) import "core:crypto/blake2s" +@(require) import "core:crypto/chacha20" +@(require) import "core:crypto/chacha20poly1305" +@(require) import chash "core:crypto/hash" +@(require) import "core:crypto/deoxysii" +@(require) import "core:crypto/ed25519" +@(require) import "core:crypto/hkdf" +@(require) import "core:crypto/hmac" +@(require) import "core:crypto/kmac" +@(require) import "core:crypto/legacy/keccak" +@(require) import "core:crypto/legacy/md5" +@(require) import "core:crypto/legacy/sha1" +@(require) import "core:crypto/pbkdf2" +@(require) import "core:crypto/poly1305" +@(require) import "core:crypto/ristretto255" +@(require) import "core:crypto/sha2" +@(require) import "core:crypto/sha3" +@(require) import "core:crypto/shake" +@(require) import "core:crypto/sm3" +@(require) import "core:crypto/tuplehash" +@(require) import "core:crypto/x25519" +@(require) import "core:crypto/x448" + +@(require) import "core:debug/pe" +@(require) import "core:debug/trace" + +@(require) import "core:dynlib" +@(require) import "core:net" + +@(require) import "core:encoding/base32" +@(require) import "core:encoding/base64" +@(require) import "core:encoding/cbor" +@(require) import "core:encoding/csv" +@(require) import "core:encoding/endian" +@(require) import "core:encoding/hxa" +@(require) import "core:encoding/ini" +@(require) import "core:encoding/json" +@(require) import "core:encoding/varint" +@(require) import "core:encoding/xml" +@(require) import "core:encoding/uuid" +@(require) import "core:encoding/uuid/legacy" + +@(require) import "core:fmt" +@(require) import "core:hash" +@(require) import "core:hash/xxhash" + +@(require) import "core:image" +@(require) import "core:image/bmp" +@(require) import "core:image/netpbm" +@(require) import "core:image/png" +@(require) import "core:image/qoi" +@(require) import "core:image/tga" + +@(require) import "core:io" +@(require) import "core:log" + +@(require) import "core:math" +@(require) import "core:math/big" +@(require) import "core:math/bits" +@(require) import "core:math/fixed" +@(require) import "core:math/linalg" +@(require) import "core:math/linalg/glsl" +@(require) import "core:math/linalg/hlsl" +@(require) import "core:math/noise" +@(require) import "core:math/rand" +@(require) import "core:math/ease" +@(require) import "core:math/cmplx" + +@(require) import "core:mem" +@(require) import "core:mem/tlsf" +@(require) import "core:mem/virtual" + +@(require) import "core:odin/ast" +@(require) import doc_format "core:odin/doc-format" + +@(require) import "core:odin/tokenizer" +@(require) import "core:os" +@(require) import "core:path/slashpath" + +@(require) import "core:relative" + +@(require) import "core:reflect" +@(require) import "base:runtime" +@(require) import "base:sanitizer" +@(require) import "core:simd" +@(require) import "core:simd/x86" +@(require) import "core:slice" +@(require) import "core:slice/heap" +@(require) import "core:sort" +@(require) import "core:strconv" +@(require) import "core:strings" +@(require) import "core:sync" + +@(require) import "core:terminal" +@(require) import "core:terminal/ansi" + +@(require) import "core:text/edit" +@(require) import "core:text/i18n" +@(require) import "core:text/match" +@(require) import "core:text/regex" +@(require) import "core:text/scanner" +@(require) import "core:text/table" + +@(require) import "core:thread" +@(require) import "core:time" +@(require) import "core:time/datetime" +@(require) import "core:time/timezone" + + +@(require) import "core:sys/orca" +@(require) import "core:sys/info" + +@(require) import "core:unicode" +@(require) import "core:unicode/utf8" +@(require) import "core:unicode/utf8/utf8string" +@(require) import "core:unicode/utf16" + +main :: proc() {}
\ No newline at end of file diff --git a/examples/all/all_linux.odin b/examples/all/all_linux.odin index dde712b8d..2b70fa1e1 100644 --- a/examples/all/all_linux.odin +++ b/examples/all/all_linux.odin @@ -1,10 +1,5 @@ #+build linux package all -import linux "core:sys/linux" - -import xlib "vendor:x11/xlib" - -_ :: linux - -_ :: xlib +@(require) import "core:sys/linux" +@(require) import "vendor:x11/xlib"
\ No newline at end of file diff --git a/examples/all/all_main.odin b/examples/all/all_main.odin index de037f6cd..d7b58dfca 100644 --- a/examples/all/all_main.odin +++ b/examples/all/all_main.odin @@ -1,282 +1,156 @@ +#+build !js package all // Imports every package // This is useful for knowing what exists and producing documentation with `odin doc` -import bufio "core:bufio" -import bytes "core:bytes" - -import c "core:c" -import libc "core:c/libc" - -import compress "core:compress" -import shoco "core:compress/shoco" -import gzip "core:compress/gzip" -import zlib "core:compress/zlib" - -import avl "core:container/avl" -import bit_array "core:container/bit_array" -import priority_queue "core:container/priority_queue" -import queue "core:container/queue" -import small_array "core:container/small_array" -import lru "core:container/lru" -import list "core:container/intrusive/list" -import rbtree "core:container/rbtree" -import topological_sort "core:container/topological_sort" - -import crypto "core:crypto" -import aead "core:crypto/aead" -import aegis "core:crypto/aegis" -import aes "core:crypto/aes" -import blake2b "core:crypto/blake2b" -import blake2s "core:crypto/blake2s" -import chacha20 "core:crypto/chacha20" -import chacha20poly1305 "core:crypto/chacha20poly1305" -import crypto_hash "core:crypto/hash" -import deoxysii "core:crypto/deoxysii" -import ed25519 "core:crypto/ed25519" -import hkdf "core:crypto/hkdf" -import hmac "core:crypto/hmac" -import kmac "core:crypto/kmac" -import keccak "core:crypto/legacy/keccak" -import md5 "core:crypto/legacy/md5" -import sha1 "core:crypto/legacy/sha1" -import pbkdf2 "core:crypto/pbkdf2" -import poly1305 "core:crypto/poly1305" -import ristretto255 "core:crypto/ristretto255" -import sha2 "core:crypto/sha2" -import sha3 "core:crypto/sha3" -import shake "core:crypto/shake" -import sm3 "core:crypto/sm3" -import tuplehash "core:crypto/tuplehash" -import x25519 "core:crypto/x25519" -import x448 "core:crypto/x448" - -import pe "core:debug/pe" -import trace "core:debug/trace" - -import dynlib "core:dynlib" -import net "core:net" - -import base32 "core:encoding/base32" -import base64 "core:encoding/base64" -import cbor "core:encoding/cbor" -import csv "core:encoding/csv" -import endian "core:encoding/endian" -import hxa "core:encoding/hxa" -import ini "core:encoding/ini" -import json "core:encoding/json" -import varint "core:encoding/varint" -import xml "core:encoding/xml" -import uuid "core:encoding/uuid" -import uuid_legacy "core:encoding/uuid/legacy" - -import fmt "core:fmt" -import hash "core:hash" -import xxhash "core:hash/xxhash" - -import image "core:image" -import bmp "core:image/bmp" -import netpbm "core:image/netpbm" -import png "core:image/png" -import qoi "core:image/qoi" -import tga "core:image/tga" - -import io "core:io" -import log "core:log" - -import math "core:math" -import big "core:math/big" -import bits "core:math/bits" -import fixed "core:math/fixed" -import linalg "core:math/linalg" -import glm "core:math/linalg/glsl" -import hlm "core:math/linalg/hlsl" -import noise "core:math/noise" -import rand "core:math/rand" -import ease "core:math/ease" -import cmplx "core:math/cmplx" - -import mem "core:mem" -import tlsf "core:mem/tlsf" -import virtual "core:mem/virtual" - -import ast "core:odin/ast" -import doc_format "core:odin/doc-format" -import odin_parser "core:odin/parser" -import odin_tokenizer "core:odin/tokenizer" - -import spall "core:prof/spall" - -import os "core:os" - -import slashpath "core:path/slashpath" -import filepath "core:path/filepath" - -import relative "core:relative" - -import reflect "core:reflect" -import runtime "base:runtime" -import sanitizer "base:sanitizer" -import simd "core:simd" -import x86 "core:simd/x86" -import slice "core:slice" -import slice_heap "core:slice/heap" -import sort "core:sort" -import strconv "core:strconv" -import strings "core:strings" -import sync "core:sync" -import testing "core:testing" - -import terminal "core:terminal" -import ansi "core:terminal/ansi" - -import edit "core:text/edit" -import i18n "core:text/i18n" -import match "core:text/match" -import regex "core:text/regex" -import scanner "core:text/scanner" -import table "core:text/table" - -import thread "core:thread" -import time "core:time" -import datetime "core:time/datetime" -import timezone "core:time/timezone" -import flags "core:flags" - -import orca "core:sys/orca" -import sysinfo "core:sys/info" - -import unicode "core:unicode" -import utf8 "core:unicode/utf8" -import utf8string "core:unicode/utf8/utf8string" -import utf16 "core:unicode/utf16" - -main :: proc(){} - - -_ :: bufio -_ :: bytes -_ :: c -_ :: libc -_ :: compress -_ :: shoco -_ :: gzip -_ :: zlib -_ :: avl -_ :: bit_array -_ :: priority_queue -_ :: queue -_ :: small_array -_ :: lru -_ :: list -_ :: rbtree -_ :: topological_sort -_ :: crypto -_ :: crypto_hash -_ :: aead -_ :: aegis -_ :: aes -_ :: blake2b -_ :: blake2s -_ :: chacha20 -_ :: chacha20poly1305 -_ :: deoxysii -_ :: ed25519 -_ :: hmac -_ :: hkdf -_ :: kmac -_ :: keccak -_ :: md5 -_ :: pbkdf2 -_ :: poly1305 -_ :: ristretto255 -_ :: sha1 -_ :: sha2 -_ :: sha3 -_ :: shake -_ :: sm3 -_ :: tuplehash -_ :: x25519 -_ :: x448 -_ :: pe -_ :: trace -_ :: dynlib -_ :: net -_ :: base32 -_ :: base64 -_ :: csv -_ :: hxa -_ :: ini -_ :: json -_ :: varint -_ :: xml -_ :: endian -_ :: cbor -_ :: fmt -_ :: hash -_ :: xxhash -_ :: image -_ :: bmp -_ :: netpbm -_ :: png -_ :: qoi -_ :: tga -_ :: io -_ :: log -_ :: math -_ :: big -_ :: bits -_ :: fixed -_ :: linalg -_ :: glm -_ :: hlm -_ :: noise -_ :: rand -_ :: ease -_ :: cmplx -_ :: mem -_ :: tlsf -_ :: virtual -_ :: ast -_ :: doc_format -_ :: odin_parser -_ :: odin_tokenizer -_ :: os -_ :: spall -_ :: slashpath -_ :: filepath -_ :: relative -_ :: reflect -_ :: runtime -_ :: simd -_ :: x86 -_ :: slice -_ :: slice_heap -_ :: sort -_ :: strconv -_ :: strings -_ :: sync -_ :: testing -_ :: terminal -_ :: ansi -_ :: scanner -_ :: i18n -_ :: match -_ :: regex -_ :: table -_ :: edit -_ :: thread -_ :: time -_ :: datetime -_ :: timezone -_ :: flags -_ :: orca -_ :: sysinfo -_ :: unicode -_ :: uuid -_ :: uuid_legacy -_ :: utf8 -_ :: utf8string -_ :: utf16 -_ :: sanitizer +@(require) import "core:bufio" +@(require) import "core:bytes" + +@(require) import "core:c" +@(require) import "core:c/libc" + +@(require) import "core:compress" +@(require) import "core:compress/shoco" +@(require) import "core:compress/gzip" +@(require) import "core:compress/zlib" + +@(require) import "core:container/avl" +@(require) import "core:container/bit_array" +@(require) import "core:container/priority_queue" +@(require) import "core:container/queue" +@(require) import "core:container/small_array" +@(require) import "core:container/lru" +@(require) import "core:container/intrusive/list" +@(require) import "core:container/rbtree" +@(require) import "core:container/topological_sort" + +@(require) import "core:crypto" +@(require) import "core:crypto/aead" +@(require) import "core:crypto/aegis" +@(require) import "core:crypto/aes" +@(require) import "core:crypto/blake2b" +@(require) import "core:crypto/blake2s" +@(require) import "core:crypto/chacha20" +@(require) import "core:crypto/chacha20poly1305" +@(require) import chash "core:crypto/hash" +@(require) import "core:crypto/deoxysii" +@(require) import "core:crypto/ed25519" +@(require) import "core:crypto/hkdf" +@(require) import "core:crypto/hmac" +@(require) import "core:crypto/kmac" +@(require) import "core:crypto/legacy/keccak" +@(require) import "core:crypto/legacy/md5" +@(require) import "core:crypto/legacy/sha1" +@(require) import "core:crypto/pbkdf2" +@(require) import "core:crypto/poly1305" +@(require) import "core:crypto/ristretto255" +@(require) import "core:crypto/sha2" +@(require) import "core:crypto/sha3" +@(require) import "core:crypto/shake" +@(require) import "core:crypto/sm3" +@(require) import "core:crypto/tuplehash" +@(require) import "core:crypto/x25519" +@(require) import "core:crypto/x448" + +@(require) import "core:debug/pe" +@(require) import "core:debug/trace" + +@(require) import "core:dynlib" +@(require) import "core:net" + +@(require) import "core:encoding/base32" +@(require) import "core:encoding/base64" +@(require) import "core:encoding/cbor" +@(require) import "core:encoding/csv" +@(require) import "core:encoding/endian" +@(require) import "core:encoding/hxa" +@(require) import "core:encoding/ini" +@(require) import "core:encoding/json" +@(require) import "core:encoding/varint" +@(require) import "core:encoding/xml" +@(require) import "core:encoding/uuid" +@(require) import "core:encoding/uuid/legacy" + +@(require) import "core:fmt" +@(require) import "core:hash" +@(require) import "core:hash/xxhash" + +@(require) import "core:image" +@(require) import "core:image/bmp" +@(require) import "core:image/netpbm" +@(require) import "core:image/png" +@(require) import "core:image/qoi" +@(require) import "core:image/tga" + +@(require) import "core:io" +@(require) import "core:log" + +@(require) import "core:math" +@(require) import "core:math/big" +@(require) import "core:math/bits" +@(require) import "core:math/fixed" +@(require) import "core:math/linalg" +@(require) import "core:math/linalg/glsl" +@(require) import "core:math/linalg/hlsl" +@(require) import "core:math/noise" +@(require) import "core:math/rand" +@(require) import "core:math/ease" +@(require) import "core:math/cmplx" + +@(require) import "core:mem" +@(require) import "core:mem/tlsf" +@(require) import "core:mem/virtual" + +@(require) import "core:odin/ast" +@(require) import doc_format "core:odin/doc-format" +@(require) import "core:odin/parser" +@(require) import "core:odin/tokenizer" + +@(require) import "core:prof/spall" + +@(require) import "core:os" + +@(require) import "core:path/slashpath" +@(require) import "core:path/filepath" + +@(require) import "core:relative" + +@(require) import "core:reflect" +@(require) import "base:runtime" +@(require) import "base:sanitizer" +@(require) import "core:simd" +@(require) import "core:simd/x86" +@(require) import "core:slice" +@(require) import "core:slice/heap" +@(require) import "core:sort" +@(require) import "core:strconv" +@(require) import "core:strings" +@(require) import "core:sync" +@(require) import "core:testing" + +@(require) import "core:terminal" +@(require) import "core:terminal/ansi" + +@(require) import "core:text/edit" +@(require) import "core:text/i18n" +@(require) import "core:text/match" +@(require) import "core:text/regex" +@(require) import "core:text/scanner" +@(require) import "core:text/table" + +@(require) import "core:thread" +@(require) import "core:time" +@(require) import "core:time/datetime" +@(require) import "core:time/timezone" +@(require) import "core:flags" + +@(require) import "core:sys/orca" +@(require) import "core:sys/info" + +@(require) import "core:unicode" +@(require) import "core:unicode/utf8" +@(require) import "core:unicode/utf8/utf8string" +@(require) import "core:unicode/utf16" + +main :: proc() {}
\ No newline at end of file diff --git a/examples/all/all_posix.odin b/examples/all/all_posix.odin index 61b33a5c6..3e05f74ff 100644 --- a/examples/all/all_posix.odin +++ b/examples/all/all_posix.odin @@ -1,8 +1,5 @@ #+build darwin, openbsd, freebsd, netbsd package all -import posix "core:sys/posix" -import kqueue "core:sys/kqueue" - -_ :: posix -_ :: kqueue +@(require) import "core:sys/posix" +@(require) import "core:sys/kqueue"
\ No newline at end of file diff --git a/examples/all/all_vendor.odin b/examples/all/all_vendor.odin index ebbfe786b..a41f9f986 100644 --- a/examples/all/all_vendor.odin +++ b/examples/all/all_vendor.odin @@ -1,102 +1,48 @@ +#+build !js package all -import cgltf "vendor:cgltf" -// import commonmark "vendor:commonmark" -import ENet "vendor:ENet" -import exr "vendor:OpenEXRCore" -import ggpo "vendor:ggpo" -import gl "vendor:OpenGL" -import glfw "vendor:glfw" -import microui "vendor:microui" -import miniaudio "vendor:miniaudio" -import PM "vendor:portmidi" -import rl "vendor:raylib" -import zlib "vendor:zlib" - -import SDL "vendor:sdl2" -import SDLNet "vendor:sdl2/net" -import IMG "vendor:sdl2/image" -import MIX "vendor:sdl2/mixer" -import TTF "vendor:sdl2/ttf" - -import vk "vendor:vulkan" +@(require) import "vendor:cgltf" +@(require) import "vendor:ENet" +@(require) import "vendor:OpenEXRCore" +@(require) import "vendor:ggpo" +@(require) import "vendor:OpenGL" +@(require) import "vendor:glfw" +@(require) import "vendor:microui" +@(require) import "vendor:miniaudio" +@(require) import "vendor:portmidi" +@(require) import "vendor:raylib" +@(require) import "vendor:zlib" + +@(require) import "vendor:sdl2" +@(require) import "vendor:sdl2/net" +@(require) import "vendor:sdl2/image" +@(require) import "vendor:sdl2/mixer" +@(require) import "vendor:sdl2/ttf" + +@(require) import "vendor:vulkan" // NOTE(bill): only one can be checked at a time -import lua_5_4 "vendor:lua/5.4" - -import nvg "vendor:nanovg" -import nvg_gl "vendor:nanovg/gl" -import fontstash "vendor:fontstash" - -_ :: cgltf -// _ :: commonmark -_ :: ENet -_ :: exr -_ :: ggpo -_ :: gl -_ :: glfw -_ :: microui -_ :: miniaudio -_ :: PM -_ :: rl -_ :: zlib - -_ :: SDL -_ :: SDLNet -_ :: IMG -_ :: MIX -_ :: TTF - -_ :: vk - -_ :: lua_5_4 - -_ :: nvg -_ :: nvg_gl -_ :: fontstash - +@(require) import lua54 "vendor:lua/5.4" +@(require) import "vendor:nanovg" +@(require) import "vendor:nanovg/gl" +@(require) import "vendor:fontstash" // NOTE: needed for doc generator - -import NS "core:sys/darwin/Foundation" -import CF "core:sys/darwin/CoreFoundation" -import SEC "core:sys/darwin/Security" -import MTL "vendor:darwin/Metal" -import MTK "vendor:darwin/MetalKit" -import CA "vendor:darwin/QuartzCore" - -_ :: NS -_ :: CF -_ :: SEC -_ :: MTL -_ :: MTK -_ :: CA - - -import DXC "vendor:directx/dxc" -import D3D11 "vendor:directx/d3d11" -import D3D12 "vendor:directx/d3d12" -import DXGI "vendor:directx/dxgi" - -_ :: DXC -_ :: D3D11 -_ :: D3D12 -_ :: DXGI - - -import cm "vendor:commonmark" -_ :: cm - - -import stb_easy_font "vendor:stb/easy_font" -import stbi "vendor:stb/image" -import stbrp "vendor:stb/rect_pack" -import stbtt "vendor:stb/truetype" -import stb_vorbis "vendor:stb/vorbis" - -_ :: stb_easy_font -_ :: stbi -_ :: stbrp -_ :: stbtt -_ :: stb_vorbis - +@(require) import "core:sys/darwin/Foundation" +@(require) import "core:sys/darwin/CoreFoundation" +@(require) import "core:sys/darwin/Security" +@(require) import "vendor:darwin/Metal" +@(require) import "vendor:darwin/MetalKit" +@(require) import "vendor:darwin/QuartzCore" + +@(require) import "vendor:directx/dxc" +@(require) import "vendor:directx/d3d11" +@(require) import "vendor:directx/d3d12" +@(require) import "vendor:directx/dxgi" +@(require) import "vendor:commonmark" + +@(require) import "vendor:stb/easy_font" +@(require) import stbi "vendor:stb/image" +@(require) import "vendor:stb/rect_pack" +@(require) import "vendor:stb/truetype" +@(require) import "vendor:stb/vorbis"
\ No newline at end of file diff --git a/examples/all/all_vendor_js.odin b/examples/all/all_vendor_js.odin new file mode 100644 index 000000000..d7975541d --- /dev/null +++ b/examples/all/all_vendor_js.odin @@ -0,0 +1,13 @@ +#+build js +package all + +@(require) import "vendor:box2d" +@(require) import "vendor:cgltf" +@(require) import "vendor:fontstash" +@(require) import "vendor:microui" +@(require) import "vendor:stb/easy_font" +@(require) import "vendor:stb/image" +@(require) import "vendor:stb/rect_pack" +@(require) import "vendor:stb/truetype" +@(require) import "vendor:wgpu" +@(require) import "vendor:wasm/WebGL"
\ No newline at end of file diff --git a/examples/all/all_vendor_windows.odin b/examples/all/all_vendor_windows.odin index 3daf527ce..b71b69a5a 100644 --- a/examples/all/all_vendor_windows.odin +++ b/examples/all/all_vendor_windows.odin @@ -1,16 +1,9 @@ +#+build windows package all -import wgpu "vendor:wgpu" -import wgpu_glfw_glue "vendor:wgpu/glfwglue" -import wgpu_sdl_glue "vendor:wgpu/sdl2glue" -import b2 "vendor:box2d" -import game_input "vendor:windows/GameInput" -import XAudio2 "vendor:windows/XAudio2" - -_ :: wgpu -_ :: wgpu_glfw_glue -_ :: wgpu_sdl_glue -_ :: b2 -_ :: game_input -_ :: XAudio2 - +@(require) import "vendor:wgpu/glfwglue" +@(require) import "vendor:wgpu/sdl2glue" +@(require) import "vendor:wgpu" +@(require) import "vendor:box2d" +@(require) import "vendor:windows/GameInput" +@(require) import "vendor:windows/XAudio2"
\ No newline at end of file |