You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 10, 2021. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+47-3Lines changed: 47 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Most of development of [Lunar-Dreamland](https://github.com/goonstation/Lunar-Dr
8
8
Here are the modules currently available (not counting the core). Scroll to the bottom to see install instructions.
9
9
10
10
#### TFFI
11
-
Threaded FFI for BYOND. Automagically threads off all DLL calls and prevents them from locking up the game until they return. You may use a Promise datum, pass a callback or simply sleep until the call returns.
11
+
Threaded FFI for BYOND. Automagically threads off all DLL calls and prevents them from locking up the game until they return. You may use a Promise datum, pass a callback (global or an object) or simply sleep until the call returns.
12
12
13
13
Calls the do_work function from sample.dll with 3 arguments. The proc sleeps until do_work returns.
@@ -42,10 +50,46 @@ These modules are planned to be included in the future.
42
50
- Proxy objects: Forward variable reads and writes to C++.
43
51
- Websockets: Send and receive data using the websocket protocol.
44
52
- Lua: Allows writing lua scripts that replace builtin procs. Mostly for messing about.
53
+
- Optimizer: Optimizes bytecode and inlines procs into each other to avoid call overhead.
45
54
46
55
## I want to use this!
47
56
Download the DLL and .dm file from [Releases](https://github.com/MCHSL/extools/releases). Place the DLL next to your DMB and plop the .dm somewhere where you can easily tick it. Afterwards, add `extools_initialize()` to `world/New()` or equivalent. To load modules, call `<module>_initialize()`, for example `tffi_initialize()`. Module initialization functions must be called after `extools_initialize()`!
48
57
58
+
## How do I compile this?
59
+
You need [CMake](https://cmake.org/download/), at least version 3.15.
60
+
### Windows
61
+
You need Visual Studio, preferably 2019. Be sure to include the "C++ CMake tools for Windows".
62
+
Create a folder next to "byond-extools" called "build". Use this as the CMake "where to build your binaries" directory.
63
+
You can use the CMake GUI. Ensure that you select **Win32**!
64
+
65
+

66
+
67
+
If you choose to use CMake from the command line:
68
+
```
69
+
D:\Code\C++\extools\byond-extools\build> cmake -G "Visual Studio 16 2019" -A Win32 ..
70
+
-- The C compiler identification is MSVC 19.23.28106.4
71
+
-- The CXX compiler identification is MSVC 19.23.28106.4
72
+
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x86/cl.exe
73
+
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x86/cl.exe -- works
74
+
-- Detecting C compiler ABI info
75
+
-- Detecting C compiler ABI info - done
76
+
-- Detecting C compile features
77
+
-- Detecting C compile features - done
78
+
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x86/cl.exe
79
+
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x86/cl.exe -- works
80
+
-- Detecting CXX compiler ABI info
81
+
-- Detecting CXX compiler ABI info - done
82
+
-- Detecting CXX compile features
83
+
-- Detecting CXX compile features - done
84
+
-- Configuring done
85
+
-- Generating done
86
+
-- Build files have been written to: D:/Code/C++/extools/byond-extools/build
87
+
D:\Code\C++\extools\byond-extools\build>
88
+
```
89
+
90
+
## Linux
91
+
You can just make the build directory and do `cmake ..` and then `make`.
92
+
32-bit is automatically forced when compiling on Linux.
49
93
50
94
## Credits
51
95
Thank you to people who contributed in one way or another to the overall effort.
0 commit comments