forked from jimsdog/appweb-gpl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.me
179 lines (149 loc) · 5.2 KB
/
main.me
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
/*
main.me -- Main MakeMe File for Appweb
*/
Me.load({
makeme: '>=1.0.0',
plugins: [ 'installs' ],
blend: [
'src/*.me',
'src/*/*.me',
'?doc/doc.me',
'?test/test.me',
'?samples/samples.me',
'?installs/installs.me',
'?local.me',
],
modules: [ 'installs/service.es' ],
configure: {
requires: [ 'osdep', 'http', 'mpr', 'pcre'],
discovers: [ 'esp', 'mdb', 'ssl', 'watchdog' ],
extras: [ 'cgi', 'dir', 'ejs', 'php' ],
},
customize: [
/*
The optional custom.me file is loaded after main.me is fully processed. It can
thus override any setting. Feel free to create and customize.
*/
'custom.me',
],
settings: {
integrate: true,
/*
Installation prefix set
*/
prefixes: 'install-prefixes',
manifest: 'installs/manifest.me',
/*
Name and path of the appweb config file. Defaults to './appweb.conf' if empty.
*/
configFile: 'appweb.conf',
/* Must build locally to build tools */
platforms: [ 'local' ],
certs: {
gendh: true
},
compiler: {
fortify: true,
},
esp: {
cmd: true,
legacy: false,
module: false,
},
http: {
/* Use PAM (Plugable Authentication Module) to store passwords */
cmd: true,
pam: true,
webSockets: true,
},
mbedtls: {
compact: true, /* Compact edition - Disable non-essential ciphers and features */
},
openssl: {
version: '1.0',
},
mpr: {
alloc: {
// quota: 204800, /* Amount of memory to allocate before a GC */
// cache: 0, /* Amount of memory to buffer for fast allocations */
// check: false, /* Memory allocation debug and stats (slow) */
},
/*
Enable logging via mprLog to the log file
The default is to enable logging for both debug and release builds.
*/
logging: true, /* Enable application logging */
oslog: false, /* Write to the O/S log file */
romMount: "/rom", /* Virtual mount point for a rom file system */
ssl: {
cache: 512, /* Set the session cache size (items) */
logLevel: 5, /* Starting logging level for SSL messages */
handshakes: 3, /* Set maximum number of renegotiations (zero means infinite) */
ticket: true, /* Enable session resumption via ticketing - client side session caching */
timeout: 86400, /* Session and ticketing duration in seconds */
},
threadStack: 0, /* Use the default system stack size */
threadLimitByCores: true, /* Limit threads to CPU core count */
},
/*
Build without a file system (from ROM)
*/
rom: false,
watchdog: {
name: 'appman',
},
/*
Tailor the optimization for size|balanced|speed
*/
tune: 'size',
/*
Initial home directory for the server
*/
serverRoot: '.',
},
usage: {
'configFile': 'Path of the appweb.conf file',
'http.pam': 'Enable Unix Pluggable Auth Module (true|false)',
'http.webSockets': 'Enable WebSockets (true|false)',
'mpr.logging': 'Enable application logging (true|false)',
'serverRoot': 'Home directory for the server ',
},
targets: {
cgi: {
configurable: true,
description: 'Common Gateway Interface Module',
path: 'src/modules/cgiHandler.c',
depends: [ 'libmod_cgi' ],
},
dir: {
configurable: true,
description: 'Directory Listing Module',
},
/*
See src/server/server.me for the appweb targets
See src/libappweb.me for the appweb library target
See installs/installs.me for the install targets
*/
projects: {
action: `
if (me.settings.description == 'Embedthis Appweb Enterprise Edition') {
genProjects('--set openssl.version=1.0 --with openssl', 'openssl_10', 'windows-x64')
genProjects('--set openssl.version=1.1 --with openssl', 'openssl_11', 'windows-x64')
genProjects('--with openssl', 'openssl', 'macosx-x64')
genProjects()
} else {
genProjects('', ['default'])
}
`,
},
publish: {
action: `publish()`,
},
mine: {
action: `genProjects('--with cgi', 'mine', Config.OS + '-' + Config.CPU)`,
}
},
usage: {
'rom': 'Build without a file system (true|false)',
}
})