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."));
120 PROMEKI_DECLARE_ID(TempDir, VariantSpec()
121 .setType(DataTypeString)
122 .setDefault(String())
123 .setDescription(
"Override for Dir::temp() (empty = OS default)."));
163 PROMEKI_DECLARE_ID(IpcDir,
165 .setType(DataTypeString)
166 .setDefault(String())
167 .setDescription(
"Override for Dir::ipc() (empty = platform default)."));
181 PROMEKI_DECLARE_ID(TerminationSignalHandler,
183 .setType(DataTypeBool)
185 .setDescription(
"Install termination signal handlers (Ctrl-C/kill)."));
195 PROMEKI_DECLARE_ID(SignalDoubleTapExit,
197 .setType(DataTypeBool)
199 .setDescription(
"Force-exit on second termination signal delivery."));
209 static LibraryOptions &instance();
221 void loadFromEnvironment();