-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a38831d
commit 4ad0325
Showing
8 changed files
with
172 additions
and
0 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
/build | ||
/target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
[package] | ||
name = "ckb-crypto-service" | ||
version = "0.1.0" | ||
edition = "2021" | ||
|
||
[dependencies] | ||
# TODO: update it to ckb-std 0.16.0 when it's published | ||
ckb-std = { git = "https://github.com/nervosnetwork/ckb-std.git", default-features = false, features = ["allocator", "ckb-types", "dummy-atomic", "log"], rev = "d74821c" } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# We cannot use $(shell pwd), which will return unix path format on Windows, | ||
# making it hard to use. | ||
cur_dir = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) | ||
|
||
TOP := $(cur_dir) | ||
# RUSTFLAGS that are likely to be tweaked by developers. For example, | ||
# while we enable debug logs by default here, some might want to strip them | ||
# for minimal code size / consumed cycles. | ||
CUSTOM_RUSTFLAGS := --cfg debug_assertions | ||
# RUSTFLAGS that are less likely to be tweaked by developers. Most likely | ||
# one would want to keep the default values here. | ||
FULL_RUSTFLAGS := -C target-feature=+zba,+zbb,+zbc,+zbs,-a $(CUSTOM_RUSTFLAGS) | ||
# Additional cargo args to append here. For example, one can use | ||
# make test CARGO_ARGS="-- --nocapture" so as to inspect data emitted to | ||
# stdout in unit tests | ||
CARGO_ARGS := | ||
MODE := release | ||
# Tweak this to change the clang version to use for building C code. By default | ||
# we use a bash script with somes heuristics to find clang in current system. | ||
CLANG := $(shell $(TOP)/scripts/find_clang) | ||
AR := $(subst clang,llvm-ar,$(CLANG)) | ||
# When this is set to some value, the generated binaries will be copied over | ||
BUILD_DIR := | ||
# Generated binaries to copy. By convention, a Rust crate's directory name will | ||
# likely match the crate name, which is also the name of the final binary. | ||
# However if this is not the case, you can tweak this variable. As the name hints, | ||
# more than one binary is supported here. | ||
BINARIES := $(notdir $(shell pwd)) | ||
|
||
ifeq (release,$(MODE)) | ||
MODE_ARGS := --release | ||
endif | ||
|
||
default: build test | ||
|
||
build: | ||
RUSTFLAGS="$(FULL_RUSTFLAGS)" TARGET_CC="$(CLANG)" TARGET_AR="$(AR)" \ | ||
cargo build --target=riscv64imac-unknown-none-elf $(MODE_ARGS) $(CARGO_ARGS) | ||
@set -eu; \ | ||
if [ "x$(BUILD_DIR)" != "x" ]; then \ | ||
for binary in $(BINARIES); do \ | ||
echo "Copying binary $$binary to build directory"; \ | ||
cp $(TOP)/target/riscv64imac-unknown-none-elf/$(MODE)/$$binary $(TOP)/$(BUILD_DIR); \ | ||
done \ | ||
fi | ||
|
||
# test, check, clippy and fmt here are provided for completeness, | ||
# there is nothing wrong invoking cargo directly instead of make. | ||
test: | ||
cargo test $(CARGO_ARGS) | ||
|
||
check: | ||
cargo check $(CARGO_ARGS) | ||
|
||
clippy: | ||
cargo clippy $(CARGO_ARGS) | ||
|
||
fmt: | ||
cargo fmt $(CARGO_ARGS) | ||
|
||
# Arbitrary cargo command is supported here. For example: | ||
# | ||
# make cargo CARGO_CMD=expand CARGO_ARGS="--ugly" | ||
# | ||
# Invokes: | ||
# cargo expand --ugly | ||
CARGO_CMD := | ||
cargo: | ||
cargo $(CARGO_CMD) $(CARGO_ARGS) | ||
|
||
clean: | ||
cargo clean | ||
|
||
prepare: | ||
rustup target add riscv64imac-unknown-none-elf | ||
|
||
.PHONY: build test check clippy fmt cargo clean prepare |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# ckb-crypto-service | ||
|
||
TODO: Write this readme | ||
|
||
*This contract was bootstrapped with [ckb-script-templates].* | ||
|
||
[ckb-script-templates]: https://github.com/cryptape/ckb-script-templates |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#![no_std] | ||
#![cfg_attr(not(test), no_main)] | ||
|
||
#[cfg(test)] | ||
extern crate alloc; | ||
|
||
#[cfg(not(test))] | ||
use ckb_std::default_alloc; | ||
#[cfg(not(test))] | ||
ckb_std::entry!(program_entry); | ||
#[cfg(not(test))] | ||
default_alloc!(); | ||
|
||
pub fn program_entry() -> i8 { | ||
ckb_std::debug!("This is a sample contract!"); | ||
|
||
0 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters