IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 17, 2009, 12:08:50 PM (17 years ago)
Author:
beaumont
Message:

merged with head

Location:
branches/cnb_branches/cnb_branch_20090301
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/cnb_branches/cnb_branch_20090301

  • branches/cnb_branches/cnb_branch_20090301/psastro

  • branches/cnb_branches/cnb_branch_20090301/psastro/src/psastroVersion.c

    r21409 r23352  
    55 *  @ingroup libpsastro
    66 *
    7  *  @author IfA
    8  *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2009-02-07 02:03:34 $
    107 *  Copyright 2009 Institute for Astronomy, University of Hawaii
    118 */
     
    1310#include "psastroInternal.h"
    1411
    15 static const char *cvsTag = "$Name: not supported by cvs2svn $";///< CVS tag name
     12#ifndef PSASTRO_VERSION
     13#error "PSASTRO_VERSION is not set"
     14#endif
     15#ifndef PSASTRO_BRANCH
     16#error "PSASTRO_BRANCH is not set"
     17#endif
     18#ifndef PSASTRO_SOURCE
     19#error "PSASTRO_SOURCE is not set"
     20#endif
     21
     22#define xstr(s) str(s)
     23#define str(s) #s
    1624
    1725psString psastroVersion(void)
    1826{
    19     psString version = NULL;            // Version, to return
    20     psStringAppend(&version, "%s-%s",PACKAGE_NAME,PACKAGE_VERSION);
    21     return version;
     27    char *value = NULL;
     28    psStringAppend(&value, "%s@%s", xstr(PSASTRO_BRANCH), xstr(PSASTRO_VERSION));
     29    return value;
     30}
     31
     32psString psastroSource(void)
     33{
     34  return psStringCopy(xstr(PSASTRO_SOURCE));
    2235}
    2336
    2437psString psastroVersionLong(void)
    2538{
    26     psString version = psastroVersion(); // Version, to return
    27     psString tag = psStringStripCVS(cvsTag, "Name"); // CVS tag
    28     psStringAppend(&version, " (cvs tag %s) %s, %s", tag, __DATE__, __TIME__);
    29     psFree(tag);
     39    psString version = psastroVersion();  // Version, to return
     40    psString source = psastroSource();    // Source
     41
     42    psStringPrepend(&version, "psastro ");
     43    psStringAppend(&version, " from %s, built %s, %s", source, __DATE__, __TIME__);
     44    psFree(source);
     45
     46#ifdef __OPTIMIZE__
     47    psStringAppend(&version, " optimised");
     48#else
     49    psStringAppend(&version, " unoptimised");
     50#endif
     51
    3052    return version;
     53};
     54
     55bool psastroVersionHeader(psMetadata *header)
     56{
     57    PS_ASSERT_METADATA_NON_NULL(header, false);
     58
     59    psString version = psastroVersion(); // Software version
     60    psString source = psastroSource();   // Software source
     61
     62    psStringPrepend(&version, "psastro version: ");
     63    psStringPrepend(&source, "psastro source: ");
     64
     65    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, version);
     66    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, source);
     67
     68    psFree(version);
     69    psFree(source);
     70
     71    return true;
    3172}
    3273
     74bool psastroVersionHeaderFull(psMetadata *header)
     75{
     76    PS_ASSERT_METADATA_NON_NULL(header, false);
     77
     78    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
     79    psString timeString = psTimeToISO(time); // The time in an ISO string
     80    psFree(time);
     81    psString history = NULL;               // History string
     82    psStringAppend(&history, "psastro at %s", timeString);
     83    psFree(timeString);
     84    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, history);
     85    psFree(history);
     86
     87    psLibVersionHeader(header);
     88    psModulesVersionHeader(header);
     89    ppStatsVersionHeader(header);
     90    psastroVersionHeader(header);
     91
     92    return true;
     93}
     94
     95void psastroVersionPrint(void)
     96{
     97    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
     98    psString timeString = psTimeToISO(time); // The time in an ISO string
     99    psFree(time);
     100    psLogMsg("psastro", PS_LOG_INFO, "psastro at %s", timeString);
     101    psFree(timeString);
     102
     103    psString pslib = psLibVersionLong();// psLib version
     104    psString psmodules = psModulesVersionLong(); // psModules version
     105    psString ppStats = ppStatsVersionLong(); // ppStats version
     106    psString psastro = psastroVersionLong(); // psastro version
     107
     108    psLogMsg("psastro", PS_LOG_INFO, "%s", pslib);
     109    psLogMsg("psastro", PS_LOG_INFO, "%s", psmodules);
     110    psLogMsg("psastro", PS_LOG_INFO, "%s", ppStats);
     111    psLogMsg("psastro", PS_LOG_INFO, "%s", psastro);
     112
     113    psFree(pslib);
     114    psFree(psmodules);
     115    psFree(ppStats);
     116    psFree(psastro);
     117
     118    return;
     119}
Note: See TracChangeset for help on using the changeset viewer.