mirror of
https://github.com/NixOS/nix.git
synced 2025-11-14 14:32:42 +01:00
Remove static data from headers
We don't want to duplicate any of these across libraries, which is what
happens when the platform doesn't support unique symbols.
(cherry picked from commit 1b5af49fd0)
This commit is contained in:
parent
d7fc293353
commit
4a8b515260
10 changed files with 37 additions and 26 deletions
|
|
@ -2,6 +2,7 @@
|
|||
#include <nlohmann/json.hpp>
|
||||
|
||||
#include "nix/cmd/command.hh"
|
||||
#include "nix/cmd/legacy.hh"
|
||||
#include "nix/cmd/markdown.hh"
|
||||
#include "nix/store/store-open.hh"
|
||||
#include "nix/store/local-fs-store.hh"
|
||||
|
|
@ -14,6 +15,18 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
RegisterCommand::Commands & RegisterCommand::commands()
|
||||
{
|
||||
static RegisterCommand::Commands commands;
|
||||
return commands;
|
||||
}
|
||||
|
||||
RegisterLegacyCommand::Commands & RegisterLegacyCommand::commands()
|
||||
{
|
||||
static RegisterLegacyCommand::Commands commands;
|
||||
return commands;
|
||||
}
|
||||
|
||||
nix::Commands RegisterCommand::getCommandsFor(const std::vector<std::string> & prefix)
|
||||
{
|
||||
nix::Commands res;
|
||||
|
|
|
|||
|
|
@ -286,11 +286,7 @@ struct RegisterCommand
|
|||
{
|
||||
typedef std::map<std::vector<std::string>, std::function<ref<Command>()>> Commands;
|
||||
|
||||
static Commands & commands()
|
||||
{
|
||||
static Commands commands;
|
||||
return commands;
|
||||
}
|
||||
static Commands & commands();
|
||||
|
||||
RegisterCommand(std::vector<std::string> && name, std::function<ref<Command>()> command)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,11 +13,7 @@ struct RegisterLegacyCommand
|
|||
{
|
||||
typedef std::map<std::string, MainFunction> Commands;
|
||||
|
||||
static Commands & commands()
|
||||
{
|
||||
static Commands commands;
|
||||
return commands;
|
||||
}
|
||||
static Commands & commands();
|
||||
|
||||
RegisterLegacyCommand(const std::string & name, MainFunction fun)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,11 +12,7 @@ struct RegisterPrimOp
|
|||
{
|
||||
typedef std::vector<PrimOp> PrimOps;
|
||||
|
||||
static PrimOps & primOps()
|
||||
{
|
||||
static PrimOps primOps;
|
||||
return primOps;
|
||||
}
|
||||
static PrimOps & primOps();
|
||||
|
||||
/**
|
||||
* You can register a constant by passing an arity of 0. fun
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ struct PrintOptions
|
|||
* `PrintOptions` for unknown and therefore potentially large values in error messages,
|
||||
* to avoid printing "too much" output.
|
||||
*/
|
||||
static PrintOptions errorPrintOptions = PrintOptions{
|
||||
static constexpr PrintOptions errorPrintOptions = PrintOptions{
|
||||
.ansiColors = true,
|
||||
.maxDepth = 10,
|
||||
.maxAttrs = 10,
|
||||
|
|
|
|||
|
|
@ -39,6 +39,12 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
RegisterPrimOp::PrimOps & RegisterPrimOp::primOps()
|
||||
{
|
||||
static RegisterPrimOp::PrimOps primOps;
|
||||
return primOps;
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
* Miscellaneous
|
||||
*************************************************************/
|
||||
|
|
|
|||
|
|
@ -10,6 +10,12 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
RegisterBuiltinBuilder::BuiltinBuilders & RegisterBuiltinBuilder::builtinBuilders()
|
||||
{
|
||||
static RegisterBuiltinBuilder::BuiltinBuilders builders;
|
||||
return builders;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
struct State
|
||||
|
|
|
|||
|
|
@ -20,11 +20,7 @@ struct RegisterBuiltinBuilder
|
|||
{
|
||||
typedef std::map<std::string, BuiltinBuilder> BuiltinBuilders;
|
||||
|
||||
static BuiltinBuilders & builtinBuilders()
|
||||
{
|
||||
static BuiltinBuilders builders;
|
||||
return builders;
|
||||
}
|
||||
static BuiltinBuilders & builtinBuilders();
|
||||
|
||||
RegisterBuiltinBuilder(const std::string & name, BuiltinBuilder && fun)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,12 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
GlobalConfig::ConfigRegistrations & GlobalConfig::configRegistrations()
|
||||
{
|
||||
static GlobalConfig::ConfigRegistrations configRegistrations;
|
||||
return configRegistrations;
|
||||
}
|
||||
|
||||
bool GlobalConfig::set(const std::string & name, const std::string & value)
|
||||
{
|
||||
for (auto & config : configRegistrations())
|
||||
|
|
|
|||
|
|
@ -9,11 +9,7 @@ struct GlobalConfig : public AbstractConfig
|
|||
{
|
||||
typedef std::vector<Config *> ConfigRegistrations;
|
||||
|
||||
static ConfigRegistrations & configRegistrations()
|
||||
{
|
||||
static ConfigRegistrations configRegistrations;
|
||||
return configRegistrations;
|
||||
}
|
||||
static ConfigRegistrations & configRegistrations();
|
||||
|
||||
bool set(const std::string & name, const std::string & value) override;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue