summaryrefslogtreecommitdiff
path: root/toolchains/CC/clang.TARGETS
diff options
context:
space:
mode:
Diffstat (limited to 'toolchains/CC/clang.TARGETS')
-rw-r--r--toolchains/CC/clang.TARGETS89
1 files changed, 89 insertions, 0 deletions
diff --git a/toolchains/CC/clang.TARGETS b/toolchains/CC/clang.TARGETS
new file mode 100644
index 0000000..bcea8e4
--- /dev/null
+++ b/toolchains/CC/clang.TARGETS
@@ -0,0 +1,89 @@
+{ "defaults":
+ { "type": ["@", "rules", "CC", "defaults"]
+ , "arguments_config": ["TOOLCHAIN_CONFIG"]
+ , "CC": ["clang/bin/clang"]
+ , "CXX": ["clang/bin/clang++"]
+ , "AR": ["clang/bin/ar"]
+ , "CXXFLAGS":
+ { "type": "if"
+ , "cond":
+ { "type": "lookup"
+ , "key": "USE_LIBCXX"
+ , "map":
+ { "type": "var"
+ , "name": "TOOLCHAIN_CONFIG"
+ , "default": {"type": "empty_map"}
+ }
+ }
+ , "then": ["-nostdlib++", "-stdlib=libc++"]
+ }
+ , "LDFLAGS":
+ { "type": "if"
+ , "cond":
+ { "type": "lookup"
+ , "key": "STATIC_RUNLIBS"
+ , "map":
+ { "type": "var"
+ , "name": "TOOLCHAIN_CONFIG"
+ , "default": {"type": "empty_map"}
+ }
+ }
+ , "then":
+ { "type": "++"
+ , "$1":
+ [ ["-static-libgcc"]
+ , { "type": "if"
+ , "cond":
+ { "type": "lookup"
+ , "key": "USE_LIBCXX"
+ , "map":
+ { "type": "var"
+ , "name": "TOOLCHAIN_CONFIG"
+ , "default": {"type": "empty_map"}
+ }
+ }
+ , "then":
+ [ "-Wl,--push-state"
+ , "-Wl,-Bstatic"
+ , "-lc++"
+ , "-lc++abi"
+ , "-Wl,--pop-state"
+ , "-lpthread"
+ ]
+ , "else": ["-static-libstdc++", "-l:libstdc++.a"]
+ }
+ ]
+ }
+ }
+ , "deps":
+ { "type": "if"
+ , "cond":
+ { "type": "lookup"
+ , "key": "STATIC_RUNLIBS"
+ , "map":
+ { "type": "var"
+ , "name": "TOOLCHAIN_CONFIG"
+ , "default": {"type": "empty_map"}
+ }
+ }
+ , "then": []
+ , "else":
+ { "type": "if"
+ , "cond":
+ { "type": "lookup"
+ , "key": "USE_LIBCXX"
+ , "map":
+ { "type": "var"
+ , "name": "TOOLCHAIN_CONFIG"
+ , "default": {"type": "empty_map"}
+ }
+ }
+ , "then": [["@", "clang", "", "runlibs_libcxx"]]
+ , "else": [["@", "clang", "", "runlibs"]]
+ }
+ }
+ , "toolchain": ["staged-clang"]
+ , "PATH": ["$(TOOLCHAIN)/clang/bin", "/bin"]
+ }
+, "staged-clang": {"type": "install", "dirs": [[["", "toolchain"], "clang"]]}
+}