mirror of
https://github.com/natnat-mc/moonbuild
synced 2026-06-08 03:19:40 +02:00
removed test
This commit is contained in:
-168
@@ -1,168 +0,0 @@
|
|||||||
-- project name
|
|
||||||
var 'NAME', 'raytrace'
|
|
||||||
|
|
||||||
-- tools to use
|
|
||||||
public var 'CPP', 'g++'
|
|
||||||
public var 'LD', 'g++'
|
|
||||||
public var 'MOC', 'moc'
|
|
||||||
|
|
||||||
-- compile flags
|
|
||||||
var 'CFLAGS', {'-fPIC', '-fopenmp', '-Wall', '-Wextra', '-Isrc', '--std=c++1', '-O3'}
|
|
||||||
var 'LDFLAGS', {'-fPIC', '-fopenmp'}
|
|
||||||
var 'PKGS', {'Qt5Widgets'}
|
|
||||||
|
|
||||||
-- extra cli flags
|
|
||||||
public var 'XCFLAGS'
|
|
||||||
public var 'XLDFLAGS'
|
|
||||||
public var 'XPKGS'
|
|
||||||
public var 'XLIBS'
|
|
||||||
|
|
||||||
-- find all files for project
|
|
||||||
var 'SOURCES', _.wildcard 'src/**.cpp'
|
|
||||||
var 'HEADERS', _.wildcard 'src/**.h'
|
|
||||||
var 'QT_HEADERS', _.wildcard 'src/**.hh'
|
|
||||||
|
|
||||||
-- complete our flags
|
|
||||||
var 'PKGS', {PKGS, XPKGS}
|
|
||||||
var 'CFLAGS', {CFLAGS, XCFLAGS, _.pkgconfig.cflags PKGS}
|
|
||||||
var 'LDFLAGS', {LDFLAGS, LDCFLAGS}
|
|
||||||
var 'LIBS', {XLIBS, _.pkgconfig.libs PKGS}
|
|
||||||
|
|
||||||
-- determine our subtargets
|
|
||||||
var 'BINARY', "out/#{NAME}"
|
|
||||||
var 'OBJECTS', _.patsubst SOURCES, 'src/%.cpp', 'build/%.o'
|
|
||||||
var 'MOC_SOURCES', _.patsubst QT_HEADERS, 'src/%.hh', 'build/%.moc.cpp'
|
|
||||||
var 'MOC_OBJECTS', _.patsubst MOC_SOURCES, '%.cpp', '%.o'
|
|
||||||
var 'OBJECTS', {OBJECTS, MOC_OBJECTS}
|
|
||||||
|
|
||||||
|
|
||||||
-- build everything
|
|
||||||
with public default target 'all'
|
|
||||||
\depends BINARY
|
|
||||||
|
|
||||||
-- clean build objects
|
|
||||||
with public target 'clean'
|
|
||||||
\fn => _.cmd 'rm', '-f', ALL_OBJECTS, MOC_SOURCES
|
|
||||||
|
|
||||||
-- clean everything
|
|
||||||
with public target 'mrproper'
|
|
||||||
\after 'clean'
|
|
||||||
\fn => _.cmd 'rm', '-f', BINARY
|
|
||||||
|
|
||||||
-- build and run
|
|
||||||
with public target 'run'
|
|
||||||
\depends BINARY
|
|
||||||
\fn => _.cmd "./#{BINARY}"
|
|
||||||
|
|
||||||
-- produce the binary from all objects
|
|
||||||
with target BINARY
|
|
||||||
\produces BINARY
|
|
||||||
\depends OBJECTS
|
|
||||||
\fn => _.cmd LD, LDFLAGS, '-o', @outfile, @infiles, LIBS
|
|
||||||
\mkdirs!
|
|
||||||
|
|
||||||
-- produce the objects from the sources
|
|
||||||
with target OBJECTS, pattern: 'build/%.o'
|
|
||||||
\produces 'build/%.o'
|
|
||||||
\depends 'src/%.cpp'
|
|
||||||
\depends => _.cdeps[CPP] @infile, CFLAGS
|
|
||||||
\fn => _.cmd CPP, CFLAGS, '-o', @outfile, '-c', @infile
|
|
||||||
\mkdirs!
|
|
||||||
|
|
||||||
-- produce the objects from the moc-generated sources
|
|
||||||
with target MOC_OBJECTS, pattern: 'build/%.moc.o'
|
|
||||||
\produces 'build/%.moc.o'
|
|
||||||
\depends 'build/%.moc.cpp'
|
|
||||||
\fn => _.cmd CPP, CFLAGS, '-o', @outfile, '-c', @infile
|
|
||||||
|
|
||||||
-- generate moc sources from the qt headers
|
|
||||||
with target MOC_SOURCES, pattern: 'build/%.moc.cpp'
|
|
||||||
\produces 'build/%.moc.cpp'
|
|
||||||
\depends 'src/%.hh'
|
|
||||||
\fn => _.cmd MOC, '-o', @outfile, @infile
|
|
||||||
\mkdirs!
|
|
||||||
|
|
||||||
[[
|
|
||||||
var: string, Serializable -> Variable
|
|
||||||
creates a variable in the global shared state
|
|
||||||
|
|
||||||
public: Variable -> Variable
|
|
||||||
makes a variable overwritable with a CLI flag or through environment variables
|
|
||||||
|
|
||||||
target: string|array, TargetOptions? -> Target
|
|
||||||
creates a target matching the given name or names, with the given options
|
|
||||||
|
|
||||||
public: Target -> Target
|
|
||||||
makes a target listable on the CLI
|
|
||||||
|
|
||||||
default: Target -> Target
|
|
||||||
makes a target run automatically if no target is specified
|
|
||||||
|
|
||||||
init: (nil -> nil) -> nil
|
|
||||||
adds a function to run in the init environment after the CLI options are processed
|
|
||||||
|
|
||||||
typedef Serializable
|
|
||||||
| string
|
|
||||||
| boolean
|
|
||||||
| number
|
|
||||||
| nil
|
|
||||||
| array<Serializable>
|
|
||||||
| map<string|boolean|number, Serializable>
|
|
||||||
a value that can be flattened and passed to another environment
|
|
||||||
|
|
||||||
typedef List
|
|
||||||
| nil
|
|
||||||
| string
|
|
||||||
| array<List>
|
|
||||||
a list of strings that can get flattened to array<string> unambiguously
|
|
||||||
|
|
||||||
typedef TargetOptions: table
|
|
||||||
- pattern: string? [@name or '%']
|
|
||||||
a pattern that is matched when trying the target, it is also used to fill in '%' in the target
|
|
||||||
- priority: int? [0]
|
|
||||||
higher values make moonbuild try the target before lower-priority targets
|
|
||||||
|
|
||||||
class Target
|
|
||||||
- produces: List -> Target
|
|
||||||
adds objects to the list of productions
|
|
||||||
- depends: List -> Target
|
|
||||||
adds objects to the list of dependencies
|
|
||||||
- depends: (TargetContext -> List) -> Target
|
|
||||||
adds objects to the list of dependencies when the target is first tried
|
|
||||||
- after: List -> Target
|
|
||||||
adds targets to the ordering list
|
|
||||||
- fn: (TargetContext -> nil) -> Target
|
|
||||||
adds a function to run to build the target
|
|
||||||
- sync: nil -> Target
|
|
||||||
forces the target to run synchronously and sequentially
|
|
||||||
- mkdirs: nil -> Target
|
|
||||||
always ensures the parent directories of the productions exist, creating them if they don't
|
|
||||||
|
|
||||||
class TargetContext
|
|
||||||
- name: string
|
|
||||||
the name the target is running as
|
|
||||||
- infiles: List
|
|
||||||
the list of input files
|
|
||||||
- infile: string?
|
|
||||||
the first input file
|
|
||||||
- outfiles: List
|
|
||||||
the list of output files
|
|
||||||
- outfile: string?
|
|
||||||
the first output file
|
|
||||||
|
|
||||||
environment Global
|
|
||||||
- _ library
|
|
||||||
- VARIABLES
|
|
||||||
- standard Lua library
|
|
||||||
|
|
||||||
environment Top: Global
|
|
||||||
- target
|
|
||||||
- var
|
|
||||||
- init
|
|
||||||
- public
|
|
||||||
- default
|
|
||||||
|
|
||||||
environment Init: Global
|
|
||||||
- target
|
|
||||||
- var
|
|
||||||
]]
|
|
||||||
Reference in New Issue
Block a user