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
18namespace mfront{
19
20  std::string MFrontHeader::getVersionName()
21  {
22    return "@PACKAGE_NAME@";
23  }
24
25  std::string MFrontHeader::getVersionNumber()
26  {
27    return "@TFEL_VERSION@";
28  }
29
30  std::string MFrontHeader::getBugReportAdress()
31  {
32    return "@PACKAGE_BUGREPORT@";
33  }
34
35  std::string MFrontHeader::getCompilerName()
36  {
37    return "@CXX@";
38  }
39
40  std::string MFrontHeader::getBuildCpu()
41  {
42    return "@build_cpu@";
43  }
44
45  std::string MFrontHeader::getBuildOs()
46  {
47    return "@build_os@";
48  }
49
50  std::string MFrontHeader::getHostCpu()
51  {
52    return "@host_cpu@";
53  }
54
55  std::string MFrontHeader::getHostOs()
56  {
57    return "@host_os@";
58  }
59
60  std::string MFrontHeader::getTargetCpu()
61  {
62    return "@target_cpu@";
63  }
64
65  std::string MFrontHeader::getTargetOs()
66  {
67    return "@target_os@";
68  }
69
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