00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef SC_VER_H
00029 #define SC_VER_H
00030
00031 #include "sysc/kernel/sc_macros.h"
00032
00033 #include "sysc/communication/sc_writer_policy.h"
00034
00035 #include <string>
00036
00037 namespace sc_core {
00038
00039 extern const char* sc_copyright();
00040 extern const char* sc_release();
00041 extern const char* sc_version();
00042
00043 extern const unsigned int sc_version_major;
00044 extern const unsigned int sc_version_minor;
00045 extern const unsigned int sc_version_patch;
00046
00047 extern const std::string sc_version_originator;
00048 extern const std::string sc_version_release_date;
00049 extern const std::string sc_version_prerelease;
00050 extern const bool sc_is_prerelease;
00051 extern const std::string sc_version_string;
00052 extern const std::string sc_copyright_string;
00053
00054 #define SYSTEMC_2_3_1
00055
00056 #define SYSTEMC_VERSION 20140417
00057
00058
00059 #define SC_VERSION_ORIGINATOR "OoOPARALLEL" // 09/02/2015 GL: new compiler message
00060 #define SC_VERSION_MAJOR 2
00061 #define SC_VERSION_MINOR 3
00062 #define SC_VERSION_PATCH 1
00063 #define SC_IS_PRERELEASE 0
00064
00066 #define IEEE_1666_SYSTEMC 201101L
00067
00068
00069
00070
00071
00072 #define SC_COPYRIGHT \
00073 "Copyright (c) 1996-2015 by CECS and all Contributors,\n" \
00074 "ALL RIGHTS RESERVED\n"
00075
00076
00077 #define SC_VERSION_RELEASE_DATE \
00078 SC_STRINGIFY_HELPER_( SYSTEMC_VERSION )
00079
00080 #if ( SC_IS_PRERELEASE == 1 )
00081 # define SC_VERSION_PRERELEASE "pub_rev"
00082 # define SC_VERSION \
00083 SC_STRINGIFY_HELPER_( SC_VERSION_MAJOR.SC_VERSION_MINOR.SC_VERSION_PATCH ) \
00084 "_" SC_VERSION_PRERELEASE "_" SC_VERSION_RELEASE_DATE \
00085 "-" SC_VERSION_ORIGINATOR
00086 #else
00087 # define SC_VERSION_PRERELEASE "" // nothing
00088 # define SC_VERSION \
00089 SC_STRINGIFY_HELPER_( SC_VERSION_MAJOR.SC_VERSION_MINOR.SC_VERSION_PATCH ) \
00090 "-" SC_VERSION_ORIGINATOR
00091 #endif
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 #define SC_API_VERSION_STRING \
00102 SC_CONCAT_UNDERSCORE_( sc_api_version, \
00103 SC_CONCAT_UNDERSCORE_( SC_VERSION_MAJOR, \
00104 SC_CONCAT_UNDERSCORE_( SC_VERSION_MINOR, \
00105 SC_VERSION_PATCH ) ) )
00106
00107
00108 #define SC_API_DEFINED_( Symbol ) \
00109 Symbol ## _DEFINED_
00110 #define SC_API_UNDEFINED_( Symbol ) \
00111 Symbol ## _UNDEFINED_
00112
00113
00114
00115
00116
00117
00118
00119 #if 0 // don't enforce check of DEBUG_SYSTEMC for now
00120
00121 #if defined( DEBUG_SYSTEMC )
00122 # define DEBUG_SYSTEMC_CHECK_ \
00123 SC_CONFIG_DEFINED_(DEBUG_SYSTEMC)
00124 #else
00125 # define DEBUG_SYSTEMC_CHECK_ \
00126 SC_CONFIG_UNDEFINED_(DEBUG_SYSTEMC)
00127 #endif
00128 extern const int DEBUG_SYSTEMC_CHECK_;
00129 #endif
00130
00131
00132 #if defined( SC_DISABLE_VIRTUAL_BIND )
00133 # define SC_DISABLE_VIRTUAL_BIND_CHECK_ \
00134 SC_API_DEFINED_(SC_DISABLE_VIRTUAL_BIND)
00135 #else
00136 # define SC_DISABLE_VIRTUAL_BIND_CHECK_ \
00137 SC_API_UNDEFINED_(SC_DISABLE_VIRTUAL_BIND)
00138 #endif
00139 extern const int SC_DISABLE_VIRTUAL_BIND_CHECK_;
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149 template
00150 <
00151
00152 const int * DisableVirtualBind
00153 >
00154 struct SC_API_VERSION_STRING
00155 {
00156 SC_API_VERSION_STRING
00157 (
00158
00159 sc_writer_policy default_writer_policy
00160 );
00161 };
00162
00163 #if !defined( SC_DISABLE_API_VERSION_CHECK ) // disabled in sc_ver.cpp
00164 static
00165 SC_API_VERSION_STRING
00166 <
00167
00168 & SC_DISABLE_VIRTUAL_BIND_CHECK_
00169 >
00170 api_version_check
00171 (
00172 SC_DEFAULT_WRITER_POLICY
00173 );
00174 #endif // SC_DISABLE_API_VERSION_CHECK
00175
00176
00177
00178
00179 }
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 #endif