Dune: do not use the infamous "OCaml syntax" anymore
In the process, we merged the two opam file and the functorized version now properly reads `TEZOS_PROTOCOL`.
This commit is contained in:
parent
f9cbdf9110
commit
c3dd98dc0f
14
Makefile
14
Makefile
@ -13,7 +13,7 @@ endif
|
|||||||
|
|
||||||
current_ocaml_version := $(shell opam exec -- ocamlc -version)
|
current_ocaml_version := $(shell opam exec -- ocamlc -version)
|
||||||
|
|
||||||
all:
|
all: generate_dune
|
||||||
ifneq (${current_ocaml_version},${ocaml_version})
|
ifneq (${current_ocaml_version},${ocaml_version})
|
||||||
$(error Unexpected ocaml version (found: ${current_ocaml_version}, expected: ${ocaml_version}))
|
$(error Unexpected ocaml version (found: ${current_ocaml_version}, expected: ${ocaml_version}))
|
||||||
endif
|
endif
|
||||||
@ -37,7 +37,17 @@ endif
|
|||||||
cp _build/default/src/proto_$$p/bin_accuser/main_accuser_$$p.exe tezos-accuser-`echo $$p | tr -- _ -` ; \
|
cp _build/default/src/proto_$$p/bin_accuser/main_accuser_$$p.exe tezos-accuser-`echo $$p | tr -- _ -` ; \
|
||||||
done
|
done
|
||||||
|
|
||||||
all.pkg:
|
PROTOCOLS := genesis alpha demo
|
||||||
|
DUNE_INCS=$(patsubst %,src/proto_%/lib_protocol/src/dune.inc, ${PROTOCOLS})
|
||||||
|
|
||||||
|
generate_dune: ${DUNE_INCS}
|
||||||
|
|
||||||
|
${DUNE_INCS}:: src/proto_%/lib_protocol/src/dune.inc: \
|
||||||
|
src/proto_%/lib_protocol/src/TEZOS_PROTOCOL
|
||||||
|
dune build @$(dir $@)/runtest_dune_template --auto-promote
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
all.pkg: generate_dune
|
||||||
@dune build \
|
@dune build \
|
||||||
$(patsubst %.opam,%.install, $(shell find src vendors -name \*.opam -print))
|
$(patsubst %.opam,%.install, $(shell find src vendors -name \*.opam -print))
|
||||||
|
|
||||||
|
@ -99,11 +99,24 @@
|
|||||||
-open Tezos_stdlib_unix))
|
-open Tezos_stdlib_unix))
|
||||||
(modules Main_embedded_packer))
|
(modules Main_embedded_packer))
|
||||||
|
|
||||||
|
(executable
|
||||||
|
(name replace)
|
||||||
|
(libraries tezos-base tezos-stdlib-unix str)
|
||||||
|
(flags (:standard -open Tezos_base__TzPervasives
|
||||||
|
-open Tezos_stdlib_unix))
|
||||||
|
(modules Replace))
|
||||||
|
|
||||||
(install
|
(install
|
||||||
(section share)
|
(section share)
|
||||||
(files jbuild_protocol_template
|
(files jbuild_protocol_template
|
||||||
jbuild_embedded_protocol_template))
|
jbuild_embedded_protocol_template))
|
||||||
|
|
||||||
|
(install
|
||||||
|
(section libexec)
|
||||||
|
(files (replace.exe as replace)
|
||||||
|
dune_protocol
|
||||||
|
dune_protocol.template))
|
||||||
|
|
||||||
(alias
|
(alias
|
||||||
(name runtest_indent)
|
(name runtest_indent)
|
||||||
;; we would like (deps ((glob_files *.ml \ embedded_cmis.ml)))
|
;; we would like (deps ((glob_files *.ml \ embedded_cmis.ml)))
|
||||||
|
19
src/lib_protocol_compiler/dune_protocol
Normal file
19
src/lib_protocol_compiler/dune_protocol
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
(include dune.inc)
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets "dune.inc.gen")
|
||||||
|
(deps TEZOS_PROTOCOL (glob_files *.ml) (glob_files *.mli))
|
||||||
|
(action
|
||||||
|
(run
|
||||||
|
%{libexec:tezos-protocol-compiler:replace}
|
||||||
|
%{libexec:tezos-protocol-compiler:dune_protocol.template}
|
||||||
|
"dune.inc.gen")))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
(name runtest_dune_template)
|
||||||
|
(action (diff dune.inc dune.inc.gen)))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
(name runtest)
|
||||||
|
(deps (alias runtest_dune_template)))
|
70
src/lib_protocol_compiler/dune_protocol.template
Normal file
70
src/lib_protocol_compiler/dune_protocol.template
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
|
||||||
|
(rule
|
||||||
|
(targets environment.ml)
|
||||||
|
(action
|
||||||
|
(write-file %{targets}
|
||||||
|
"include Tezos_protocol_environment_shell.MakeV1(struct let name = \"%%VERSION%%\" end)()
|
||||||
|
module CamlinternalFormatBasics = struct include CamlinternalFormatBasics end
|
||||||
|
")))
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets registerer.ml)
|
||||||
|
(deps tezos_embedded_protocol_environment_%%LIB_VERSION%%.cmxa
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action
|
||||||
|
(with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root} (run %{bin:tezos-embedded-protocol-packer} "%{src_dir}" "%%LIB_VERSION%%")))))
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets functor.ml)
|
||||||
|
(deps %%SOURCES%%
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action (with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root}
|
||||||
|
(run %{bin:tezos-protocol-compiler.tezos-protocol-packer} %{src_dir})))))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_protocol_%%LIB_VERSION%%)
|
||||||
|
(public_name tezos-protocol-%%VERSION%%)
|
||||||
|
(libraries tezos-protocol-environment-sigs)
|
||||||
|
(flags -w "+a-4-6-7-9-29-40..42-44-45-48"
|
||||||
|
-warn-error "-a+8"
|
||||||
|
-safe-string -nopervasives)
|
||||||
|
(modules Functor))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_environment_%%LIB_VERSION%%)
|
||||||
|
(public_name tezos-embedded-protocol-%%VERSION%%.environment)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos-protocol-environment-shell)
|
||||||
|
(modules Environment))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_raw_protocol_%%LIB_VERSION%%)
|
||||||
|
(public_name tezos-embedded-protocol-%%VERSION%%.raw)
|
||||||
|
(libraries tezos_embedded_protocol_environment_%%LIB_VERSION%%)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(flags (:standard -nopervasives -nostdlib -safe-string
|
||||||
|
-w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8
|
||||||
|
-open Tezos_embedded_protocol_environment_%%LIB_VERSION%%__Environment
|
||||||
|
-open Pervasives
|
||||||
|
-open Error_monad))
|
||||||
|
(modules %%MODULES%%))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_%%LIB_VERSION%%)
|
||||||
|
(public_name tezos-embedded-protocol-%%VERSION%%)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos_embedded_raw_protocol_%%LIB_VERSION%%
|
||||||
|
tezos-protocol-updater
|
||||||
|
tezos-protocol-environment-shell)
|
||||||
|
(flags (:standard -w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8))
|
||||||
|
(modules Registerer))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
(name runtest_sandbox)
|
||||||
|
(deps .tezos_protocol_%%LIB_VERSION%%.objs/tezos_protocol_%%LIB_VERSION%%.cmx))
|
||||||
|
|
136
src/lib_protocol_compiler/replace.ml
Normal file
136
src/lib_protocol_compiler/replace.ml
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
(*****************************************************************************)
|
||||||
|
(* *)
|
||||||
|
(* Open Source License *)
|
||||||
|
(* Copyright (c) 2019 Nomadic Labs, <contact@nomadic-labs.com> *)
|
||||||
|
(* *)
|
||||||
|
(* Permission is hereby granted, free of charge, to any person obtaining a *)
|
||||||
|
(* copy of this software and associated documentation files (the "Software"),*)
|
||||||
|
(* to deal in the Software without restriction, including without limitation *)
|
||||||
|
(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *)
|
||||||
|
(* and/or sell copies of the Software, and to permit persons to whom the *)
|
||||||
|
(* Software is furnished to do so, subject to the following conditions: *)
|
||||||
|
(* *)
|
||||||
|
(* The above copyright notice and this permission notice shall be included *)
|
||||||
|
(* in all copies or substantial portions of the Software. *)
|
||||||
|
(* *)
|
||||||
|
(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*)
|
||||||
|
(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *)
|
||||||
|
(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *)
|
||||||
|
(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*)
|
||||||
|
(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *)
|
||||||
|
(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *)
|
||||||
|
(* DEALINGS IN THE SOFTWARE. *)
|
||||||
|
(* *)
|
||||||
|
(*****************************************************************************)
|
||||||
|
|
||||||
|
module StringMap = Map.Make(String)
|
||||||
|
|
||||||
|
let regexp = Str.regexp "%%[^%]*%%"
|
||||||
|
|
||||||
|
let current_dir = Sys.getcwd ()
|
||||||
|
|
||||||
|
let guess_version () =
|
||||||
|
let prefix = "proto_" in
|
||||||
|
let rec loop dir =
|
||||||
|
let dirname = Filename.basename dir in
|
||||||
|
let x = String.length prefix in
|
||||||
|
let n = String.length dirname in
|
||||||
|
if n >= x && String.sub dirname 0 x = prefix then
|
||||||
|
String.sub dirname x (n - x)
|
||||||
|
else
|
||||||
|
let updir = Filename.dirname dir in
|
||||||
|
if updir = dir then begin
|
||||||
|
Format.eprintf
|
||||||
|
"Cannot guess protocol version in path!@.Looking for `%s*` in `%s`@."
|
||||||
|
prefix current_dir ;
|
||||||
|
exit 1
|
||||||
|
end;
|
||||||
|
loop updir in
|
||||||
|
loop (Sys.getcwd ())
|
||||||
|
|
||||||
|
let warning_message = {|
|
||||||
|
|
||||||
|
;
|
||||||
|
; /!\ /!\ Do not modify this file /!\ /!\
|
||||||
|
;
|
||||||
|
; but the original template in `tezos-protocol-compiler`
|
||||||
|
;
|
||||||
|
|
||||||
|
|}
|
||||||
|
|
||||||
|
let replace ~template ~destination vars =
|
||||||
|
let inch = open_in template in
|
||||||
|
let outch = open_out destination in
|
||||||
|
output_string outch warning_message ;
|
||||||
|
try
|
||||||
|
while true do
|
||||||
|
let line = input_line inch in
|
||||||
|
let line =
|
||||||
|
Str.global_substitute regexp begin fun s ->
|
||||||
|
let matched = Str.matched_string s in
|
||||||
|
let var = String.sub matched 2 (String.length matched - 4) in
|
||||||
|
match StringMap.find_opt var vars with
|
||||||
|
| Some value -> value
|
||||||
|
| None ->
|
||||||
|
prerr_endline ("Unknown variable: " ^ var) ;
|
||||||
|
exit 1
|
||||||
|
end line in
|
||||||
|
output_string outch line ;
|
||||||
|
output_string outch "\n" ;
|
||||||
|
done ;
|
||||||
|
with End_of_file ->
|
||||||
|
flush outch ;
|
||||||
|
close_out outch ;
|
||||||
|
()
|
||||||
|
|
||||||
|
let module_name (c : Protocol.component) =
|
||||||
|
String.capitalize_ascii c.name
|
||||||
|
let sources_name (c : Protocol.component) =
|
||||||
|
let name = String.lowercase_ascii c.name in
|
||||||
|
match c.interface with
|
||||||
|
| None ->
|
||||||
|
Printf.sprintf "%s.ml" name
|
||||||
|
| Some _ ->
|
||||||
|
Printf.sprintf "%s.mli %s.ml" name name
|
||||||
|
|
||||||
|
let process ~template ~destination (protocol : Protocol.t) lib_version =
|
||||||
|
let version = String.concat "-" (String.split_on_char '_' lib_version) in
|
||||||
|
let vars =
|
||||||
|
StringMap.empty |>
|
||||||
|
StringMap.add "VERSION" version |>
|
||||||
|
StringMap.add "LIB_VERSION" lib_version |>
|
||||||
|
StringMap.add "MODULES"
|
||||||
|
(String.concat " " (List.map module_name protocol.components)) |>
|
||||||
|
StringMap.add "SOURCES"
|
||||||
|
(String.concat " " (List.map sources_name protocol.components)) in
|
||||||
|
replace ~template ~destination vars
|
||||||
|
|
||||||
|
let read_proto destination =
|
||||||
|
let source_dir =
|
||||||
|
if Filename.is_relative destination then
|
||||||
|
Filename.concat
|
||||||
|
current_dir (Filename.dirname destination)
|
||||||
|
else
|
||||||
|
Filename.dirname destination in
|
||||||
|
match Lwt_main.run (Lwt_utils_unix.Protocol.read_dir source_dir) with
|
||||||
|
| Ok (None, proto) ->
|
||||||
|
(Protocol.hash proto, proto)
|
||||||
|
| Ok (Some hash, proto) ->
|
||||||
|
(hash, proto)
|
||||||
|
| Error err ->
|
||||||
|
Format.kasprintf Pervasives.failwith
|
||||||
|
"Failed to read TEZOS_PROTOCOL in %s:@ %a"
|
||||||
|
source_dir
|
||||||
|
pp_print_error err
|
||||||
|
|
||||||
|
let main () =
|
||||||
|
let template = Sys.argv.(1) in
|
||||||
|
let destination = Sys.argv.(2) in
|
||||||
|
let version =
|
||||||
|
try Sys.argv.(3)
|
||||||
|
with _ -> guess_version () in
|
||||||
|
let _hash, proto = read_proto destination in
|
||||||
|
process ~template ~destination proto version
|
||||||
|
|
||||||
|
let () =
|
||||||
|
main ()
|
@ -1 +0,0 @@
|
|||||||
../../lib_protocol_compiler/jbuild_protocol_template
|
|
@ -1 +1 @@
|
|||||||
../../../lib_protocol_compiler/jbuild_embedded_protocol_template
|
../../../lib_protocol_compiler/dune_protocol
|
78
src/proto_alpha/lib_protocol/src/dune.inc
Normal file
78
src/proto_alpha/lib_protocol/src/dune.inc
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; /!\ /!\ Do not modify this file /!\ /!\
|
||||||
|
;
|
||||||
|
; but the original template in `tezos-protocol-compiler`
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets environment.ml)
|
||||||
|
(action
|
||||||
|
(write-file %{targets}
|
||||||
|
"include Tezos_protocol_environment_shell.MakeV1(struct let name = \"alpha\" end)()
|
||||||
|
module CamlinternalFormatBasics = struct include CamlinternalFormatBasics end
|
||||||
|
")))
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets registerer.ml)
|
||||||
|
(deps tezos_embedded_protocol_environment_alpha.cmxa
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action
|
||||||
|
(with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root} (run %{bin:tezos-embedded-protocol-packer} "%{src_dir}" "alpha")))))
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets functor.ml)
|
||||||
|
(deps misc.mli misc.ml storage_description.mli storage_description.ml state_hash.ml nonce_hash.ml script_expr_hash.ml contract_hash.ml blinded_public_key_hash.mli blinded_public_key_hash.ml qty_repr.ml tez_repr.mli tez_repr.ml period_repr.mli period_repr.ml time_repr.mli time_repr.ml constants_repr.ml fitness_repr.ml raw_level_repr.mli raw_level_repr.ml voting_period_repr.mli voting_period_repr.ml cycle_repr.mli cycle_repr.ml level_repr.mli level_repr.ml seed_repr.mli seed_repr.ml gas_limit_repr.mli gas_limit_repr.ml script_int_repr.mli script_int_repr.ml script_timestamp_repr.mli script_timestamp_repr.ml michelson_v1_primitives.mli michelson_v1_primitives.ml script_repr.mli script_repr.ml contract_repr.mli contract_repr.ml roll_repr.mli roll_repr.ml vote_repr.mli vote_repr.ml block_header_repr.mli block_header_repr.ml operation_repr.mli operation_repr.ml manager_repr.mli manager_repr.ml commitment_repr.mli commitment_repr.ml parameters_repr.mli parameters_repr.ml raw_context.mli raw_context.ml storage_sigs.ml storage_functors.mli storage_functors.ml storage.mli storage.ml constants_storage.ml level_storage.mli level_storage.ml nonce_storage.mli nonce_storage.ml seed_storage.mli seed_storage.ml roll_storage.mli roll_storage.ml delegate_storage.mli delegate_storage.ml contract_storage.mli contract_storage.ml bootstrap_storage.mli bootstrap_storage.ml fitness_storage.ml vote_storage.mli vote_storage.ml commitment_storage.mli commitment_storage.ml init_storage.ml fees_storage.mli fees_storage.ml alpha_context.mli alpha_context.ml script_typed_ir.ml script_tc_errors.ml michelson_v1_gas.mli michelson_v1_gas.ml script_ir_annot.mli script_ir_annot.ml script_ir_translator.mli script_ir_translator.ml script_tc_errors_registration.ml script_interpreter.mli script_interpreter.ml baking.mli baking.ml amendment.mli amendment.ml apply_results.mli apply_results.ml apply.ml services_registration.ml constants_services.mli constants_services.ml contract_services.mli contract_services.ml delegate_services.mli delegate_services.ml helpers_services.mli helpers_services.ml voting_services.mli voting_services.ml alpha_services.mli alpha_services.ml main.mli main.ml
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action (with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root}
|
||||||
|
(run %{bin:tezos-protocol-compiler.tezos-protocol-packer} %{src_dir})))))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_protocol_alpha)
|
||||||
|
(public_name tezos-protocol-alpha)
|
||||||
|
(libraries tezos-protocol-environment-sigs)
|
||||||
|
(flags -w "+a-4-6-7-9-29-40..42-44-45-48"
|
||||||
|
-warn-error "-a+8"
|
||||||
|
-safe-string -nopervasives)
|
||||||
|
(modules Functor))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_environment_alpha)
|
||||||
|
(public_name tezos-embedded-protocol-alpha.environment)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos-protocol-environment-shell)
|
||||||
|
(modules Environment))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_raw_protocol_alpha)
|
||||||
|
(public_name tezos-embedded-protocol-alpha.raw)
|
||||||
|
(libraries tezos_embedded_protocol_environment_alpha)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(flags (:standard -nopervasives -nostdlib -safe-string
|
||||||
|
-w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8
|
||||||
|
-open Tezos_embedded_protocol_environment_alpha__Environment
|
||||||
|
-open Pervasives
|
||||||
|
-open Error_monad))
|
||||||
|
(modules Misc Storage_description State_hash Nonce_hash Script_expr_hash Contract_hash Blinded_public_key_hash Qty_repr Tez_repr Period_repr Time_repr Constants_repr Fitness_repr Raw_level_repr Voting_period_repr Cycle_repr Level_repr Seed_repr Gas_limit_repr Script_int_repr Script_timestamp_repr Michelson_v1_primitives Script_repr Contract_repr Roll_repr Vote_repr Block_header_repr Operation_repr Manager_repr Commitment_repr Parameters_repr Raw_context Storage_sigs Storage_functors Storage Constants_storage Level_storage Nonce_storage Seed_storage Roll_storage Delegate_storage Contract_storage Bootstrap_storage Fitness_storage Vote_storage Commitment_storage Init_storage Fees_storage Alpha_context Script_typed_ir Script_tc_errors Michelson_v1_gas Script_ir_annot Script_ir_translator Script_tc_errors_registration Script_interpreter Baking Amendment Apply_results Apply Services_registration Constants_services Contract_services Delegate_services Helpers_services Voting_services Alpha_services Main))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_alpha)
|
||||||
|
(public_name tezos-embedded-protocol-alpha)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos_embedded_raw_protocol_alpha
|
||||||
|
tezos-protocol-updater
|
||||||
|
tezos-protocol-environment-shell)
|
||||||
|
(flags (:standard -w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8))
|
||||||
|
(modules Registerer))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
(name runtest_sandbox)
|
||||||
|
(deps .tezos_protocol_alpha.objs/tezos_protocol_alpha.cmx))
|
||||||
|
|
@ -13,9 +13,9 @@ depends: [
|
|||||||
"tezos-protocol-updater"
|
"tezos-protocol-updater"
|
||||||
]
|
]
|
||||||
build: [
|
build: [
|
||||||
[ "rm" "dune" "src/dune" ]
|
[ "%{tezos-protocol-compiler:lib}%/replace"
|
||||||
[ "cp" "%{tezos-protocol-compiler:share}%/jbuild_embedded_protocol_template" "src/dune" ]
|
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
|
||||||
[ "sed" "-i" "s/let predefined_version = None/let predefined_version = Some \"alpha\"/" "src/dune" ]
|
"src/dune" "alpha" ]
|
||||||
[ "dune" "build" "-p" name "-j" jobs ]
|
[ "dune" "build" "-p" name "-j" jobs ]
|
||||||
]
|
]
|
||||||
run-test: [
|
run-test: [
|
||||||
|
@ -17,9 +17,9 @@ depends: [
|
|||||||
"bip39" { with-test }
|
"bip39" { with-test }
|
||||||
]
|
]
|
||||||
build: [
|
build: [
|
||||||
[ "rm" "dune" "src/dune" ]
|
[ "%{tezos-protocol-compiler:lib}%/replace"
|
||||||
[ "cp" "%{tezos-protocol-compiler:share}%/jbuild_protocol_template" "dune" ]
|
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
|
||||||
[ "sed" "-i" "s/let predefined_version = None/let predefined_version = Some \"alpha\"/" "dune" ]
|
"src/dune" "alpha" ]
|
||||||
[ "dune" "build" "-p" name "-j" jobs ]
|
[ "dune" "build" "-p" name "-j" jobs ]
|
||||||
]
|
]
|
||||||
run-test: [
|
run-test: [
|
||||||
|
@ -1 +0,0 @@
|
|||||||
../../lib_protocol_compiler/jbuild_protocol_template
|
|
@ -1 +1 @@
|
|||||||
../../../lib_protocol_compiler/jbuild_embedded_protocol_template
|
../../../lib_protocol_compiler/dune_protocol
|
78
src/proto_demo/lib_protocol/src/dune.inc
Normal file
78
src/proto_demo/lib_protocol/src/dune.inc
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; /!\ /!\ Do not modify this file /!\ /!\
|
||||||
|
;
|
||||||
|
; but the original template in `tezos-protocol-compiler`
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets environment.ml)
|
||||||
|
(action
|
||||||
|
(write-file %{targets}
|
||||||
|
"include Tezos_protocol_environment_shell.MakeV1(struct let name = \"demo\" end)()
|
||||||
|
module CamlinternalFormatBasics = struct include CamlinternalFormatBasics end
|
||||||
|
")))
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets registerer.ml)
|
||||||
|
(deps tezos_embedded_protocol_environment_demo.cmxa
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action
|
||||||
|
(with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root} (run %{bin:tezos-embedded-protocol-packer} "%{src_dir}" "demo")))))
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets functor.ml)
|
||||||
|
(deps error.ml services.ml main.mli main.ml
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action (with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root}
|
||||||
|
(run %{bin:tezos-protocol-compiler.tezos-protocol-packer} %{src_dir})))))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_protocol_demo)
|
||||||
|
(public_name tezos-protocol-demo)
|
||||||
|
(libraries tezos-protocol-environment-sigs)
|
||||||
|
(flags -w "+a-4-6-7-9-29-40..42-44-45-48"
|
||||||
|
-warn-error "-a+8"
|
||||||
|
-safe-string -nopervasives)
|
||||||
|
(modules Functor))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_environment_demo)
|
||||||
|
(public_name tezos-embedded-protocol-demo.environment)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos-protocol-environment-shell)
|
||||||
|
(modules Environment))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_raw_protocol_demo)
|
||||||
|
(public_name tezos-embedded-protocol-demo.raw)
|
||||||
|
(libraries tezos_embedded_protocol_environment_demo)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(flags (:standard -nopervasives -nostdlib -safe-string
|
||||||
|
-w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8
|
||||||
|
-open Tezos_embedded_protocol_environment_demo__Environment
|
||||||
|
-open Pervasives
|
||||||
|
-open Error_monad))
|
||||||
|
(modules Error Services Main))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_demo)
|
||||||
|
(public_name tezos-embedded-protocol-demo)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos_embedded_raw_protocol_demo
|
||||||
|
tezos-protocol-updater
|
||||||
|
tezos-protocol-environment-shell)
|
||||||
|
(flags (:standard -w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8))
|
||||||
|
(modules Registerer))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
(name runtest_sandbox)
|
||||||
|
(deps .tezos_protocol_demo.objs/tezos_protocol_demo.cmx))
|
||||||
|
|
@ -12,9 +12,9 @@ depends: [
|
|||||||
"tezos-protocol-updater"
|
"tezos-protocol-updater"
|
||||||
]
|
]
|
||||||
build: [
|
build: [
|
||||||
[ "rm" "dune" "src/dune" ]
|
[ "%{tezos-protocol-compiler:lib}%/replace"
|
||||||
[ "cp" "%{tezos-protocol-compiler:share}%/jbuild_embedded_protocol_template" "src/dune" ]
|
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
|
||||||
[ "sed" "-i" "s/let predefined_version = None/let predefined_version = Some \"demo\"/" "src/dune" ]
|
"src/dune" "demo" ]
|
||||||
[ "dune" "build" "-p" name "-j" jobs ]
|
[ "dune" "build" "-p" name "-j" jobs ]
|
||||||
]
|
]
|
||||||
run-test: [
|
run-test: [
|
||||||
|
@ -11,9 +11,9 @@ depends: [
|
|||||||
"tezos-protocol-compiler"
|
"tezos-protocol-compiler"
|
||||||
]
|
]
|
||||||
build: [
|
build: [
|
||||||
[ "rm" "dune" "src/dune" ]
|
[ "%{tezos-protocol-compiler:lib}%/replace"
|
||||||
[ "cp" "%{tezos-protocol-compiler:share}%/jbuild_protocol_template" "dune" ]
|
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
|
||||||
[ "sed" "-i" "s/let predefined_version = None/let predefined_version = Some \"demo\"/" "dune" ]
|
"src/dune" "demo" ]
|
||||||
[ "dune" "build" "-p" name "-j" jobs ]
|
[ "dune" "build" "-p" name "-j" jobs ]
|
||||||
]
|
]
|
||||||
run-test: [
|
run-test: [
|
||||||
|
@ -1 +0,0 @@
|
|||||||
../../lib_protocol_compiler/jbuild_protocol_template
|
|
1
src/proto_genesis/lib_protocol/dune.inc
Normal file
1
src/proto_genesis/lib_protocol/dune.inc
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
@ -1 +1 @@
|
|||||||
../../../lib_protocol_compiler/jbuild_embedded_protocol_template
|
../../../lib_protocol_compiler/dune_protocol
|
78
src/proto_genesis/lib_protocol/src/dune.inc
Normal file
78
src/proto_genesis/lib_protocol/src/dune.inc
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; /!\ /!\ Do not modify this file /!\ /!\
|
||||||
|
;
|
||||||
|
; but the original template in `tezos-protocol-compiler`
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets environment.ml)
|
||||||
|
(action
|
||||||
|
(write-file %{targets}
|
||||||
|
"include Tezos_protocol_environment_shell.MakeV1(struct let name = \"genesis\" end)()
|
||||||
|
module CamlinternalFormatBasics = struct include CamlinternalFormatBasics end
|
||||||
|
")))
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets registerer.ml)
|
||||||
|
(deps tezos_embedded_protocol_environment_genesis.cmxa
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action
|
||||||
|
(with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root} (run %{bin:tezos-embedded-protocol-packer} "%{src_dir}" "genesis")))))
|
||||||
|
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(targets functor.ml)
|
||||||
|
(deps data.ml services.ml main.mli main.ml
|
||||||
|
(:src_dir TEZOS_PROTOCOL))
|
||||||
|
(action (with-stdout-to %{targets}
|
||||||
|
(chdir %{workspace_root}
|
||||||
|
(run %{bin:tezos-protocol-compiler.tezos-protocol-packer} %{src_dir})))))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_protocol_genesis)
|
||||||
|
(public_name tezos-protocol-genesis)
|
||||||
|
(libraries tezos-protocol-environment-sigs)
|
||||||
|
(flags -w "+a-4-6-7-9-29-40..42-44-45-48"
|
||||||
|
-warn-error "-a+8"
|
||||||
|
-safe-string -nopervasives)
|
||||||
|
(modules Functor))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_environment_genesis)
|
||||||
|
(public_name tezos-embedded-protocol-genesis.environment)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos-protocol-environment-shell)
|
||||||
|
(modules Environment))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_raw_protocol_genesis)
|
||||||
|
(public_name tezos-embedded-protocol-genesis.raw)
|
||||||
|
(libraries tezos_embedded_protocol_environment_genesis)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(flags (:standard -nopervasives -nostdlib -safe-string
|
||||||
|
-w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8
|
||||||
|
-open Tezos_embedded_protocol_environment_genesis__Environment
|
||||||
|
-open Pervasives
|
||||||
|
-open Error_monad))
|
||||||
|
(modules Data Services Main))
|
||||||
|
|
||||||
|
(library
|
||||||
|
(name tezos_embedded_protocol_genesis)
|
||||||
|
(public_name tezos-embedded-protocol-genesis)
|
||||||
|
(library_flags (:standard -linkall))
|
||||||
|
(libraries tezos_embedded_raw_protocol_genesis
|
||||||
|
tezos-protocol-updater
|
||||||
|
tezos-protocol-environment-shell)
|
||||||
|
(flags (:standard -w +a-4-6-7-9-29-32-40..42-44-45-48
|
||||||
|
-warn-error -a+8))
|
||||||
|
(modules Registerer))
|
||||||
|
|
||||||
|
(alias
|
||||||
|
(name runtest_sandbox)
|
||||||
|
(deps .tezos_protocol_genesis.objs/tezos_protocol_genesis.cmx))
|
||||||
|
|
@ -12,9 +12,9 @@ depends: [
|
|||||||
"tezos-protocol-updater"
|
"tezos-protocol-updater"
|
||||||
]
|
]
|
||||||
build: [
|
build: [
|
||||||
[ "rm" "dune" "src/dune" ]
|
[ "%{tezos-protocol-compiler:lib}%/replace"
|
||||||
[ "cp" "%{tezos-protocol-compiler:share}%/jbuild_embedded_protocol_template" "src/dune" ]
|
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
|
||||||
[ "sed" "-i" "s/let predefined_version = None/let predefined_version = Some \"genesis\"/" "src/dune" ]
|
"src/dune" "genesis" ]
|
||||||
[ "dune" "build" "-p" name "-j" jobs ]
|
[ "dune" "build" "-p" name "-j" jobs ]
|
||||||
]
|
]
|
||||||
run-test: [
|
run-test: [
|
||||||
|
@ -11,9 +11,9 @@ depends: [
|
|||||||
"tezos-protocol-compiler"
|
"tezos-protocol-compiler"
|
||||||
]
|
]
|
||||||
build: [
|
build: [
|
||||||
[ "rm" "dune" "src/dune" ]
|
[ "%{tezos-protocol-compiler:lib}%/replace"
|
||||||
[ "cp" "%{tezos-protocol-compiler:share}%/jbuild_protocol_template" "dune" ]
|
"%{tezos-protocol-compiler:lib}%/dune_protocol.template"
|
||||||
[ "sed" "-i" "s/let predefined_version = None/let predefined_version = Some \"genesis\"/" "dune" ]
|
"src/dune" "genesis" ]
|
||||||
[ "dune" "build" "-p" name "-j" jobs ]
|
[ "dune" "build" "-p" name "-j" jobs ]
|
||||||
]
|
]
|
||||||
run-test: [
|
run-test: [
|
||||||
|
Loading…
Reference in New Issue
Block a user