{- | Module : $Header$ Description : Conditional compilation Copyright : (c) 2017 Finn Teegen License : BSD-3-clause Maintainer : fte@informatik.uni-kiel.de Stability : experimental Portability : portable TODO -} module CondCompile (condCompile) where import Curry.Base.Monad import Curry.CondCompile.Transform (condTransform) import CompilerOpts (CppOpts (..)) condCompile :: CppOpts -> FilePath -> String -> CYIO String condCompile opts fn p | not (cppRun opts) = return p | otherwise = either (failMessages . (: [])) ok (condTransform (cppDefinitions opts) fn p)