Merge branch 'master' into subsystem-versioned

This commit is contained in:
Rudi Grinberg 2018-07-03 18:59:02 +07:00 committed by GitHub
commit 63eb0f2312
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 125 additions and 94 deletions

View File

@ -108,6 +108,8 @@ next
- Do not require opam-installer anymore (#941, @diml) - 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) 1.0+beta20 (10/04/2018)
----------------------- -----------------------

View File

@ -603,7 +603,9 @@ The syntax is as follows:
manual. The following sections are available: manual. The following sections are available:
- ``lib`` - ``lib``
- ``lib_root``
- ``libexec`` - ``libexec``
- ``libexec_root``
- ``bin`` - ``bin``
- ``sbin`` - ``sbin``
- ``toplevel`` - ``toplevel``

View File

@ -3,7 +3,9 @@ open Import
module Section = struct module Section = struct
type t = type t =
| Lib | Lib
| Lib_root
| Libexec | Libexec
| Libexec_root
| Bin | Bin
| Sbin | Sbin
| Toplevel | Toplevel
@ -19,7 +21,9 @@ module Section = struct
let to_string = function let to_string = function
| Lib -> "lib" | Lib -> "lib"
| Lib_root -> "lib_root"
| Libexec -> "libexec" | Libexec -> "libexec"
| Libexec_root -> "libexec_root"
| Bin -> "bin" | Bin -> "bin"
| Sbin -> "sbin" | Sbin -> "sbin"
| Toplevel -> "toplevel" | Toplevel -> "toplevel"
@ -33,7 +37,9 @@ module Section = struct
let of_string = function let of_string = function
|"lib" -> Some Lib |"lib" -> Some Lib
|"lib_root" -> Some Lib_root
|"libexec" -> Some Libexec |"libexec" -> Some Libexec
|"libexec_root" -> Some Libexec_root
|"bin" -> Some Bin |"bin" -> Some Bin
|"sbin" -> Some Sbin |"sbin" -> Some Sbin
|"toplevel" -> Some Toplevel |"toplevel" -> Some Toplevel
@ -50,7 +56,9 @@ module Section = struct
let open Sexp.Of_sexp in let open Sexp.Of_sexp in
enum enum
[ "lib" , Lib [ "lib" , Lib
; "lib_root" , Lib_root
; "libexec" , Libexec ; "libexec" , Libexec
; "libexec_root" , Libexec_root
; "bin" , Bin ; "bin" , Bin
; "sbin" , Sbin ; "sbin" , Sbin
; "toplevel" , Toplevel ; "toplevel" , Toplevel
@ -64,23 +72,29 @@ module Section = struct
] ]
let should_set_executable_bit = function let should_set_executable_bit = function
| Lib -> false | Lib
| Libexec -> true | Lib_root
| Bin -> true | Toplevel
| Sbin -> true | Share
| Toplevel -> false | Share_root
| Share -> false | Etc
| Share_root -> false | Doc
| Etc -> false | Man
| Doc -> false | Misc
| Stublibs -> true -> false
| Man -> false | Libexec
| Misc -> false | Libexec_root
| Bin
| Sbin
| Stublibs
-> true
module Paths = struct module Paths = struct
type t = type t =
{ lib : Path.t { lib : Path.t
; lib_root : Path.t
; libexec : Path.t ; libexec : Path.t
; libexec_root : Path.t
; bin : Path.t ; bin : Path.t
; sbin : Path.t ; sbin : Path.t
; toplevel : Path.t ; toplevel : Path.t
@ -94,23 +108,32 @@ module Section = struct
let make ~package ~destdir ?(libdir=Path.relative destdir "lib") () = let make ~package ~destdir ?(libdir=Path.relative destdir "lib") () =
let package = Package.Name.to_string package in 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" ; 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" ; man = Path.relative destdir "man"
; lib = Path.relative libdir package ; toplevel = Path.relative libdir "toplevel"
; libexec = Path.relative libdir package ; stublibs = Path.relative libdir "stublibs"
; share = Path.relative destdir ("share/" ^ package) ; lib = Path.relative lib_root package
; etc = Path.relative destdir ("etc/" ^ package) ; libexec = Path.relative libexec_root package
; doc = Path.relative destdir ("doc/" ^ package) ; share = Path.relative share_root package
; etc = Path.relative etc_root package
; doc = Path.relative doc_root package
} }
let get t section = let get t section =
match section with match section with
| Lib -> t.lib | Lib -> t.lib
| Lib_root -> t.lib_root
| Libexec -> t.libexec | Libexec -> t.libexec
| Libexec_root -> t.libexec_root
| Bin -> t.bin | Bin -> t.bin
| Sbin -> t.sbin | Sbin -> t.sbin
| Toplevel -> t.toplevel | Toplevel -> t.toplevel

View File

@ -5,7 +5,9 @@ open Stdune
module Section : sig module Section : sig
type t = type t =
| Lib | Lib
| Lib_root
| Libexec | Libexec
| Libexec_root
| Bin | Bin
| Sbin | Sbin
| Toplevel | Toplevel
@ -28,7 +30,9 @@ module Section : sig
type t = type t =
{ lib : Path.t { lib : Path.t
; lib_root : Path.t
; libexec : Path.t ; libexec : Path.t
; libexec_root : Path.t
; bin : Path.t ; bin : Path.t
; sbin : Path.t ; sbin : Path.t
; toplevel : Path.t ; toplevel : Path.t