Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
44f3d9bf
Y
YTBP
项目概览
YottaChain
/
YTBP
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
YTBP
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
44f3d9bf
编写于
7月 17, 2017
作者:
M
Matias Romeo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add missing wasm.cmake
上级
15c29369
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
92 addition
and
0 deletion
+92
-0
CMakeModules/wasm.cmake
CMakeModules/wasm.cmake
+92
-0
未找到文件。
CMakeModules/wasm.cmake
0 → 100644
浏览文件 @
44f3d9bf
set
(
WASM_TOOLCHAIN FALSE
)
if
(
NOT
"$ENV{WASM_LLVM_CONFIG}"
STREQUAL
""
)
execute_process
(
COMMAND $ENV{WASM_LLVM_CONFIG} --bindir
RESULT_VARIABLE WASM_LLVM_CONFIG_OK
OUTPUT_VARIABLE WASM_LLVM_BIN
)
if
(
"
${
WASM_LLVM_CONFIG_OK
}
"
STREQUAL
"0"
)
string
(
STRIP
"
${
WASM_LLVM_BIN
}
"
WASM_LLVM_BIN
)
set
(
WASM_CLANG
${
WASM_LLVM_BIN
}
/clang
)
set
(
WASM_LLC
${
WASM_LLVM_BIN
}
/llc
)
set
(
WASM_LLVM_LINK
${
WASM_LLVM_BIN
}
/llvm-link
)
endif
()
else
()
set
(
WASM_CLANG $ENV{WASM_CLANG}
)
set
(
WASM_LLC $ENV{WASM_LLC}
)
set
(
WASM_LLVM_LINK $ENV{WASM_LLVM_LINK}
)
endif
()
# TODO: Check if compiler is able to generate wasm32
if
(
NOT
(
"
${
WASM_CLANG
}
"
STREQUAL
""
OR
"
${
WASM_LLC
}
"
STREQUAL
""
OR
"
${
WASM_LLVM_LINK
}
"
STREQUAL
""
)
)
set
(
WASM_TOOLCHAIN TRUE
)
endif
()
macro
(
add_wast_target target SOURCE_FILES INCLUDE_FOLDERS DESTINATION_FOLDER
)
# add_definitions( -DDebug )
# get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS )
set
(
outfiles
""
)
foreach
(
srcfile
${
SOURCE_FILES
}
)
get_filename_component
(
outfile
${
srcfile
}
NAME
)
get_filename_component
(
infile
${
srcfile
}
ABSOLUTE
)
add_custom_command
(
OUTPUT
${
outfile
}
.bc
DEPENDS
${
infile
}
COMMAND
${
WASM_CLANG
}
-emit-llvm -O3 --std=c++14 --target=wasm32 -I
${
INCLUDE_FOLDERS
}
-fno-threadsafe-statics -fno-rtti -fno-exceptions -c
${
infile
}
-o
${
outfile
}
.bc
IMPLICIT_DEPENDS CXX
${
infile
}
COMMENT
"Building LLVM bitcode
${
outfile
}
.bc"
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
VERBATIM
)
set_property
(
DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
${
outfile
}
.bc
)
list
(
APPEND outfiles
${
outfile
}
.bc
)
endforeach
(
srcfile
)
add_custom_command
(
OUTPUT
${
target
}
.bc
DEPENDS
${
outfiles
}
COMMAND
${
WASM_LLVM_LINK
}
-o
${
target
}
.bc
${
outfiles
}
COMMENT
"Linking LLVM bitcode
${
target
}
.bc"
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
VERBATIM
)
set_property
(
DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
${
target
}
.bc
)
add_custom_command
(
OUTPUT
${
target
}
.s
DEPENDS
${
target
}
.bc
COMMAND
${
WASM_LLC
}
-asm-verbose=false -o
${
target
}
.s
${
target
}
.bc
COMMENT
"Generating textual assembly
${
target
}
.s"
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
VERBATIM
)
set_property
(
DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
${
target
}
.s
)
add_custom_command
(
OUTPUT
${
DESTINATION_FOLDER
}
/
${
target
}
.wast
DEPENDS
${
target
}
.s
COMMAND s2wasm -o
${
DESTINATION_FOLDER
}
/
${
target
}
.wast -s 1024
${
target
}
.s
COMMENT
"Generating WAST
${
target
}
.wast"
WORKING_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
VERBATIM
)
set_property
(
DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
${
target
}
.wast
)
add_custom_command
(
OUTPUT
${
DESTINATION_FOLDER
}
/
${
target
}
.wast.hpp
DEPENDS
${
DESTINATION_FOLDER
}
/
${
target
}
.wast
COMMAND echo
"const char* currency_wast = R
\"
=====("
>
${
DESTINATION_FOLDER
}
/
${
target
}
.wast.hpp
COMMAND cat
${
DESTINATION_FOLDER
}
/
${
target
}
.wast >>
${
DESTINATION_FOLDER
}
/
${
target
}
.wast.hpp
COMMAND echo
")=====
\"
;"
>>
${
DESTINATION_FOLDER
}
/
${
target
}
.wast.hpp
COMMENT
"Generating
${
target
}
.wast.hpp"
VERBATIM
)
add_custom_target
(
${
target
}
ALL DEPENDS
${
DESTINATION_FOLDER
}
/
${
target
}
.wast.hpp
)
endmacro
(
add_wast_target
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录