cabal-version:      1.12
name:               time-compat
version:            1.9.6.1
x-revision:         5
synopsis:           Compatibility package for time
description:
 This packages tries to compat as much of @time@ features as possible.
 .
 /TODO:/
 .
 * Difference type @ParseTime@ and @FormatTime@ instances are missing.
 .
 * Formatting varies depending on underlying @time@ version
 .
 * @dayFractionToTimeOfDay@ on extreme values

category:           Time, Compatibility
license:            BSD3
license-file:       LICENSE
maintainer:         Oleg Grenrus <[email protected]>
author:             Ashley Yakeley
homepage:           https://github.com/haskellari/time-compat
bug-reports:        https://github.com/haskellari/time-compat/issues
build-type:         Simple
extra-source-files: CHANGELOG.md
tested-with:
 GHC ==7.4.2
  || ==7.6.3
  || ==7.8.4
  || ==7.10.3
  || ==8.0.2
  || ==8.2.2
  || ==8.4.4
  || ==8.6.5
  || ==8.8.4
  || ==8.10.7
  || ==9.0.2
  || ==9.2.7
  || ==9.4.4
  || ==9.6.1

source-repository head
 type:     git
 location: https://github.com/haskellari/time-compat.git

flag old-locale
 description: If true, use old-locale, otherwise use time 1.5 or newer.
 manual:      False
 default:     False

library
 default-language: Haskell2010
 hs-source-dirs:   src
 other-extensions: CPP

 if impl(ghc >=7.2)
   default-extensions: Trustworthy

 build-depends:
     base          >=4.5     && <4.19
   , base-orphans  >=0.8.4   && <0.10
   , deepseq       >=1.3.0.0 && <1.4 || >=1.4.1.1 && <1.5
   , time          >=1.4     && <1.7 || >=1.8 && <1.9 || >=1.9.2 && <1.9.4 || >=1.10 && <1.10.1 || >=1.11 && <1.11.2 || >=1.12 && <1.13
   , hashable      >=1.3.2.0 && <1.5

 if flag(old-locale)
   build-depends:
       old-locale  >=1.0.0.2 && <1.1
     , time        >=1.4     && <1.5

 else
   build-depends: time >=1.5

 if !impl(ghc >=8.0)
   build-depends:
       fail        >=4.9.0.0 && <4.10
     , semigroups  >=0.18.5  && <0.21

 exposed-modules:
   Data.Time.Calendar.Compat
   Data.Time.Calendar.Easter.Compat
   Data.Time.Calendar.Julian.Compat
   Data.Time.Calendar.Month.Compat
   Data.Time.Calendar.MonthDay.Compat
   Data.Time.Calendar.OrdinalDate.Compat
   Data.Time.Calendar.Quarter.Compat
   Data.Time.Calendar.WeekDate.Compat
   Data.Time.Clock.Compat
   Data.Time.Clock.POSIX.Compat
   Data.Time.Clock.System.Compat
   Data.Time.Clock.TAI.Compat
   Data.Time.Compat
   Data.Time.Format.Compat
   Data.Time.Format.ISO8601.Compat
   Data.Time.LocalTime.Compat

 other-modules:
   Data.Format
   Data.Time.Calendar.Private
   Data.Time.Calendar.Types
   Data.Time.Orphans

test-suite instances
 default-language: Haskell2010
 type:             exitcode-stdio-1.0
 hs-source-dirs:   test-instances
 main-is:          Test.hs
 build-depends:
     base
   , deepseq
   , HUnit        >=1.3.1 && <1.3.2 || >=1.6.0.0 && <1.7
   , hashable     >=1.3.1.0 && <1.5
   , time-compat

-- This test-suite is from time library
-- Changes:
-- * imports: Data.Time -> Data.Time.Compat etc
-- * disabled Test.Format.ParseTime
-- * Test.Format.Format has also trees disabled
-- * Test.Format.Compile doesn't work
-- * disabled 'TimeOfDay minBound 0 0' (Test.LocalTime.Time)
--
test-suite main
 if !impl(ghc >=7.4)
   buildable: False

 default-language:   Haskell2010
 type:               exitcode-stdio-1.0
 hs-source-dirs:     test/main
 default-extensions:
   CPP
   DeriveDataTypeable
   ExistentialQuantification
   FlexibleInstances
   MultiParamTypeClasses
   Rank2Types
   ScopedTypeVariables
   StandaloneDeriving
   TupleSections
   UndecidableInstances

 ghc-options:        -Wall -fwarn-tabs
 build-depends:
     base
   , base-compat       >=0.10.5 && <0.14
   , deepseq
   , QuickCheck        >=2.13   && <2.15
   , tagged            >=0.8.6  && <0.9
   , tasty             >=1.2.1  && <1.5
   , tasty-hunit       >=0.10   && <0.11
   , tasty-quickcheck  >=0.10   && <0.11
   , time-compat

 if !impl(ghc >=8.0)
   build-depends:
       fail        >=4.9.0.0 && <4.10
     , semigroups  >=0.18.5  && <0.21

 build-depends:      time
 main-is:            Main.hs
 other-modules:
   Test.Arbitrary
   Test.Calendar.AddDays
   Test.Calendar.AddDaysRef
   Test.Calendar.CalendarProps
   Test.Calendar.Calendars
   Test.Calendar.CalendarsRef
   Test.Calendar.ClipDates
   Test.Calendar.ClipDatesRef
   Test.Calendar.ConvertBack
   Test.Calendar.Duration
   Test.Calendar.Easter
   Test.Calendar.EasterRef
   Test.Calendar.LongWeekYears
   Test.Calendar.LongWeekYearsRef
   Test.Calendar.MonthDay
   Test.Calendar.MonthDayRef
   Test.Calendar.Valid
   Test.Calendar.Week
   Test.Clock.Conversion
   Test.Clock.Resolution
   Test.Clock.TAI
   Test.Format.Compile
   Test.Format.Format
   Test.Format.ISO8601
   Test.Format.ParseTime
   Test.LocalTime.CalendarDiffTime
   Test.LocalTime.Time
   Test.LocalTime.TimeOfDay
   Test.LocalTime.TimeRef
   Test.TestUtil
   Test.Types