name = "elogs"
description = "Embedded logging, proven absent of runtime errors"
version = "1.3.2"

authors = ["Kevin Chadwick"]
maintainers = ["Kevin Chadwick <kc-ada@elansys.co>"]
maintainers-logins = ["kevlar700"]
licenses = "0BSD"
website = "https://github.com/kevlar700/elogs"
tags = ["spark", "embedded", "zfp", "logging", "log"]

[[depends-on]]
gnat = "(>=13 & <2000) | ^11 | >=2020"
# Ada 2022 was not supported until Gnat 11
# Version 12 chokes on Source_Code_Information visibility in Source_Code

[configuration.variables]
Max_Log_Count = {type = "Integer", default = 50}
Max_Message_Length = {type = "Integer", default = 200}
Device_ID_Length = {type = "Integer", default = 12}
Version_Length = {type = "Integer", default = 8}

# switch modifications apply to this crate only
# categories covered currently include optimization, debug_info, contracts, compile_checks, runtime_checks, style_checks, ada_version, source_encoding
[build-switches]
"*".ada_version = ["-gnat2022"]
#development.optimization = ["-Os"]
release.compile_checks = ["-gnatw.c", "-gnatwf", "-gnatw.o", "-gnatwt", "-gnatw.w", "-gnatin"]
development.compile_checks = ["-gnatw.c", "-gnatwf", "-gnatw.o", "-gnatwt", "-gnatw.w", "-gnatin"]
validation.compile_checks = ["-gnatw.c", "-gnatwf", "-gnatw.o", "-gnatwt", "-gnatw.w", "-gnatin"]

# -gnatw.c
#    Activate warnings on missing component clauses.
#    This switch activates warnings for record components where a record representation clause is present and has component clauses for the majority, but not all, of the components. A warning is given for each component for which no component clause is present.

# -gnatwf
#    Activate warnings on unreferenced formals.
#    This switch causes a warning to be generated if a formal parameter is not referenced in the body of the subprogram. This warning can also be turned on using -gnatwu. The default is that these warnings are not generated.

# -gnatwh
#    Activate warnings on hiding.
#    This switch activates warnings on hiding declarations that are considered potentially confusing. Not all cases of hiding cause warnings; for example an overriding declaration hides an implicit declaration, which is just normal code. The default is that warnings on hiding are not generated.

# -gnatw.o
#    Activate warnings on modified but unreferenced out parameters.
#    This switch activates warnings for variables that are modified by using them as actuals for a call to a procedure with an out mode formal, where the resulting assigned value is never read. It is applicable in the case where there is more than one out mode formal. If there is only one out mode formal, the warning is issued by default (controlled by -gnatwu). The warning is suppressed for volatile variables and also for variables that are renamings of other variables or for which an address clause is given. The default is that these warnings are not given.

# -gnatwt
#    Activate warnings for tracking of deleted conditional code.
#    This switch activates warnings for tracking of code in conditionals (IF and CASE statements) that is detected to be dead code which cannot be executed, and which is removed by the front end. This warning is off by default. This may be useful for detecting deactivated code in certified applications.

# -gnatw.w
#    Activate warnings on Warnings Off pragmas.
#    This switch activates warnings for use of pragma Warnings (Off, entity) where either the pragma is entirely useless (because it suppresses no warnings), or it could be replaced by pragma Unreferenced or pragma Unmodified. Also activates warnings for the case of Warnings (Off, String), where either there is no matching Warnings (On, String), or the Warnings (Off) did not suppress any warning. The default is that these warnings are not given.

## We don't want any characters to be misread or shadow variables to be confused. The best way is to only allow ASCII-7 in source code like Ada83. You can still reference characters by names or encoding
## pragma Restrictions (No_Wide_Characters) is also required in gnat.adc
#-gnatic Normally GNAT recognizes the Latin-1 character set in source program identifiers, as described in the Ada Reference Manual. This switch causes GNAT to recognize alternate character sets in identifiers. c is a single character indicating the character set, as follows:
#1 ISO 8859-1 (Latin-1) identifiers
#2 ISO 8859-2 (Latin-2) letters allowed in identifiers
#3 ISO 8859-3 (Latin-3) letters allowed in identifiers
#4 ISO 8859-4 (Latin-4) letters allowed in identifiers
#5 ISO 8859-5 (Cyrillic) letters allowed in identifiers
#9 ISO 8859-15 (Latin-9) letters allowed in identifiers
#p IBM PC letters (code page 437) allowed in identifiers
#8 IBM PC letters (code page 850) allowed in identifiers
#f Full upper-half codes allowed in identifiers
#n No upper-half codes allowed in identifiers (ASCII-7)
#w Wide-character codes (that is, codes greater than 255) allowed in identifiers



[origin]
commit = "d081b18a1dc31483952467fea0ca34adbb6b49f3"
url = "git+https://github.com/kevlar700/elogs.git"

