Merge branch 'master' into subsystem-versioned
This commit is contained in:
commit
63eb0f2312
|
@ -108,6 +108,8 @@ next
|
|||
|
||||
- Do not require opam-installer anymore (#941, @diml)
|
||||
|
||||
- Add the `lib_root` and `libexec_root` install sections (#947, @diml)
|
||||
|
||||
1.0+beta20 (10/04/2018)
|
||||
-----------------------
|
||||
|
||||
|
|
|
@ -603,7 +603,9 @@ The syntax is as follows:
|
|||
manual. The following sections are available:
|
||||
|
||||
- ``lib``
|
||||
- ``lib_root``
|
||||
- ``libexec``
|
||||
- ``libexec_root``
|
||||
- ``bin``
|
||||
- ``sbin``
|
||||
- ``toplevel``
|
||||
|
|
|
@ -3,7 +3,9 @@ open Import
|
|||
module Section = struct
|
||||
type t =
|
||||
| Lib
|
||||
| Lib_root
|
||||
| Libexec
|
||||
| Libexec_root
|
||||
| Bin
|
||||
| Sbin
|
||||
| Toplevel
|
||||
|
@ -19,7 +21,9 @@ module Section = struct
|
|||
|
||||
let to_string = function
|
||||
| Lib -> "lib"
|
||||
| Lib_root -> "lib_root"
|
||||
| Libexec -> "libexec"
|
||||
| Libexec_root -> "libexec_root"
|
||||
| Bin -> "bin"
|
||||
| Sbin -> "sbin"
|
||||
| Toplevel -> "toplevel"
|
||||
|
@ -32,25 +36,29 @@ module Section = struct
|
|||
| Misc -> "misc"
|
||||
|
||||
let of_string = function
|
||||
| "lib" -> Some Lib
|
||||
| "libexec" -> Some Libexec
|
||||
| "bin" -> Some Bin
|
||||
| "sbin" -> Some Sbin
|
||||
| "toplevel" -> Some Toplevel
|
||||
| "share" -> Some Share
|
||||
| "share_root" -> Some Share_root
|
||||
| "etc" -> Some Etc
|
||||
| "doc" -> Some Doc
|
||||
| "stublibs" -> Some Stublibs
|
||||
| "man" -> Some Man
|
||||
| "misc" -> Some Misc
|
||||
|"lib" -> Some Lib
|
||||
|"lib_root" -> Some Lib_root
|
||||
|"libexec" -> Some Libexec
|
||||
|"libexec_root" -> Some Libexec_root
|
||||
|"bin" -> Some Bin
|
||||
|"sbin" -> Some Sbin
|
||||
|"toplevel" -> Some Toplevel
|
||||
|"share" -> Some Share
|
||||
|"share_root" -> Some Share_root
|
||||
|"etc" -> Some Etc
|
||||
|"doc" -> Some Doc
|
||||
|"stublibs" -> Some Stublibs
|
||||
|"man" -> Some Man
|
||||
|"misc" -> Some Misc
|
||||
| _ -> None
|
||||
|
||||
let t =
|
||||
let open Sexp.Of_sexp in
|
||||
enum
|
||||
[ "lib" , Lib
|
||||
; "lib_root" , Lib_root
|
||||
; "libexec" , Libexec
|
||||
; "libexec_root" , Libexec_root
|
||||
; "bin" , Bin
|
||||
; "sbin" , Sbin
|
||||
; "toplevel" , Toplevel
|
||||
|
@ -64,23 +72,29 @@ module Section = struct
|
|||
]
|
||||
|
||||
let should_set_executable_bit = function
|
||||
| Lib -> false
|
||||
| Libexec -> true
|
||||
| Bin -> true
|
||||
| Sbin -> true
|
||||
| Toplevel -> false
|
||||
| Share -> false
|
||||
| Share_root -> false
|
||||
| Etc -> false
|
||||
| Doc -> false
|
||||
| Stublibs -> true
|
||||
| Man -> false
|
||||
| Misc -> false
|
||||
| Lib
|
||||
| Lib_root
|
||||
| Toplevel
|
||||
| Share
|
||||
| Share_root
|
||||
| Etc
|
||||
| Doc
|
||||
| Man
|
||||
| Misc
|
||||
-> false
|
||||
| Libexec
|
||||
| Libexec_root
|
||||
| Bin
|
||||
| Sbin
|
||||
| Stublibs
|
||||
-> true
|
||||
|
||||
module Paths = struct
|
||||
type t =
|
||||
{ lib : Path.t
|
||||
; lib_root : Path.t
|
||||
; libexec : Path.t
|
||||
; libexec_root : Path.t
|
||||
; bin : Path.t
|
||||
; sbin : Path.t
|
||||
; toplevel : Path.t
|
||||
|
@ -94,23 +108,32 @@ module Section = struct
|
|||
|
||||
let make ~package ~destdir ?(libdir=Path.relative destdir "lib") () =
|
||||
let package = Package.Name.to_string package in
|
||||
{ bin = Path.relative destdir "bin"
|
||||
let lib_root = libdir in
|
||||
let libexec_root = libdir in
|
||||
let share_root = Path.relative destdir "share" in
|
||||
let etc_root = Path.relative destdir "etc" in
|
||||
let doc_root = Path.relative destdir "doc" in
|
||||
{ lib_root
|
||||
; libexec_root
|
||||
; share_root
|
||||
; bin = Path.relative destdir "bin"
|
||||
; sbin = Path.relative destdir "sbin"
|
||||
; toplevel = Path.relative libdir "toplevel"
|
||||
; share_root = Path.relative libdir "share"
|
||||
; stublibs = Path.relative libdir "lib/stublibs"
|
||||
; man = Path.relative destdir "man"
|
||||
; lib = Path.relative libdir package
|
||||
; libexec = Path.relative libdir package
|
||||
; share = Path.relative destdir ("share/" ^ package)
|
||||
; etc = Path.relative destdir ("etc/" ^ package)
|
||||
; doc = Path.relative destdir ("doc/" ^ package)
|
||||
; toplevel = Path.relative libdir "toplevel"
|
||||
; stublibs = Path.relative libdir "stublibs"
|
||||
; lib = Path.relative lib_root package
|
||||
; libexec = Path.relative libexec_root package
|
||||
; share = Path.relative share_root package
|
||||
; etc = Path.relative etc_root package
|
||||
; doc = Path.relative doc_root package
|
||||
}
|
||||
|
||||
let get t section =
|
||||
match section with
|
||||
| Lib -> t.lib
|
||||
| Lib_root -> t.lib_root
|
||||
| Libexec -> t.libexec
|
||||
| Libexec_root -> t.libexec_root
|
||||
| Bin -> t.bin
|
||||
| Sbin -> t.sbin
|
||||
| Toplevel -> t.toplevel
|
||||
|
@ -120,7 +143,7 @@ module Section = struct
|
|||
| Doc -> t.doc
|
||||
| Stublibs -> t.stublibs
|
||||
| Man -> t.man
|
||||
| Misc -> invalid_arg "Install.Paths.get"
|
||||
| Misc -> invalid_arg"Install.Paths.get"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -5,7 +5,9 @@ open Stdune
|
|||
module Section : sig
|
||||
type t =
|
||||
| Lib
|
||||
| Lib_root
|
||||
| Libexec
|
||||
| Libexec_root
|
||||
| Bin
|
||||
| Sbin
|
||||
| Toplevel
|
||||
|
@ -28,7 +30,9 @@ module Section : sig
|
|||
|
||||
type t =
|
||||
{ lib : Path.t
|
||||
; lib_root : Path.t
|
||||
; libexec : Path.t
|
||||
; libexec_root : Path.t
|
||||
; bin : Path.t
|
||||
; sbin : Path.t
|
||||
; toplevel : Path.t
|
||||
|
|
Loading…
Reference in New Issue