Skip to content

Instantly share code, notes, and snippets.

@vivianjeng
Created May 21, 2024 04:35
Show Gist options
  • Save vivianjeng/06a78cfabc43b93db0e29896699038ba to your computer and use it in GitHub Desktop.
Save vivianjeng/06a78cfabc43b93db0e29896699038ba to your computer and use it in GitHub Desktop.
load("@rules_cc//cc:defs.bzl", "cc_library")
package(default_visibility = ["//visibility:public"])
HEADERS = [
"gmp.h",
"gmpxx.h",
]
genrule(
name = "link_headers",
outs = HEADERS,
cmd = select({
"@kroma_network_tachyon//:linux_x86_64": """
mkdir -p $(@D)/
ln -sf /usr/include/gmpxx.h $(@D)/gmpxx.h
ln -sf {usr_include}/gmp.h $(@D)/gmp.h
""",
"@kroma_network_tachyon//:macos_x86_64": """
mkdir -p $(@D)/
for file in $(OUTS); do
file=$${file##*/}
ln -sf /usr/local/include/$$file $(@D)/$$file
done
""",
"@kroma_network_tachyon//:macos_aarch64": """
mkdir -p $(@D)/
for file in $(OUTS); do
file=$${file##*/}
ln -sf /opt/homebrew/include/$$file $(@D)/$$file
done
""",
"@kroma_network_tachyon//:ios_arm64": """
mkdir -p $(@D)/
for file in $(OUTS); do
file=$${file##*/}
ln -sf /Users/zhengyawen/Documents/GitHub/0xPolygon/witnesscalc/depends/gmp/package_ios_arm64/include/$$file $(@D)/$$file
done
""",
"//conditions:default": """
mkdir -p $(@D)/
for file in $(OUTS); do
file=$${file##*/}
ln -sf /Users/zhengyawen/Documents/GitHub/0xPolygon/witnesscalc/depends/gmp/package_ios_arm64/include/$$file $(@D)/$$file
done
""",
}),
)
cc_library(
name = "gmp",
hdrs = HEADERS,
include_prefix = "third_party/gmp/include",
includes = ["."],
linkopts = [
"-lgmpxx",
"-lgmp",
] + select({
"@kroma_network_tachyon//:macos_x86_64": ["-L/usr/local/lib"],
"@kroma_network_tachyon//:macos_aarch64": ["-L/opt/homebrew/lib"],
"@kroma_network_tachyon//:ios_arm64": ["-L/Users/zhengyawen/Documents/GitHub/0xPolygon/witnesscalc/depends/gmp/package_ios_arm64/lib"],
"//conditions:default": ["-L/Users/zhengyawen/Documents/GitHub/0xPolygon/witnesscalc/depends/gmp/package_ios_arm64/lib"],
}),
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment