VBABuilder/src/builder/Declarations.bas
2024-06-07 20:43:26 +03:00

214 lines
4.8 KiB
QBasic

Attribute VB_Name = "Declarations"
Option Private Module
Option Explicit
Public Const SERVER_PATH_CIHT = "\\fs1.concept.ru\projects\04 Íàïðàâëåíèÿ äåÿòåëüíîñòè\60 ÊÈÂÒ"
Public Const SERVER_PATH_AUTOMATION = "\\fs1.concept.ru\projects\10 Àâòîìàòèçàöèÿ äåÿòåëüíîñòè"
' ========= Parameters =======
Public Const MAKEFILE_NAME = "VBAMake.txt"
Public Const LOC_MINIMUM = 3 ' Minimum ammount of lines of code required to be listed in Modules
Public Const FIRST_ROW = 2
Public Const TABLE_HEAD_PRODUCT = "ProductName"
Public Const SUBFOLDER_SKELETON = "skeleton"
Public Const SUBFOLDER_SCRIPT = "script"
Public Const SUBFOLDER_UI = "ui"
Public Const SUBFOLDER_VERSION_ARCHIVE = "!Versions"
Public Const SHEET_PRODUCTS = "Products"
Public Const SHEET_COMPONENTS = "Components"
Public Const SHEET_SHARED = "Shared"
Public Const SHEET_TESTS = "Tests"
Public Const SHEET_PARAMETERS = "Params"
Public Const MANIFEST_PROPS_NAME = "name"
Public Const MANIFEST_PROPS_ARTIFACT = "artifact"
Public Const MAKEFILE_PROPS_ID = "id"
Public Const MAKEFILE_PROPS_NAME = "name"
Public Const MAKEFILE_PROPS_DESCRIPTION = "description"
Public Const MAKEFILE_PROPS_ARTIFACT = "artifact_home"
Public Const MAKEFILE_PROPS_SOURCE = "source_home"
Public Const MAKEFILE_PROPS_INSTALL = "install_home"
Public Enum TVBReference
T_REF_UNDEF = 0
[_First] = 1
T_REF_GLOBAL_NAME = 1
T_REF_GUID = 2
T_REF_FILE = 3
[_Last] = 3
End Enum
Public Enum TBuildAction
T_ACT_UNDEF = 0
[_First] = 1
T_ACT_BUILD = 1
T_ACT_COPY = 2
T_ACT_SAVE_AS = 3
T_ACT_RUN = 4
T_ACT_INSTALL = 5
T_ACT_TEMPLATE = 6
[_Last] = 6
End Enum
' Domain for local paths
Public Enum TPathDomain
T_PD_UNDEF = 0
[_First] = 1
T_PD_SOURCE = 1
T_PD_ARTIFACT = 2
T_PD_GLOBAL = 3
[_Last] = 3
End Enum
Public Enum TBuildStatus
T_BS_PENDING = 0
T_BS_OK = 1
T_BS_FAILED = 2
End Enum
Public Enum TBuildType
T_BUILD_DEBUG = 0
T_BUILD_RELEASE = 1
End Enum
' _R_ - reference attributes
Public Enum RefsStruct
[_First] = 1
S_R_NAME = 1
S_R_TYPE = 2
S_R_FILE = 3
S_R_GUID = 4
S_R_BROKEN = 5
S_R_MAJOR = 6
S_R_MINOR = 7
S_R_DESCRIPTION = 8
[_Last] = 8
End Enum
' _M_ - module attributes
Public Enum ModuleStruct
[_First] = 1
S_M_NAME = 1
S_M_TYPE = 2
S_M_SHARED = 3
S_M_LINES_TOTAL = 4
S_M_LINES_DECLARATIONS = 5
S_M_COUNT_API = 6
[_Last] = 6
End Enum
' _S_ - shared module attributes
Public Enum SharedStruct
[_First] = 1
S_S_NAME = 1
S_S_TYPE = 2
S_S_PATH = 3
S_S_VERSION = 4
S_S_LINES_TOTAL = 5
S_S_LINES_DECLARATIONS = 6
S_S_API_COUNT = 7
S_S_USAGE = 8
[_Last] = 8
End Enum
' _T_ - tests module attributes
Public Enum TestStruct
[_First] = 1
S_T_PRODUCT = 1
S_T_COMPONENT = 2
S_T_SUITE = 3
S_T_TEST = 4
S_T_DATE = 5
S_T_DURATION = 6
S_T_STATUS = 7
S_T_MESSAGE = 8
[_Last] = 8
End Enum
' _G_ - global references
Public Enum GlobalRefsStruct
[_First] = 1
S_G_NAME_ID = 1
S_G_GUID = 2
S_G_MINOR = 3
S_G_MAJOR = 4
S_G_FULL_NAME = 5
[_Last] = 5
End Enum
' ========== Conversion API ========
Public Function ActionType2Text(aType As TBuildAction) As String
Select Case aType
Case T_ACT_BUILD: ActionType2Text = "build"
Case T_ACT_COPY: ActionType2Text = "copy"
Case T_ACT_SAVE_AS: ActionType2Text = "save_as"
Case T_ACT_RUN: ActionType2Text = "run"
Case T_ACT_INSTALL: ActionType2Text = "install"
Case T_ACT_TEMPLATE: ActionType2Text = "add_template"
Case Else: ActionType2Text = "UNDEF"
End Select
End Function
Public Function Text2ActionType(sText$) As TBuildAction
Select Case sText
Case "build": Text2ActionType = T_ACT_BUILD
Case "copy": Text2ActionType = T_ACT_COPY
Case "save_as": Text2ActionType = T_ACT_SAVE_AS
Case "run": Text2ActionType = T_ACT_RUN
Case "install": Text2ActionType = T_ACT_INSTALL
Case "add_template": Text2ActionType = T_ACT_TEMPLATE
Case Else: Text2ActionType = "UNDEF"
End Select
End Function
Public Function RefTypeFrom(sTypeText$) As TVBReference
Select Case sTypeText
Case "global": RefTypeFrom = T_REF_GLOBAL_NAME
Case "guid": RefTypeFrom = T_REF_GUID
Case "file": RefTypeFrom = T_REF_FILE
Case Else: RefTypeFrom = T_REF_UNDEF
End Select
End Function
Public Function RefTypeToString(iType As TVBReference) As String
Select Case iType
Case T_REF_GLOBAL_NAME: RefTypeToString = "global"
Case T_REF_GUID: RefTypeToString = "guid"
Case T_REF_FILE: RefTypeToString = "file"
Case Else: RefTypeToString = "UNDEF"
End Select
End Function
Public Function BuildDescription(bType As TBuildType) As String
Select Case bType
Case T_BUILD_DEBUG: BuildDescription = "Debug"
Case T_BUILD_RELEASE: BuildDescription = "Release"
Case Else: BuildDescription = "UNKNOWN"
End Select
End Function
Public Function IsVBAModuleExtension(sExt$) As Boolean
IsVBAModuleExtension = sExt = "cls" Or sExt = "frm" Or sExt = "bas"
End Function