-- Copyright 2020 United States Government as represented by the Administrator
-- of the National Aeronautics and Space Administration. All Rights Reserved.
--
-- Disclaimers
--
-- Licensed under the Apache License, Version 2.0 (the "License"); you may
-- not use this file except in compliance with the License. You may obtain a
-- copy of the License at
--
--      https://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-- License for the specific language governing permissions and limitations
-- under the License.

cabal-version:       2.0
build-type:          Custom
name:                ogma-language-smv
version:             1.11.0
homepage:            https://github.com/nasa/ogma
bug-reports:         https://github.com/nasa/ogma/issues
license:             Apache-2.0
license-file:        LICENSE
author:              Ivan Perez, Alwyn Goodloe
maintainer:          ivan.perezdominguez@nasa.gov
category:            Aerospace
extra-source-files:  CHANGELOG.md
                     grammar/SMV.cf
                     src/.keep
                     tests/smv_good
                     tests/smv_bad

synopsis:            Ogma: Runtime Monitor translator: SMV Language Frontend

description:         Ogma is a tool to facilitate the integration of safe runtime monitors into
                     other systems. Ogma extends
                     <https://github.com/Copilot-Language/copilot Copilot>, a high-level runtime
                     verification framework that generates hard real-time C99 code.
                     .
                     This library contains a frontend to read SMV Boolean expressions.

-- Ogma packages should be uncurated so that only the official maintainers make
-- changes.
--
-- Because this is a NASA project, we want to make sure that users obtain
-- exactly what we publish, unmodified by anyone external to our project.
x-curation: uncurated

source-repository head
  type:     git
  location: git@github.com:nasa/ogma.git
  subdir:   ogma-language-smv

custom-setup
  setup-depends:
      base    >= 4.11.0.0 && < 5
    , Cabal   >= 2.0 && < 3.15
    , process >= 1.6      && < 1.7

library

  exposed-modules:
    -- Automatically generated
    Language.SMV.AbsSMV
    Language.SMV.LexSMV
    Language.SMV.ParSMV
    Language.SMV.PrintSMV
    Language.SMV.Substitution

  autogen-modules:
    Language.SMV.AbsSMV
    Language.SMV.LexSMV
    Language.SMV.ParSMV
    Language.SMV.PrintSMV

  build-depends:
      base  >= 4.11.0.0 && < 5
    , array >= 0.5.2.0  && < 0.6

  build-tool-depends:
      alex:alex   >= 3
    , BNFC:bnfc   >= 2.9.4
    , happy:happy >= 1.19

  hs-source-dirs:
    src

  default-language:
    Haskell2010

test-suite unit-tests
  type:
    exitcode-stdio-1.0

  main-is:
    Main.hs

  build-depends:
      base                       >= 4.11.0.0 && < 5
    , QuickCheck                 >= 2.8.2    && < 2.16
    , test-framework             >= 0.8.2    && < 0.9
    , test-framework-quickcheck2 >= 0.3.0.4  && < 0.4

    , ogma-language-smv

  hs-source-dirs:
    tests

  default-language:
    Haskell2010

  ghc-options:
    -Wall
