Comments (3)
Having to support another build system doesn't fill me with joy, but Meson seems to be somewhat popular. How complex is the minimal setup that makes Luau usable? Does Meson allow to use file globs? (this would simplify maintenance of a build system we don't use for future changes)
from luau.
Having to support another build system doesn't fill me with joy
CI/CD may check and start unittest in meson for ensure stable of Meson builds.
How complex is the minimal setup that makes Luau usable?
You may meet with example with classic Lua meson build system at
https://github.com/franko/lua/blob/master/src/meson.build
But this example is overloaded by using pkgconfig
and separated an few parts and etc.
The main purpose of use Meson build (is providing library as a subproject) is not achieved in example.
I can make and check MVP with meson for Debian system (maybe in December).
Does Meson allow to use file globs?
This is violation of reliability and describe at https://mesonbuild.com/FAQ.html#but-i-really-want-to-use-wildcards
But Meson provide workaround for stubborn developers.
P.S. I think that the main goal using Meson is to provide the ability to embed Luau as easily as it is done with Lua, so that user would not even notice the changes from one to the other, but get significant advantages. For example with use:
//lua_dep = dependency('lua', method : 'pkg-config')
luau_dep = dependency('luau', method : 'pkg-config')
or as subproject with source code recompile:
luau_proj = subproject('libsimple')
luau_dep = luau_proj.get_variable('luau_dep')
For this last code in meson should be:
inc = include_directories('include')
libluau = static_library('luau', sources
include_directories : inc,
....
)
luau_dep = declare_dependency(
include_directories : inc,
link_with : libluau)
from luau.
I'm going to close this for now since this seems like something that can be achieved with wrapdb similarly to Lua, and we currently use CMake as the main build system. After Luau is added to wrapdb and actually sees use in dependent projects we could re-evaluate this.
from luau.
Related Issues (20)
- Difference types HOT 4
- Type 'T' could not be converted into 'T' HOT 3
- intersecting class type by shape type results in `never` and causes loss of type inference - new solver bug
- Metamethods with generics having their generics infered as the self type if the self type isn't a generic itself
- First argument of setmetable throws a type error, if the variable is annotated to be a metatable in the new solver
- Setting a key to nil in a table errors in the new solver
- Can't define function in lua script after calling luaL_sandbox in host HOT 2
- `buffer` library doesn't accept `buffer`s in new type solver's non-strict mode HOT 3
- `any` as generic `T` incompatible with `{T}` in new type solver's strict mode
- Variable's type sometimes unions with `nil` due to `if` statement with new type solver's strict mode HOT 1
- For loop variable types not inferred from generic iterator with new type solver
- `and` `or` expression causes type pack error with new type solver's strict mode
- `table.freeze` returns type `{+ +}` with new solver's strict mode HOT 1
- failed assert in script file crashes repl HOT 1
- Stack overflow in parser HOT 3
- `buffer` library `TypeError` when buffer is function parameter with new solver's non-strict mode
- Cyclic union with upvalue not reducing `TypeError` with new solver's strict mode
- TypeError: Type pack '...any' could not be converted into 'a...' in new solver's strict mode
- Comment in lgc.h wrongly describes the GC invariant? HOT 1
- Test doesn't do what it says it does HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luau.