{
  "version":"0.1",
  "root_folder":"%filefolder%",
  "run_context":"sub",
  "name":"Common Crypto build",
  "actions":[
    {
      "action":"compile_multiple_cpp",
      "args":{
        "source_files_path_completion":true,
        "path_completion_source_ext":".c",
        "path_completion_output_ext":".o",
        "source_files_variables":true,
        "source_files":[
          "%rootcallerfolder%/$EDK2_BLASTPROOF_DIR$/common_crypto/**"
        ],
        "compiler_variables":true,
        "compiler":"$C_COMPILER$",
        "pre_arguments_variables":true,
        "pre_arguments":[
          "-c"
        ],
        "post_arguments_variables":true,
        "post_arguments":[
          "-o",
          "%outputfile%",
          "-Ofast",
          "-march=native",
          "-fPIC"
        ],
        "output_files_variables":false,
        "output_files":[
        ],
        "success_status":[
          0
        ],
        "ignore_success_status":false,
        "cache_authorized":true,
        "headers_command_variables":true,
        "headers_command":"gcc -MMD -MF %dfile% -E %sourcefile% -o /dev/null"
      }
    },
    {
      "action":"run_command_wait",
      "args":{
        "command_variables":false,
        "command":[
          "ar",
          "rcs",
          "libcommoncrypto.a",
          "address.o",
          "fors.o",
          "hash_sha2.o",
          "merkle.o",
          "randombytes.o",
          "sha2.o",
          "sha3.o",
          "sign.o",
          "utils.o",
          "utilsx1.o",
          "wots.o",
          "wotsx1.o",
          "thash_sha2_robust.o",
          "argon2.o",
          "blake2/blake2b.o",
          "core.o",
          "encoding.o",
          "opt.o",
          "thread.o"
        ],
        "success_status":[
          0
        ],
        "ignore_success_status":false,
        "show_output":"on_failure"
      }
    },
    {
      "action":"run_command_wait",
      "args":{
        "command_variables":true,
        "command":[
          "$C_COMPILER$",
          "--shared",
          "-o",
          "libcommoncrypto.so",
          "address.o",
          "fors.o",
          "hash_sha2.o",
          "merkle.o",
          "randombytes.o",
          "sha2.o",
          "sha3.o",
          "sign.o",
          "utils.o",
          "utilsx1.o",
          "wots.o",
          "wotsx1.o",
          "thash_sha2_robust.o",
          "argon2.o",
          "blake2/blake2b.o",
          "core.o",
          "encoding.o",
          "opt.o",
          "thread.o"
        ],
        "success_status":[
          0
        ],
        "ignore_success_status":false,
        "show_output":"on_failure"
      }
    },
    {
      "action":"vftm_load_crypto_lib",
      "args":{
        "lib_path_variables":true,
        "lib_path":"%rootcallerfolder%/$EDK2_BLASTPROOF_DIR$/common_crypto/libcommoncrypto.so"
      }
    },
    {
      "action":"copy_file",
      "args":{
        "source_file_variables":true,
        "source_file":"%rootcallerfolder%/$EDK2_BLASTPROOF_DIR$/common_crypto/libcommoncrypto.a",
        "destination_folder_variables":true,
        "destination_folder":"%rootcallerfolder%/$EDK2_BLASTPROOF_DIR$/keygen/libcommoncrypto.a"
      }
    },
    {
      "action":"copy_file",
      "args":{
        "source_file_variables":true,
        "source_file":"%rootcallerfolder%/$EDK2_BLASTPROOF_DIR$/common_crypto/libcommoncrypto.a",
        "destination_folder_variables":true,
        "destination_folder":"%rootcallerfolder%/$EDK2_BLASTPROOF_DIR$/initfsgen/libcommoncrypto.a"
      }
    }
  ]
}
