packages feed

language-c-inline-0.3.0.0: language-c-inline.cabal

Name:                   language-c-inline
Version:                0.3.0.0
Cabal-version:          >= 1.9.2
Tested-with:            GHC == 7.6.3
Build-type:             Simple

Synopsis:               Inline C & Objective-C code in Haskell for language interoperability
Description:            This library provides inline C & Objective-C code using GHC's support for
                        quasi-quotation. In particular, it enables the use of foreign libraries
                        without a dedicated bridge or binding. Here is a tiny example:
                        .
                        > log :: String -> IO ()
                        > log msg = $(objc 'msg [cexp| NSLog (@"Here is a message from Haskell: %@", msg) |])
                        .
                        For more information, see <https://github.com/mchakravarty/language-c-inline/wiki>.
                        .
                        Known bugs: <https://github.com/mchakravarty/language-c-inline/issues>
                        .
                        * New in 0.3.0.0: Boxed Haskell types without a dedicated type mapping are marshalled using stable
                        pointers.
                        .
                        * New in 0.2.0.0: Support for multiple free variables in one inline expression as well
                        as for inline code returning 'void'.
                        .
                        * New in 0.1.0.0: We are just getting started! This is just a ROUGH AND
                        HIGHLY EXPERIMENTAL PROTOTYPE.
License:                BSD3
License-file:           LICENSE
Author:                 Manuel M T Chakravarty
Maintainer:             Manuel M T Chakravarty <chak@justtesting.org>
Homepage:               https://github.com/mchakravarty/language-c-inline/
Bug-reports:            https://github.com/mchakravarty/language-c-inline/issues

Category:               Language, Foreign
Stability:              Experimental

Extra-source-files:     README.md
                        tests/objc/concept/Makefile
                        tests/objc/app/App.hs
                        tests/objc/app/AppDelegate.hs
                        tests/objc/app/Interpreter.hs
                        tests/objc/app/Main.hs
                        tests/objc/app/Makefile
                        tests/objc/app/Readme.md
                        tests/objc/app/HSApp.app/Contents/Info.plist
                        tests/objc/app/HSApp.app/Contents/MacOS/.gitkeep
                        tests/objc/app/HSApp.app/Contents/Resources/en.lproj/Credits.rtf
                        tests/objc/app/HSApp.app/Contents/Resources/en.lproj/InfoPlist.strings
                        tests/objc/app/HSApp.app/Contents/Resources/en.lproj/MainMenu.nib

Source-repository head
  Type:                 git
  Location:             git://github.com/mchakravarty/language-c-inline.git

Library
  Build-depends:        array,
                        base              >= 4.0 && < 5,
                        filepath          >= 1.2,
                        language-c-quote  >= 0.7,
                        mainland-pretty   >= 0.2.5,
                        template-haskell

  Exposed-modules:      Language.C.Inline.ObjC

  Other-modules:        Language.C.Inline.Error
                        Language.C.Inline.State
                        Language.C.Inline.ObjC.Marshal

  Extensions:           TemplateHaskell, QuasiQuotes

-- Doesn't work!!! Use the Makefile in the tests/ instead. (How can we get cabal to compile & link the generated ObjC files?)
Test-Suite concept
  Build-depends:        base              >= 4.0 && < 5,
                        language-c-quote,
                        language-c-inline
  
  Frameworks:           Foundation

  Type:                 exitcode-stdio-1.0

  Hs-source-dirs:       tests/objc/concept

  Main-is:              MainInlineObjC.hs

  Other-modules:        TestInlineObjC