11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
16PROMEKI_NAMESPACE_BEGIN
49class LibraryOptions :
public VariantDatabase<"LibraryOptions"> {
52 using Base = VariantDatabase<
"LibraryOptions">;
61 PROMEKI_DECLARE_ID(CrashHandler, VariantSpec()
62 .setType(DataTypeBool)
64 .setDescription(
"Install crash signal handlers."));
67 PROMEKI_DECLARE_ID(CoreDumps, VariantSpec()
68 .setType(DataTypeBool)
70 .setDescription(
"Enable core dumps via RLIMIT_CORE."));
73 PROMEKI_DECLARE_ID(CrashLogDir, VariantSpec()
74 .setType(DataTypeString)
76 .setDescription(
"Crash log directory (empty = system temp)."));
81 PROMEKI_DECLARE_ID(CaptureEnvironment,
83 .setType(DataTypeBool)
85 .setDescription(
"Include environment variables in crash reports."));
100 PROMEKI_DECLARE_ID(CrashStackTraceTimeout,
102 .setType(DataTypeInt32)
104 .setDescription(
"Seconds before crash stack-trace symbolization "
105 "times out (0 disables)."));
140 PROMEKI_DECLARE_ID(TempDir, VariantSpec()
141 .setType(DataTypeString)
142 .setDefault(String())
143 .setDescription(
"Override for Dir::temp() (empty = OS default)."));
183 PROMEKI_DECLARE_ID(IpcDir,
185 .setType(DataTypeString)
186 .setDefault(String())
187 .setDescription(
"Override for Dir::ipc() (empty = platform default)."));
221 PROMEKI_DECLARE_ID(ModelsDir,
223 .setType(DataTypeString)
224 .setDefault(String())
225 .setDescription(
"Override for Dir::models() (empty = platform default)."));
260 PROMEKI_DECLARE_ID(LogToStderr,
262 .setType(DataTypeBool)
264 .setDescription(
"Route Logger console output to stderr (else stdout)."));
278 PROMEKI_DECLARE_ID(TerminationSignalHandler,
280 .setType(DataTypeBool)
282 .setDescription(
"Install termination signal handlers (Ctrl-C/kill)."));
292 PROMEKI_DECLARE_ID(SignalDoubleTapExit,
294 .setType(DataTypeBool)
296 .setDescription(
"Force-exit on second termination signal delivery."));
306 static LibraryOptions &instance();
318 void loadFromEnvironment();