28#include <boost/version.hpp>
43#include <Standard_Version.hxx>
45#include <ngspice/sharedspice.h>
50#define INCLUDE_KICAD_VERSION
51#include <kicad_build_version.h>
52#undef INCLUDE_KICAD_VERSION
56 wxPlatformInfo platform;
57 return platform.GetBitnessName();
63 return !!KICAD_IS_NIGHTLY;
69 wxString msg = wxString::Format( wxT(
"%s" ), wxT( KICAD_VERSION_FULL ) );
76 wxString msg = wxString::Format( wxT(
"%s %s" ), wxT( __DATE__ ), wxT( __TIME__ ) );
83 wxString msg = wxString::Format( wxT(
"%s" ), wxT( KICAD_SEMANTIC_VERSION ) );
90 wxString msg = wxString::Format( wxT(
"%s" ), wxT( KICAD_MAJOR_MINOR_VERSION ) );
97 wxString msg = wxString::Format( wxT(
"%s" ), wxT( KICAD_COMMIT_HASH ) );
104 wxString msg = wxString::Format( wxT(
"%s" ), wxT( KICAD_MAJOR_MINOR_PATCH_VERSION ) );
110 static std::tuple<int, int, int> retval = KICAD_MAJOR_MINOR_PATCH_TUPLE;
121 wxString eol = aHtml ?
"<br>" :
"\n";
124 wxString indent4 = aHtml ?
" " :
"\t";
126#define ON "ON" << eol
127#define OFF "OFF" << eol
139 wxPlatformInfo platform;
140 aMsg <<
"Application: " << aTitle;
141 aMsg <<
" " << wxGetCpuArchitectureName() <<
" on " << wxGetNativeCpuArchitectureName();
146 aMsg <<
"Version: " << version << eol << eol;
147 aMsg <<
"Libraries:" << eol;
149 aMsg << indent4 << wxGetLibraryVersionInfo().GetVersionString() << eol;
160 wxString osDescription;
163 osDescription = wxGetLinuxDistributionInfo().Description;
169 if( osDescription.empty() )
170 osDescription = wxGetOsDescription();
173 << osDescription <<
", "
175 << platform.GetEndiannessName() <<
", "
176 << platform.GetPortIdName();
179 if( wxTheApp && wxTheApp->IsGUI() )
183 switch( wxGetDisplayInfo().type )
185 case wxDisplayX11: aMsg <<
"X11";
break;
186 case wxDisplayWayland: aMsg <<
"Wayland";
break;
187 case wxDisplayNone: aMsg <<
"None";
break;
188 default: aMsg <<
"Unknown";
192 aMsg <<
", " << wxGetenv(
"XDG_SESSION_DESKTOP" )
193 <<
", " << wxGetenv(
"XDG_SESSION_TYPE" );
200 aMsg <<
"Build Info:" << eol;
204 aMsg << indent4 <<
"wxWidgets: " << wxVERSION_NUM_DOT_STRING <<
" (";
205 aMsg << __WX_BO_UNICODE __WX_BO_STL;
208#if wxCHECK_VERSION( 3, 3, 0 )
209 aMsg << __WX_BO_WXWIN_COMPAT_3_0
")";
211 aMsg << __WX_BO_WXWIN_COMPAT_2_8
")";
218 major = wxPlatformInfo().Get().GetToolkitMajorVersion();
219 minor = wxPlatformInfo().Get().GetToolkitMinorVersion();
220 aMsg <<
" GTK+ " << major <<
"." << minor;
225 aMsg << indent4 <<
"Boost: " << ( BOOST_VERSION / 100000 ) << wxT(
"." )
226 << ( BOOST_VERSION / 100 % 1000 ) << wxT(
"." )
227 << ( BOOST_VERSION % 100 ) << eol;
229 aMsg << indent4 <<
"OCC: " << OCC_VERSION_COMPLETE << eol;
232#if defined( NGSPICE_BUILD_VERSION )
233 aMsg << indent4 <<
"ngspice: " << NGSPICE_BUILD_VERSION << eol;
234#elif defined( NGSPICE_HAVE_CONFIG_H )
235 #undef HAVE_STRNCASECMP
236 #include <ngspice/config.h>
238#elif defined( NGSPICE_PACKAGE_VERSION )
239 aMsg << indent4 <<
"ngspice: " << NGSPICE_PACKAGE_VERSION << eol;
241 aMsg << indent4 <<
"ngspice: " <<
"unknown" << eol;
244 aMsg << indent4 <<
"Compiler: ";
245#if defined(__clang__)
246 aMsg <<
"Clang " << __clang_major__ <<
"." << __clang_minor__ <<
"." << __clang_patchlevel__;
247#elif defined(__GNUG__)
248 aMsg <<
"GCC " << __GNUC__ <<
"." << __GNUC_MINOR__ <<
"." << __GNUC_PATCHLEVEL__;
249#elif defined(_MSC_VER)
250 aMsg <<
"Visual C++ " << _MSC_VER;
251#elif defined(__INTEL_COMPILER)
252 aMsg <<
"Intel C++ " << __INTEL_COMPILER;
254 aMsg <<
"Other Compiler ";
257#if defined(__GXX_ABI_VERSION)
258 aMsg <<
" with C++ ABI " << __GXX_ABI_VERSION << eol;
260 aMsg <<
" without C++ ABI" << eol;
266 aMsg <<
"Build settings:" << eol;
269 aMsg << indent4 <<
"KICAD_USE_EGL=" <<
ON;
273 aMsg << indent4 <<
"KICAD_STDLIB_DEBUG=";
274#ifdef KICAD_STDLIB_DEBUG
278 aMsg << indent4 <<
"KICAD_STDLIB_LIGHT_DEBUG=";
279#ifdef KICAD_STDLIB_LIGHT_DEBUG
286 aMsg << indent4 <<
"KICAD_SANITIZE_ADDRESS=";
287#ifdef KICAD_SANITIZE_ADDRESS
293 aMsg << indent4 <<
"KICAD_SANITIZE_THREADS=";
294#ifdef KICAD_SANITIZE_THREADS
wxString GetMajorMinorVersion()
Get only the major and minor version in a string major.minor.
wxString GetVersionInfoData(const wxString &aTitle, bool aHtml, bool aBrief)
Create a version info string for bug reports and the about dialog.
wxString GetCommitHash()
Get the commit hash as a string.
std::string GetCurlLibVersion()
std::string GetKicadCurlVersion()
wxString GetMajorMinorPatchVersion()
Get the major, minor and patch version in a string major.minor.patch This is extracted by CMake from ...
const std::tuple< int, int, int > & GetMajorMinorPatchTuple()
Get the build version numbers as a tuple.
wxString GetBuildVersion()
Get the full KiCad version string.
wxString GetSemanticVersion()
Get the semantic version string for KiCad defined inside the KiCadVersion.cmake file in the variable ...
wxString GetPlatformGetBitnessName()
bool IsNightlyVersion()
Check if the build is meant to be nightly.
wxString GetBuildDate()
Get the build date as a string.
static wxString FontConfig()
static wxString FreeType()
static wxString HarfBuzz()
< Package version metadata Package metadata