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 The 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
26#ifndef ENV_VARS_H
27#define ENV_VARS_H
28
29#include <kicommon.h>
30#include <wx/string.h>
31#include <map>
32#include <vector>
33#include <optional>
34
35class ENV_VAR_ITEM;
36
37namespace ENV_VAR
38{
39 using ENV_VAR_LIST = std::vector<wxString>;
40
49 KICOMMON_API bool IsEnvVarImmutable( const wxString& aEnvVar );
50
55
62 KICOMMON_API wxString GetVersionedEnvVarName( const wxString& aBaseName );
63
75 KICOMMON_API std::optional<wxString>
76 GetVersionedEnvVarValue( const std::map<wxString, ENV_VAR_ITEM>& aMap,
77 const wxString& aBaseName );
78
88 KICOMMON_API wxString LookUpEnvVarHelp( const wxString& aEnvVar );
89
96 template <typename VAL_TYPE>
97 KICOMMON_API std::optional<VAL_TYPE> GetEnvVar( const wxString& aEnvVarName );
98
105 template<>
106 KICOMMON_API std::optional<wxString> GetEnvVar( const wxString& aEnvVarName );
107
115 template <>
116 KICOMMON_API std::optional<double> GetEnvVar( const wxString& aEnvVarName );
117};
118
119#endif /* ENV_VARS_H */
KiCad uses environment variables internally for determining the base paths for libraries,...
#define KICOMMON_API
Definition: kicommon.h:28
KICOMMON_API wxString LookUpEnvVarHelp(const wxString &aEnvVar)
Look up long-form help text for a given environment variable.
Definition: env_vars.cpp:146
KICOMMON_API std::optional< VAL_TYPE > GetEnvVar(const wxString &aEnvVarName)
Get an environment variable as a specific type, if set correctly.
KICOMMON_API const ENV_VAR_LIST & GetPredefinedEnvVars()
Get the list of pre-defined environment variables.
Definition: env_vars.cpp:68
KICOMMON_API std::optional< wxString > GetVersionedEnvVarValue(const std::map< wxString, ENV_VAR_ITEM > &aMap, const wxString &aBaseName)
Attempt to retrieve the value of a versioned environment variable, such as KICAD8_TEMPLATE_DIR.
Definition: env_vars.cpp:83
KICOMMON_API wxString GetVersionedEnvVarName(const wxString &aBaseName)
Construct a versioned environment variable based on this KiCad major version.
Definition: env_vars.cpp:74
KICOMMON_API bool IsEnvVarImmutable(const wxString &aEnvVar)
Determine if an environment variable is "predefined", i.e.
Definition: env_vars.cpp:53
std::vector< wxString > ENV_VAR_LIST
Definition: env_vars.h:39