Remove ECSEmscripten as Emscripten version is now supported in LDC (+fix compile scripts)
This commit is contained in:
parent
d77317c816
commit
f19bce1a57
5 changed files with 15 additions and 140 deletions
|
|
@ -13,7 +13,7 @@ def compile(sources, output):
|
|||
if file_extension == '.d' and filename != 'package':
|
||||
files.append(os.path.join(r, file))
|
||||
|
||||
ldc_cmd = 'ldc2 ' + shared_flags + ldc_flags + '-oq -mtriple=wasm32-unknown-unknown-wasm -betterC --output-bc --od=.bc --singleobj --checkaction=C --of=' + output + ' '
|
||||
ldc_cmd = 'ldc2 ' + shared_flags + ldc_flags + '-oq -mtriple=wasm32-unknown-emscripten -betterC --output-bc --od=.bc --singleobj --checkaction=C --of=' + output + ' '
|
||||
|
||||
for path in sources:
|
||||
ldc_cmd += '-I' + path + ' '
|
||||
|
|
@ -33,7 +33,7 @@ def compile(sources, output):
|
|||
shared_flags = ''
|
||||
clean = 0
|
||||
emc_flags = ''
|
||||
ldc_flags = '--d-version=ECSEmscripten '
|
||||
ldc_flags = ''
|
||||
import_paths = ['source','tests']
|
||||
build_tests = 0
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import os
|
||||
import ntpath
|
||||
import sys
|
||||
import imp
|
||||
|
||||
def compile(sources, output):
|
||||
files = []
|
||||
|
|
@ -14,7 +13,7 @@ def compile(sources, output):
|
|||
if file_extension == '.d' and filename != 'package':
|
||||
files.append(os.path.join(r, file))
|
||||
|
||||
ldc_cmd = compiler + shared_flags + ldc_flags + '-oq -mtriple=wasm32-unknown-unknown-wasm -betterC --output-bc --od=.bc --singleobj --checkaction=C --of=' + output + ' '
|
||||
ldc_cmd = compiler + shared_flags + ldc_flags + '-oq -mtriple=wasm32-unknown-emscripten -betterC --output-bc --od=.bc --singleobj --checkaction=C --of=' + output + ' '
|
||||
|
||||
for path in sources:
|
||||
ldc_cmd += '-I' + path + ' '
|
||||
|
|
@ -41,7 +40,7 @@ only_bc = 0
|
|||
multi = 0
|
||||
sources = ['tests', 'source']
|
||||
emc_flags = '-s USE_SDL=2 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS="[\'png\']" '
|
||||
ldc_flags = '--d-version=ECSEmscripten --d-version=SDL_209 --d-version=BindSDL_Static --d-version=BindSDL_Image --d-version=MM_USE_POSIX_THREADS '
|
||||
ldc_flags = '--d-version=SDL_209 --d-version=BindSDL_Static --d-version=BindSDL_Image --d-version=MM_USE_POSIX_THREADS '
|
||||
import_paths = ['external/sources', 'external/imports', 'external/wasm_imports', '../source', 'utils/source', 'simple/source']
|
||||
|
||||
for arg in sys.argv[1:]:
|
||||
|
|
@ -121,8 +120,9 @@ emcc_cmd += 'demo.bc '
|
|||
|
||||
os.system("mkdir build")
|
||||
|
||||
emscripten = imp.load_source('', os.path.expanduser("~") + '/.emscripten')
|
||||
pack_cmd = emscripten.EMSCRIPTEN_ROOT + '/tools/file_packager.py build/assets.data --preload assets --js-output=build/assets.js'
|
||||
# emscripten = imp.load_source('', os.path.expanduser("~") + '/.emscripten')
|
||||
# pack_cmd = emscripten.EMSCRIPTEN_ROOT + '/tools/file_packager.py build/assets.data --preload assets --js-output=build/assets.js'
|
||||
pack_cmd = os.path.expandvars('$EMSDK/upstream/emscripten') + '/tools/file_packager.py build/assets.data --preload assets --js-output=build/assets.js'
|
||||
print('Packafing files: ' + pack_cmd)
|
||||
|
||||
os.system(pack_cmd)
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ threads_dep = dependency('threads')
|
|||
d_versions = []
|
||||
deps = []
|
||||
if host_machine.cpu_family() == 'wasm32'
|
||||
d_versions += 'ECSEmscripten'
|
||||
|
||||
else
|
||||
# meson incorectly adds "-s USE_PTHREADS=1" to ldc2 invocation whe pthreads is added as dependency
|
||||
# add it for non wasm builds
|
||||
|
|
|
|||
|
|
@ -9,124 +9,5 @@ License: BSD 3-clause, see LICENSE file in project root folder.
|
|||
*/
|
||||
module bubel.ecs.atomic;
|
||||
|
||||
version (Emscripten) version = ECSEmscripten;
|
||||
|
||||
version (ECSEmscripten)
|
||||
{
|
||||
import std.traits;
|
||||
|
||||
enum MemoryOrder
|
||||
{
|
||||
acq,
|
||||
acq_rel,
|
||||
raw,
|
||||
rel,
|
||||
seq
|
||||
}
|
||||
|
||||
extern (C) ubyte emscripten_atomic_cas_u8(void* addr, ubyte oldVal, ubyte newVal) @nogc nothrow pure;
|
||||
extern (C) ushort emscripten_atomic_cas_u16(void* addr, ushort oldVal, ushort newVal) @nogc nothrow pure;
|
||||
extern (C) uint emscripten_atomic_cas_u32(void* addr, uint oldVal, uint newVal) @nogc nothrow pure;
|
||||
|
||||
extern (C) ubyte emscripten_atomic_load_u8(const void* addr) @nogc nothrow pure;
|
||||
extern (C) ushort emscripten_atomic_load_u16(const void* addr) @nogc nothrow pure;
|
||||
extern (C) uint emscripten_atomic_load_u32(const void* addr) @nogc nothrow pure;
|
||||
|
||||
extern (C) ubyte emscripten_atomic_store_u8(void* addr, ubyte val) @nogc nothrow pure;
|
||||
extern (C) ushort emscripten_atomic_store_u16(void* addr, ushort val) @nogc nothrow pure;
|
||||
extern (C) uint emscripten_atomic_store_u32(void* addr, uint val) @nogc nothrow pure;
|
||||
|
||||
extern (C) ubyte emscripten_atomic_add_u8(void* addr, ubyte val) @nogc nothrow pure;
|
||||
extern (C) ushort emscripten_atomic_add_u16(void* addr, ushort val) @nogc nothrow pure;
|
||||
extern (C) uint emscripten_atomic_add_u32(void* addr, uint val) @nogc nothrow pure;
|
||||
|
||||
extern (C) ubyte emscripten_atomic_sub_u8(void* addr, ubyte val) @nogc nothrow pure;
|
||||
extern (C) ushort emscripten_atomic_sub_u16(void* addr, ushort val) @nogc nothrow pure;
|
||||
extern (C) uint emscripten_atomic_sub_u32(void* addr, uint val) @nogc nothrow pure;
|
||||
|
||||
public pure nothrow @nogc Unqual!T atomicOp(string op, T, V1)(ref shared T val, V1 mod)
|
||||
{
|
||||
static if (op == "+=")
|
||||
{
|
||||
static if (is(T == byte) || is(T == ubyte))
|
||||
return cast(Unqual!T)(emscripten_atomic_add_u8(cast(void*)&val,
|
||||
cast(Unqual!T) mod) + 1);
|
||||
else static if (is(T == short) || is(T == ushort))
|
||||
return cast(Unqual!T)(emscripten_atomic_add_u16(cast(void*)&val,
|
||||
cast(Unqual!T) mod) + 1);
|
||||
else static if (is(T == int) || is(T == uint))
|
||||
return cast(Unqual!T)(emscripten_atomic_add_u32(cast(void*)&val,
|
||||
cast(Unqual!T) mod) + 1);
|
||||
else
|
||||
static assert(0);
|
||||
}
|
||||
else static if (op == "-=")
|
||||
{
|
||||
static if (is(T == byte) || is(T == ubyte))
|
||||
return cast(Unqual!T)(emscripten_atomic_sub_u8(cast(void*)&val,
|
||||
cast(Unqual!T) mod) - 1);
|
||||
else static if (is(T == short) || is(T == ushort))
|
||||
return cast(Unqual!T)(emscripten_atomic_sub_u16(cast(void*)&val,
|
||||
cast(Unqual!T) mod) - 1);
|
||||
else static if (is(T == int) || is(T == uint))
|
||||
return cast(Unqual!T)(emscripten_atomic_sub_u32(cast(void*)&val,
|
||||
cast(Unqual!T) mod) - 1);
|
||||
else
|
||||
static assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
public pure nothrow @nogc @trusted void atomicStore(MemoryOrder ms = MemoryOrder.seq, T, V)(ref T val,
|
||||
V newval)
|
||||
{
|
||||
alias UT = Unqual!T;
|
||||
static if (is(UT == bool) || is(UT == byte) || is(UT == ubyte))
|
||||
emscripten_atomic_store_u8(cast(void*)&val, cast(UT) newval);
|
||||
else static if (is(UT == short) || is(UT == ushort))
|
||||
emscripten_atomic_store_u16(cast(void*)&val, cast(UT) newval);
|
||||
else static if (is(UT == int) || is(UT == uint))
|
||||
emscripten_atomic_store_u32(cast(void*)&val, cast(UT) newval);
|
||||
else
|
||||
static assert(0);
|
||||
}
|
||||
|
||||
public pure nothrow @nogc @trusted T atomicLoad(MemoryOrder ms = MemoryOrder.seq, T)(
|
||||
ref const T val)
|
||||
{
|
||||
alias UT = Unqual!T;
|
||||
static if (is(UT == bool))
|
||||
return emscripten_atomic_load_u8(cast(const void*)&val) != 0;
|
||||
else static if (is(UT == byte) || is(UT == ubyte))
|
||||
return emscripten_atomic_load_u8(cast(const void*)&val);
|
||||
else static if (is(UT == short) || is(UT == ushort))
|
||||
return emscripten_atomic_load_u16(cast(const void*)&val);
|
||||
else static if (is(UT == int) || is(UT == uint))
|
||||
return emscripten_atomic_load_u32(cast(const void*)&val);
|
||||
else
|
||||
static assert(0);
|
||||
}
|
||||
|
||||
public pure nothrow @nogc @trusted bool cas(MemoryOrder succ = MemoryOrder.seq,
|
||||
MemoryOrder fail = MemoryOrder.seq, T, V1, V2)(T* here, V1 ifThis, V2 writeThis)
|
||||
{
|
||||
alias UT = Unqual!T;
|
||||
static if (is(UT == bool))
|
||||
return emscripten_atomic_cas_u8(cast(void*) here,
|
||||
cast(Unqual!T) ifThis, cast(Unqual!T) writeThis) == ifThis;
|
||||
else static if (is(UT == byte) || is(UT == ubyte))
|
||||
return emscripten_atomic_cas_u8(cast(void*) here,
|
||||
cast(Unqual!T) ifThis, cast(Unqual!T) writeThis) == ifThis;
|
||||
else static if (is(UT == short) || is(UT == ushort))
|
||||
return emscripten_atomic_cas_u16(cast(void*) here,
|
||||
cast(Unqual!T) ifThis, cast(Unqual!T) writeThis) == ifThis;
|
||||
else static if (is(UT == int) || is(UT == uint))
|
||||
return emscripten_atomic_cas_u32(cast(void*) here,
|
||||
cast(Unqual!T) ifThis, cast(Unqual!T) writeThis) == ifThis;
|
||||
else
|
||||
static assert(0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
public import core.atomic;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@ License: BSD 3-clause, see LICENSE file in project root folder.
|
|||
*/
|
||||
module bubel.ecs.std;
|
||||
|
||||
version (Emscripten) version = ECSEmscripten;
|
||||
|
||||
import std.traits;
|
||||
|
||||
version (ECSEmscripten)
|
||||
version (Emscripten)
|
||||
{
|
||||
extern (C) struct pthread_mutex_t
|
||||
{
|
||||
|
|
@ -29,10 +27,6 @@ version (ECSEmscripten)
|
|||
|
||||
extern (C) int memcmp(const void* s1, const void* s2, size_t size);
|
||||
extern (C) void exit(int status) nothrow @nogc;
|
||||
extern (C) void __assert(const(char)* msg, const(char)* file, uint line)
|
||||
{
|
||||
exit(-20);
|
||||
}
|
||||
|
||||
extern (C) void free(void*) @nogc nothrow @system;
|
||||
extern (C) void* malloc(size_t size) @nogc nothrow @system;
|
||||
|
|
@ -60,7 +54,7 @@ else
|
|||
public import core.stdc.stdlib : qsort;
|
||||
}
|
||||
|
||||
version (ECSEmscripten)
|
||||
version (Emscripten)
|
||||
{
|
||||
}
|
||||
else version (Windows)
|
||||
|
|
@ -89,7 +83,7 @@ else version (Posix)
|
|||
import core.sys.posix.stdlib : posix_memalign;
|
||||
}
|
||||
|
||||
version (ECSEmscripten)
|
||||
version (Emscripten)
|
||||
{
|
||||
private const uint max_alloca = 10000;
|
||||
private __gshared byte[max_alloca] alloca_array;
|
||||
|
|
@ -294,7 +288,7 @@ static struct Mallocator
|
|||
posix_memalign(&ret, alignment, length); //ret = aligned_alloc(alignment, length);
|
||||
else version (Windows)
|
||||
ret = _aligned_malloc(length, alignment);
|
||||
else version (ECSEmscripten)
|
||||
else version (Emscripten)
|
||||
posix_memalign(&ret, alignment, length); //malloc(length);
|
||||
else
|
||||
static assert(0, "Unimplemented platform!");
|
||||
|
|
@ -341,7 +335,7 @@ static struct Mallocator
|
|||
free(cast(void*) object);
|
||||
else version (Windows)
|
||||
_aligned_free(cast(void*) object);
|
||||
else version (ECSEmscripten)
|
||||
else version (Emscripten)
|
||||
free(cast(void*) object);
|
||||
else
|
||||
static assert(0, "Unimplemented platform!");
|
||||
|
|
@ -351,7 +345,7 @@ static struct Mallocator
|
|||
struct Mutex
|
||||
{
|
||||
|
||||
version (ECSEmscripten)
|
||||
version (Emscripten)
|
||||
{
|
||||
void initialize() nothrow @nogc
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue