112027Sjungma@eit.uni-kl.de/*****************************************************************************
212027Sjungma@eit.uni-kl.de
312027Sjungma@eit.uni-kl.de  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
412027Sjungma@eit.uni-kl.de  more contributor license agreements.  See the NOTICE file distributed
512027Sjungma@eit.uni-kl.de  with this work for additional information regarding copyright ownership.
612027Sjungma@eit.uni-kl.de  Accellera licenses this file to you under the Apache License, Version 2.0
712027Sjungma@eit.uni-kl.de  (the "License"); you may not use this file except in compliance with the
812027Sjungma@eit.uni-kl.de  License.  You may obtain a copy of the License at
912027Sjungma@eit.uni-kl.de
1012027Sjungma@eit.uni-kl.de    http://www.apache.org/licenses/LICENSE-2.0
1112027Sjungma@eit.uni-kl.de
1212027Sjungma@eit.uni-kl.de  Unless required by applicable law or agreed to in writing, software
1312027Sjungma@eit.uni-kl.de  distributed under the License is distributed on an "AS IS" BASIS,
1412027Sjungma@eit.uni-kl.de  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1512027Sjungma@eit.uni-kl.de  implied.  See the License for the specific language governing
1612027Sjungma@eit.uni-kl.de  permissions and limitations under the License.
1712027Sjungma@eit.uni-kl.de
1812027Sjungma@eit.uni-kl.de *****************************************************************************/
1912027Sjungma@eit.uni-kl.de
2012027Sjungma@eit.uni-kl.de/* ---------------------------------------------------------------------------------------
2112027Sjungma@eit.uni-kl.de @file tlm_version.h
2212027Sjungma@eit.uni-kl.de
2312027Sjungma@eit.uni-kl.de @brief TLM version header
2412027Sjungma@eit.uni-kl.de
2512027Sjungma@eit.uni-kl.de  Original Author:
2612027Sjungma@eit.uni-kl.de    Charles Wilson, XtremeEDA Corporation
2712027Sjungma@eit.uni-kl.de
2812027Sjungma@eit.uni-kl.de @description
2912027Sjungma@eit.uni-kl.de  This header contains preprocessor and compiler symbols to allow for the determination
3012027Sjungma@eit.uni-kl.de   of the TLM version information. This conforms to IEEE 1666-2005 section 8.5.5 - 8.5.7
3112027Sjungma@eit.uni-kl.de   .
3212027Sjungma@eit.uni-kl.de   The following are provided:
3312027Sjungma@eit.uni-kl.de   .
3412027Sjungma@eit.uni-kl.de   preprocessor: TLM_VERSION_MAJOR        numeric
3512027Sjungma@eit.uni-kl.de                 TLM_VERSION_MINOR        numeric
3612027Sjungma@eit.uni-kl.de                 TLM_VERSION_PATCH        numeric
3712027Sjungma@eit.uni-kl.de                 TLM_VERSION_ORIGINATOR   string       ([A-Z][a-z][0-9]_)
3812027Sjungma@eit.uni-kl.de                 TLM_VERSION_RELEASE_DATE ISO8601 date (YYYYMMDD)
3912027Sjungma@eit.uni-kl.de                 TLM_VERSION_PRERELEASE   string       ([A-Z][a-z][0-9]_)
4012027Sjungma@eit.uni-kl.de                 TLM_IS_PRERELEASE        bool         (1,0)
4112027Sjungma@eit.uni-kl.de                 TLM_VERSION              string       {2.0.0_DR3-TLMWG}
4212027Sjungma@eit.uni-kl.de                 TLM_COPYRIGHT            string
4312027Sjungma@eit.uni-kl.de   .
4412027Sjungma@eit.uni-kl.de   compiler:     tlm_version_major        const unsigned int
4512027Sjungma@eit.uni-kl.de                 tlm_version_minor        const unsigned int
4612027Sjungma@eit.uni-kl.de                 tlm_version_patch        const unsigned int
4712027Sjungma@eit.uni-kl.de                 tlm_version_originator   const std::string
4812027Sjungma@eit.uni-kl.de                 tlm_version_release_date const std::string
4912027Sjungma@eit.uni-kl.de                 tlm_version_prerelease   const std::string
5012027Sjungma@eit.uni-kl.de                 tlm_is_prerelease        const bool
5112027Sjungma@eit.uni-kl.de                 tlm_version              const string
5212027Sjungma@eit.uni-kl.de                 tlm_copyright            const string
5312027Sjungma@eit.uni-kl.de   .
5412027Sjungma@eit.uni-kl.de   accessors:    inline const char* tlm_release   (void)
5512027Sjungma@eit.uni-kl.de                 inline const char* tlm_version   (void)
5612027Sjungma@eit.uni-kl.de                 inline const char* tlm_copyright (void)
5712027Sjungma@eit.uni-kl.de
5812027Sjungma@eit.uni-kl.de--------------------------------------------------------------------------------------- */
5912027Sjungma@eit.uni-kl.de
6012027Sjungma@eit.uni-kl.de#ifndef __TLM_VERSION_H__
6112027Sjungma@eit.uni-kl.de#define __TLM_VERSION_H__
6212027Sjungma@eit.uni-kl.de
6312027Sjungma@eit.uni-kl.denamespace tlm
6412027Sjungma@eit.uni-kl.de{
6512027Sjungma@eit.uni-kl.de
6612027Sjungma@eit.uni-kl.de#define TLM_VERSION_MAJOR                   2           ///< version major level ( numeric )
6712027Sjungma@eit.uni-kl.de#define TLM_VERSION_MINOR                   0           ///< version minor level ( numeric )
6812027Sjungma@eit.uni-kl.de#define TLM_VERSION_PATCH                   3           ///< version patch level ( numeric )
6912027Sjungma@eit.uni-kl.de#define TLM_VERSION_ORIGINATOR              "Accellera" ///< TLM creator string
7012027Sjungma@eit.uni-kl.de#define TLM_VERSION_SEPARATOR               "."         ///< version string separator
7112027Sjungma@eit.uni-kl.de
7212027Sjungma@eit.uni-kl.de#define TLM_IS_PRERELEASE                   0           ///< pre-release flag ( 1 / 0 )
7312027Sjungma@eit.uni-kl.de
7412027Sjungma@eit.uni-kl.de#if TLM_IS_PRERELEASE
7512027Sjungma@eit.uni-kl.de#    define TLM_VERSION_PRERELEASE          "pub_rev"   ///< pre-release version string
7612027Sjungma@eit.uni-kl.de#else
7712027Sjungma@eit.uni-kl.de#    define TLM_VERSION_PRERELEASE          ""          ///< pre-release version string
7812027Sjungma@eit.uni-kl.de#endif
7912027Sjungma@eit.uni-kl.de
8012027Sjungma@eit.uni-kl.de#define TLM_VERSION_RELEASE_YEAR            "2013"      ///< release year  ( YYYY )
8112027Sjungma@eit.uni-kl.de#define TLM_VERSION_RELEASE_MONTH           "12"        ///< release month ( MM )
8212027Sjungma@eit.uni-kl.de#define TLM_VERSION_RELEASE_DAY             "15"        ///< release day   ( DD )
8312027Sjungma@eit.uni-kl.de
8412027Sjungma@eit.uni-kl.de#define TLM_COPYRIGHT \
8512027Sjungma@eit.uni-kl.de  "Copyright (c) 1996-" TLM_VERSION_RELEASE_YEAR " by all Contributors\n" \
8612027Sjungma@eit.uni-kl.de  "ALL RIGHTS RESERVED"
8712027Sjungma@eit.uni-kl.de
8812027Sjungma@eit.uni-kl.de/************************** do not modify below this line *******************************/
8912027Sjungma@eit.uni-kl.de
9012027Sjungma@eit.uni-kl.de/******************************* preprocessor symbols ***********************************/
9112027Sjungma@eit.uni-kl.de
9212027Sjungma@eit.uni-kl.de#define TLM_VERSION_RELEASE_DATE            TLM_VERSION_RELEASE_YEAR \
9312027Sjungma@eit.uni-kl.de                                            TLM_VERSION_RELEASE_MONTH \
9412027Sjungma@eit.uni-kl.de                                            TLM_VERSION_RELEASE_DAY
9512027Sjungma@eit.uni-kl.de
9612027Sjungma@eit.uni-kl.de#define TLM_VERSION_STR(x)                  TLM_VERSION_STR_HELPER(x)
9712027Sjungma@eit.uni-kl.de#define TLM_VERSION_STR_HELPER(x)           #x
9812027Sjungma@eit.uni-kl.de
9912027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_MAJOR            TLM_VERSION_STR(TLM_VERSION_MAJOR)
10012027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_MINOR            TLM_VERSION_STR(TLM_VERSION_MINOR)
10112027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_PATCH            TLM_VERSION_STR(TLM_VERSION_PATCH)
10212027Sjungma@eit.uni-kl.de
10312027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_MMP              TLM_VERSION_STRING_MAJOR TLM_VERSION_SEPARATOR \
10412027Sjungma@eit.uni-kl.de                                            TLM_VERSION_STRING_MINOR TLM_VERSION_SEPARATOR \
10512027Sjungma@eit.uni-kl.de                                            TLM_VERSION_STRING_PATCH
10612027Sjungma@eit.uni-kl.de
10712027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_PRE_START        "_"
10812027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_PRE_END          "-"
10912027Sjungma@eit.uni-kl.de
11012027Sjungma@eit.uni-kl.de#if ( TLM_IS_PRERELEASE == 1 )
11112027Sjungma@eit.uni-kl.de
11212027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_PRERELEASE       TLM_VERSION_PRERELEASE
11312027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_RELEASE_DATE     ""
11412027Sjungma@eit.uni-kl.de
11512027Sjungma@eit.uni-kl.de#else   /* TLM_IS_PRERELEASE == 1 */
11612027Sjungma@eit.uni-kl.de
11712027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_PRERELEASE       ""
11812027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_RELEASE_DATE     TLM_VERSION_RELEASE_DATE
11912027Sjungma@eit.uni-kl.de
12012027Sjungma@eit.uni-kl.de#endif  /* TLM_IS_PRERELEASE == 1 */
12112027Sjungma@eit.uni-kl.de
12212027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING                  TLM_VERSION_STRING_MMP \
12312027Sjungma@eit.uni-kl.de                                            TLM_VERSION_STRING_PRE_START \
12412027Sjungma@eit.uni-kl.de                                            TLM_VERSION_STRING_PRERELEASE \
12512027Sjungma@eit.uni-kl.de                                            TLM_VERSION_STRING_PRE_END \
12612027Sjungma@eit.uni-kl.de                                            TLM_VERSION_ORIGINATOR
12712027Sjungma@eit.uni-kl.de
12812027Sjungma@eit.uni-kl.de#define TLM_VERSION_STRING_2                "TLM " \
12912027Sjungma@eit.uni-kl.de                                            TLM_VERSION_STRING_MMP \
13012027Sjungma@eit.uni-kl.de                                            " --- " \
13112027Sjungma@eit.uni-kl.de                                            TLM_VERSION_RELEASE_YEAR \
13212027Sjungma@eit.uni-kl.de                                            "-" \
13312027Sjungma@eit.uni-kl.de                                            TLM_VERSION_RELEASE_MONTH \
13412027Sjungma@eit.uni-kl.de                                            "-" \
13512027Sjungma@eit.uni-kl.de                                            TLM_VERSION_RELEASE_DAY
13612027Sjungma@eit.uni-kl.de
13712027Sjungma@eit.uni-kl.de#define TLM_VERSION                         TLM_VERSION_STRING
13812027Sjungma@eit.uni-kl.de
13912027Sjungma@eit.uni-kl.de/********************************* compiler symbols **************************************/
14012027Sjungma@eit.uni-kl.de
14112027Sjungma@eit.uni-kl.deconst unsigned int tlm_version_major        ( TLM_VERSION_MAJOR               );
14212027Sjungma@eit.uni-kl.deconst unsigned int tlm_version_minor        ( TLM_VERSION_MINOR               );
14312027Sjungma@eit.uni-kl.deconst unsigned int tlm_version_patch        ( TLM_VERSION_PATCH               );
14412027Sjungma@eit.uni-kl.de
14512027Sjungma@eit.uni-kl.deconst bool         tlm_is_prerelease        ( TLM_IS_PRERELEASE               );
14612027Sjungma@eit.uni-kl.de
14712027Sjungma@eit.uni-kl.deconst std::string  tlm_version_string       ( TLM_VERSION_STRING              );
14812027Sjungma@eit.uni-kl.deconst std::string  tlm_version_originator   ( TLM_VERSION_ORIGINATOR          );
14912027Sjungma@eit.uni-kl.deconst std::string  tlm_version_prerelease   ( TLM_VERSION_PRERELEASE          );
15012027Sjungma@eit.uni-kl.deconst std::string  tlm_version_release_date ( TLM_VERSION_STRING_RELEASE_DATE );
15112027Sjungma@eit.uni-kl.deconst std::string  tlm_copyright_string     ( TLM_COPYRIGHT                   );
15212027Sjungma@eit.uni-kl.deconst std::string  tlm_version_string_2     ( TLM_VERSION_STRING_2            );
15312027Sjungma@eit.uni-kl.de
15412027Sjungma@eit.uni-kl.deinline const char*
15512027Sjungma@eit.uni-kl.detlm_release
15612027Sjungma@eit.uni-kl.de( void
15712027Sjungma@eit.uni-kl.de)
15812027Sjungma@eit.uni-kl.de{
15912027Sjungma@eit.uni-kl.de  return tlm_version_string.c_str ();
16012027Sjungma@eit.uni-kl.de}
16112027Sjungma@eit.uni-kl.de
16212027Sjungma@eit.uni-kl.deinline const char*
16312027Sjungma@eit.uni-kl.detlm_version
16412027Sjungma@eit.uni-kl.de( void
16512027Sjungma@eit.uni-kl.de)
16612027Sjungma@eit.uni-kl.de{
16712027Sjungma@eit.uni-kl.de  return tlm_version_string_2.c_str ();
16812027Sjungma@eit.uni-kl.de}
16912027Sjungma@eit.uni-kl.de
17012027Sjungma@eit.uni-kl.deinline const char*
17112027Sjungma@eit.uni-kl.detlm_copyright
17212027Sjungma@eit.uni-kl.de( void
17312027Sjungma@eit.uni-kl.de)
17412027Sjungma@eit.uni-kl.de{
17512027Sjungma@eit.uni-kl.de  return tlm_copyright_string.c_str ();
17612027Sjungma@eit.uni-kl.de}
17712027Sjungma@eit.uni-kl.de
17812027Sjungma@eit.uni-kl.de} // namespace tlm
17912027Sjungma@eit.uni-kl.de
18012027Sjungma@eit.uni-kl.de#endif /* __TLM_VERSION_H__ */
181