Add support for foreign libraries.
A stanza for a platform library looks something like platform-library test-package type: native-shared if os(Windows) options: standalone mod-def-file: TestPackage.def other-modules: MyPlatformLib.Hello MyPlatformLib.SomeBindings build-depends: base >=4.7 && <4.9 hs-source-dirs: src c-sources: csrc/MyPlatformLibWrapper.c default-language: Haskell2010 where native-shared means that we want to build a native shared library (.so on Linux, .dylib on OSX, .dll on Windows). The parser also recognizes native-static but this is not currently supported anywhere. The standalone option means that the we merge all library dependencies into the dynamic library (i.e., ghc options -shared -static), rather than make the created dynamic library just record its dependencies (ghc options -shared -dynamic); it is currently compulsory on Windows and unsupported anywhere else. The mod-def-file can be used to specify a module definition file, and is also Windows specific. There is a bit of refactoring in Build: gbuild is the old buildOrReplExe and now deals with both executables and platform libraries.
Showing
- Cabal/Cabal.cabal 9 additions, 0 deletionsCabal/Cabal.cabal
- Cabal/Distribution/Backpack/Configure.hs 10 additions, 0 deletionsCabal/Distribution/Backpack/Configure.hs
- Cabal/Distribution/PackageDescription/Check.hs 2 additions, 1 deletionCabal/Distribution/PackageDescription/Check.hs
- Cabal/Distribution/PackageDescription/Configuration.hs 77 additions, 97 deletionsCabal/Distribution/PackageDescription/Configuration.hs
- Cabal/Distribution/PackageDescription/Parse.hs 122 additions, 81 deletionsCabal/Distribution/PackageDescription/Parse.hs
- Cabal/Distribution/PackageDescription/Parsec.hs 10 additions, 1 deletionCabal/Distribution/PackageDescription/Parsec.hs
- Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs 29 additions, 0 deletionsCabal/Distribution/PackageDescription/Parsec/FieldDescr.hs
- Cabal/Distribution/PackageDescription/PrettyPrint.hs 9 additions, 0 deletionsCabal/Distribution/PackageDescription/PrettyPrint.hs
- Cabal/Distribution/Parsec/Class.hs 17 additions, 0 deletionsCabal/Distribution/Parsec/Class.hs
- Cabal/Distribution/Simple/Build.hs 31 additions, 0 deletionsCabal/Distribution/Simple/Build.hs
- Cabal/Distribution/Simple/BuildPaths.hs 12 additions, 1 deletionCabal/Distribution/Simple/BuildPaths.hs
- Cabal/Distribution/Simple/BuildTarget.hs 15 additions, 9 deletionsCabal/Distribution/Simple/BuildTarget.hs
- Cabal/Distribution/Simple/Configure.hs 93 additions, 0 deletionsCabal/Distribution/Simple/Configure.hs
- Cabal/Distribution/Simple/GHC.hs 388 additions, 95 deletionsCabal/Distribution/Simple/GHC.hs
- Cabal/Distribution/Simple/Haddock.hs 94 additions, 55 deletionsCabal/Distribution/Simple/Haddock.hs
- Cabal/Distribution/Simple/Install.hs 20 additions, 3 deletionsCabal/Distribution/Simple/Install.hs
- Cabal/Distribution/Simple/InstallDirs.hs 4 additions, 0 deletionsCabal/Distribution/Simple/InstallDirs.hs
- Cabal/Distribution/Simple/LocalBuildInfo.hs 1 addition, 0 deletionsCabal/Distribution/Simple/LocalBuildInfo.hs
- Cabal/Distribution/Simple/PreProcess.hs 10 additions, 0 deletionsCabal/Distribution/Simple/PreProcess.hs
- Cabal/Distribution/Simple/Program/GHC.hs 9 additions, 3 deletionsCabal/Distribution/Simple/Program/GHC.hs
Loading
Please register or sign in to comment