File tree Expand file tree Collapse file tree 8 files changed +53
-0
lines changed
cabal-testsuite/PackageTests/FFI/ForeignOptsCapi Expand file tree Collapse file tree 8 files changed +53
-0
lines changed Original file line number Diff line number Diff line change
1
+ {-# LANGUAGE CApiFFI #-}
2
+
3
+ module Main where
4
+
5
+ import Foreign.C (CInt (.. ))
6
+
7
+ foreign import capi " clib.h myplus"
8
+ myplus :: CInt -> CInt -> IO CInt
9
+
10
+ main :: IO ()
11
+ main = do
12
+ result <- myplus 5 6
13
+ if (result == 11 )
14
+ then putStrLn (" The result is " ++ show result)
15
+ else error (" Expected value 11, got " ++ show result)
Original file line number Diff line number Diff line change
1
+ # ForeignOptsCapi
2
+
3
+ This test case asserts that cabal passes ` cc-options ` to the C compiler when use ` foreign import capi ` .
Original file line number Diff line number Diff line change
1
+ # cabal v2-build
2
+ Configuration is affected by the following files:
3
+ - cabal.project
4
+ Resolving dependencies...
5
+ Build profile: -w ghc-<GHCVER> -O1
6
+ In order, the following will be built:
7
+ - foreign-opts-capi-0.1 (exe:foreign-opts-capi-exe) (first run)
8
+ Configuring executable 'foreign-opts-capi-exe' for foreign-opts-capi-0.1...
9
+ Preprocessing executable 'foreign-opts-capi-exe' for foreign-opts-capi-0.1...
10
+ Building executable 'foreign-opts-capi-exe' for foreign-opts-capi-0.1...
11
+ # foreign-opts-capi foreign-opts-capi-exe
12
+ The result is 11
Original file line number Diff line number Diff line change
1
+ packages : .
Original file line number Diff line number Diff line change
1
+ import Test.Cabal.Prelude
2
+ main = cabalTest $ do
3
+ cabal " v2-build" [" foreign-opts-capi-exe" ]
4
+ withPlan $ runPlanExe " foreign-opts-capi" " foreign-opts-capi-exe" []
Original file line number Diff line number Diff line change
1
+ #ifndef MYDEF
2
+ #error "Did not get required MYDEF from cc-options"
3
+ #endif
4
+
5
+ static inline int myplus (int a , int b ) {
6
+ return a + b ;
7
+ }
Original file line number Diff line number Diff line change
1
+ cabal-version : 3.0
2
+ name : foreign-opts-capi
3
+ version : 0.1
4
+ build-type : Simple
5
+
6
+ executable foreign-opts-capi-exe
7
+ main-is : Main.hs
8
+ build-depends : base
9
+ default-language : Haskell2010
10
+ include-dirs : cbits
11
+ cc-options : -DMYDEF= 1
You can’t perform that action at this time.
0 commit comments