Skip to content
This repository has been archived by the owner on Aug 23, 2020. It is now read-only.

Commit

Permalink
Merge pull request EOSIO#324 from EOSIO/feature/configurable_exports
Browse files Browse the repository at this point in the history
added support for configurable exports for wasm output, also fixed cm…
  • Loading branch information
larryk85 authored Dec 31, 2018
2 parents 3be544c + e0cee1d commit a6be2c0
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion eosio_llvm
Submodule eosio_llvm updated 1 files
+1 −1 tools/lld
1 change: 1 addition & 0 deletions modules/ClangExternalProject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ ExternalProject_Add(
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/llvm -DCMAKE_BUILD_TYPE=Release -DEOSIO_VER_MAJOR=${VERSION_MAJOR} -DEOSIO_VER_MINOR=${VERSION_MINOR} -DEOSIO_VER_REVISION=${VERSION_PATCH} -DEOSIO_STACK_SIZE=8192 -DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=wasm32-unknown-unknown-wasm -DCOMPILER_RT_BAREMETAL_BUILD=TRUE -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=TRUE -DCAN_TARGET_wasm32=ON -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DCOMPILER_RT_BUILD_BUILTINS=ON -DCOMPILER_RT_BUILD_XRAY=OFF -DCOMPILER_RT_BUILD_SANITIZERS=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF -DCOMPILER_RT_BUILD_PROFILE=OFF

SOURCE_DIR "${CMAKE_SOURCE_DIR}/eosio_llvm"
BINARY_DIR "${CMAKE_BINARY_DIR}/eosio_llvm"
UPDATE_COMMAND ""
PATCH_COMMAND ""
TEST_COMMAND ""
Expand Down
9 changes: 4 additions & 5 deletions modules/InstallCDT.cmake
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
add_custom_command( TARGET EosioClang POST_BUILD COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin )
macro( eosio_clang_install file )
set(BINARY_DIR ${CMAKE_BINARY_DIR}/EosioClang-prefix/src/EosioClang-build/bin)
set(BINARY_DIR ${CMAKE_BINARY_DIR}/eosio_llvm/bin)
add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BINARY_DIR}/${file} ${CMAKE_BINARY_DIR}/bin/ )
install(FILES ${BINARY_DIR}/${file}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
endmacro( eosio_clang_install )

macro( eosio_clang_install_and_symlink file symlink )
set(BINARY_DIR ${CMAKE_BINARY_DIR}/EosioClang-prefix/src/EosioClang-build/bin)
set(BINARY_DIR ${CMAKE_BINARY_DIR}/eosio_llvm/bin)
add_custom_command( TARGET EosioClang POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BINARY_DIR}/${file} ${CMAKE_BINARY_DIR}/bin/ )
add_custom_command( TARGET EosioClang POST_BUILD COMMAND cd ${CMAKE_BINARY_DIR}/bin && ln -sf ${file} ${symlink} )
install(FILES ${BINARY_DIR}/${file}
Expand All @@ -17,15 +17,15 @@ macro( eosio_clang_install_and_symlink file symlink )
endmacro( eosio_clang_install_and_symlink )

macro( eosio_tool_install file )
set(BINARY_DIR ${CMAKE_BINARY_DIR}/EosioTools-prefix/src/EosioTools-build/bin)
set(BINARY_DIR ${CMAKE_BINARY_DIR}/tools/bin)
add_custom_command( TARGET EosioTools POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BINARY_DIR}/${file} ${CMAKE_BINARY_DIR}/bin/ )
install(FILES ${BINARY_DIR}/${file}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
endmacro( eosio_tool_install )

macro( eosio_tool_install_and_symlink file symlink )
set(BINARY_DIR ${CMAKE_BINARY_DIR}/EosioTools-prefix/src/EosioTools-build/bin)
set(BINARY_DIR ${CMAKE_BINARY_DIR}/tools/bin)
add_custom_command( TARGET EosioTools POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BINARY_DIR}/${file} ${CMAKE_BINARY_DIR}/bin/ )
add_custom_command( TARGET EosioTools POST_BUILD COMMAND cd ${CMAKE_BINARY_DIR}/bin && ln -sf ${file} ${symlink} )
install(FILES ${BINARY_DIR}/${file}
Expand All @@ -36,7 +36,6 @@ endmacro( eosio_tool_install_and_symlink )
macro( eosio_libraries_install)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/lib)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include)
set(BIN_DIR ${CMAKE_BINARY_DIR}/EosioWasmLibraries-prefix/src/EosioWasmLibraries-build/)
install(DIRECTORY ${CMAKE_BINARY_DIR}/lib/ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
install(DIRECTORY ${CMAKE_BINARY_DIR}/include/ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR})
endmacro( eosio_libraries_install )
Expand Down
1 change: 1 addition & 0 deletions modules/LibrariesExternalProject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ include(GNUInstallDirs)
ExternalProject_Add(
EosioWasmLibraries
SOURCE_DIR "${CMAKE_SOURCE_DIR}/libraries"
BINARY_DIR "${CMAKE_BINARY_DIR}/libraries"
CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/EosioWasmToolchain.cmake -DEOSIO_CDT_BIN=${CMAKE_BINARY_DIR}/lib/cmake/eosio.cdt/ -DBASE_BINARY_DIR=${CMAKE_BINARY_DIR} -D__APPLE=${APPLE}
UPDATE_COMMAND ""
PATCH_COMMAND ""
Expand Down
3 changes: 2 additions & 1 deletion modules/ToolsExternalProject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ include(ExternalProject)
find_package(Git REQUIRED)
include(GNUInstallDirs)

set(LLVM_BINDIR ${CMAKE_BINARY_DIR}/EosioClang-prefix/src/EosioClang-build)
set(LLVM_BINDIR ${CMAKE_BINARY_DIR}/eosio_llvm)
ExternalProject_Add(
EosioTools
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=Release -DVERSION_FULL=${VERSION_FULL} -DLLVM_SRCDIR=${CMAKE_SOURCE_DIR}/eosio_llvm -DLLVM_BINDIR=${LLVM_BINDIR} -DLLVM_DIR=${LLVM_BINDIR}/lib/cmake/llvm -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}

SOURCE_DIR "${CMAKE_SOURCE_DIR}/tools"
BINARY_DIR "${CMAKE_BINARY_DIR}/tools"
UPDATE_COMMAND ""
PATCH_COMMAND ""
TEST_COMMAND ""
Expand Down
4 changes: 3 additions & 1 deletion tools/include/compiler_options.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -699,8 +699,10 @@ static Options CreateOptions(bool add_defaults=true) {
#else
if (fnative_opt)
ldopts.emplace_back("-lnative_c++ -lnative_c -lnative_eosio -lnative");
else
else {
ldopts.emplace_back("-lc++ -lc -leosio");
ldopts.emplace_back("--only-export \"apply:function\"");
}
#endif
return {output_fn, abigen_inputs.str(), inputs, link, abigen, pp_dir, abigen_output, abigen_contract, copts, ldopts, agopts, agresources, fnative_opt};
}

0 comments on commit a6be2c0

Please sign in to comment.