KiCad PCB EDA Suite
Loading...
Searching...
No Matches
env_vars.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
25#ifndef ENV_VARS_H
26#define ENV_VARS_H
27
28#include <wx/string.h>
29#include <vector>
30#include <optional>
31
32namespace ENV_VAR
33{
34 using ENV_VAR_LIST = std::vector<wxString>;
35
43 bool IsEnvVarImmutable( const wxString& aEnvVar );
44
49
60 wxString LookUpEnvVarHelp( const wxString& aEnvVar );
61
68 template <typename VAL_TYPE>
69 std::optional<VAL_TYPE> GetEnvVar( const wxString& aEnvVarName );
70
77 template<>
78 std::optional<wxString> GetEnvVar( const wxString& aEnvVarName );
79
87 template <>
88 std::optional<double> GetEnvVar( const wxString& aEnvVarName );
89};
90
91#endif /* ENV_VARS_H */
std::optional< VAL_TYPE > GetEnvVar(const wxString &aEnvVarName)
Get an environment variable as a specific type, if set correctly.
wxString LookUpEnvVarHelp(const wxString &aEnvVar)
Look up long-form help text for a given environment variable.
Definition: env_vars.cpp:108
const ENV_VAR_LIST & GetPredefinedEnvVars()
Get the list of pre-defined environment variables.
Definition: env_vars.cpp:60
bool IsEnvVarImmutable(const wxString &aEnvVar)
Determine if an environment variable is "predefined", i.e.
Definition: env_vars.cpp:48
std::vector< wxString > ENV_VAR_LIST
Definition: env_vars.h:34