1 /*!
2  * \file   MFrontHeader.cxx
3  * \brief
4  *
5  * \author Helfer Thomas
6  * \date   09 nov 2006
7  * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights
8  * reserved.
9  * This project is publicly released under either the GNU GPL Licence
10  * or the CECILL-A licence. A copy of thoses licences are delivered
11  * with the sources of TFEL. CEA or EDF may also distribute this
12  * project under specific licensing conditions.
13  */
14 
15 #include<string>
16 #include"MFront/MFrontHeader.hxx"
17 
18 namespace mfront{
19 
getVersionName()20   std::string MFrontHeader::getVersionName()
21   {
22     return "tfel";
23   }
24 
getVersionNumber()25   std::string MFrontHeader::getVersionNumber()
26   {
27     return "3.4.0";
28   }
29 
getBugReportAdress()30   std::string MFrontHeader::getBugReportAdress()
31   {
32     return "tfel-contact@cea.fr";
33   }
34 
getCompilerName()35   std::string MFrontHeader::getCompilerName()
36   {
37     return "g++";
38   }
39 
getBuildCpu()40   std::string MFrontHeader::getBuildCpu()
41   {
42     return "x86_64";
43   }
44 
getBuildOs()45   std::string MFrontHeader::getBuildOs()
46   {
47     return "linux-gnu";
48   }
49 
getHostCpu()50   std::string MFrontHeader::getHostCpu()
51   {
52     return "x86_64";
53   }
54 
getHostOs()55   std::string MFrontHeader::getHostOs()
56   {
57     return "linux-gnu";
58   }
59 
getTargetCpu()60   std::string MFrontHeader::getTargetCpu()
61   {
62     return "x86_64";
63   }
64 
getTargetOs()65   std::string MFrontHeader::getTargetOs()
66   {
67     return "linux-gnu";
68   }
69 
getHeader(const std::string & s)70   std::string MFrontHeader::getHeader(const std::string& s)
71   {
72     const auto target_cpu = getTargetCpu();
73     const auto build_cpu  = getBuildCpu();
74     const auto host_cpu   = getHostCpu();
75     const auto target_os = getTargetOs();
76     const auto build_os  = getBuildOs();
77     const auto host_os   = getHostOs();
78     auto header = std::string{};
79     header  = s;
80     header += getVersionName();
81     header += "\n";
82     header += s;
83     header += "Version : " + getVersionNumber();
84     header += "\n";
85     if((target_cpu != build_cpu)|| (target_cpu != host_cpu) ||
86        (target_os  != build_os) || (target_os  != host_os)){
87       header += s;
88       header += "Compiled with ";
89       header +=  getCompilerName();
90       header +=  " : ";
91       header += "\n";
92       header += s;
93       header += "- target cpu : ";
94       header += target_cpu;
95       header += "\n";
96       header += s;
97       header += "\n";
98       header += s;
99       header += "- target os  : " ;
100       header += target_os ;
101       header += "\n";
102       header += s;
103       header += "\n";
104       header += s;
105       header += "- build cpu  : ";
106       header += build_cpu  ;
107       header += "\n";
108       header += s;
109       header += "\n";
110       header += s;
111       header += "- build os   : ";
112       header +=  build_os;
113       header += "\n";
114       header += s;
115       header += "\n";
116       header += s;
117       header += "- host cpu   : ";
118       header += host_cpu;
119       header += "\n";
120       header += s;
121       header += "\n";
122       header += s;
123       header += "- host os    : ";
124       header += host_os;
125       header += "\n";
126     } else {
127       header += s;
128       header += "Compiled with ";
129       header += getCompilerName();
130       header += " on ";
131       header += target_cpu;
132       header += " - ";
133       header += target_os;
134       header += "\n";
135     }
136     header += s;
137     header += "Please submit bug at " ;
138     header +=  getBugReportAdress() ;
139     header +=  "\n";
140     return header;
141   }
142 
143 } // end of namespace mfront
144 
145