Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
e47ae41b
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,发现更多精彩内容 >>
提交
e47ae41b
编写于
11月 09, 2017
作者:
A
Adam Mitz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Travis build and mongo library configuration
上级
f4f85503
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
101 addition
and
55 deletion
+101
-55
.travis.yml
.travis.yml
+70
-36
plugins/db_plugin/CMakeLists.txt
plugins/db_plugin/CMakeLists.txt
+31
-19
未找到文件。
.travis.yml
浏览文件 @
e47ae41b
...
...
@@ -3,46 +3,80 @@ compiler: clang
services
:
mongodb
matrix
:
-
dist
:
trusty
sudo
:
false
addons
:
apt
:
sources
:
-
ubuntu-toolchain-r-test
-
llvm-toolchain-trusty-4.0
packages
:
-
llvm-4.0-dev
-
clang-4.0
-
g++-6
-
ninja-build
-
libgmp-dev
env
:
WASM_BRANCH=master CMAKE_DIR=$TRAVIS_BUILD_DIR/ext/cmake-3.9.0-Linux-x86_64/bin/
-
os
:
osx
osx_image
:
xcode9.1
env
:
WASM_BRANCH=macos
include
:
-
os
:
linux
dist
:
trusty
sudo
:
false
addons
:
apt
:
sources
:
-
ubuntu-toolchain-r-test
-
llvm-toolchain-trusty-4.0
packages
:
-
llvm-4.0-dev
-
clang-4.0
-
g++-6
-
ninja-build
-
libgmp-dev
env
:
-
WASM_BRANCH=master
-
CMAKE_DIR=$TRAVIS_BUILD_DIR/ext/cmake-3.9.0-Linux-x86_64/bin/
-
CC=clang-4.0
-
CXX=clang++-4.0
-
LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/ext/lib
-
MONGOCXX_CMAKE_OPTIONS="-DLIBBSON_DIR=$TRAVIS_BUILD_DIR/ext -DLIBMONGOC_DIR=$TRAVIS_BUILD_DIR/ext"
-
EOS_CMAKE_OPTIONS="-DBOOST_ROOT=$TRAVIS_BUILD_DIR/ext"
-
os
:
osx
osx_image
:
xcode9.1
env
:
-
WASM_BRANCH=macos
-
CC=/usr/local/opt/llvm@4/bin/clang
-
CXX=/usr/local/opt/llvm@4/bin/clang++
-
MONGOCXX_CMAKE_OPTIONS="-DLIBBSON_DIR=/usr/local -DLIBMONGOC_DIR=/usr/local"
-
EOS_CMAKE_OPTIONS="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
before_install
:
-
mkdir ext && cd ext
-
cd $TRAVIS_BUILD_DIR/ext && git clone --depth=1 --single-branch git://github.com/cryptonomex/secp256k1-zkp
-
cd secp256k1-zkp && ./autogen.sh && ./configure --prefix=$TRAVIS_BUILD_DIR/ext CC=clang-4.0 CXX=clang++-4.0 && make && make install
-
cd $TRAVIS_BUILD_DIR/ext && git clone --depth=1 --single-branch -b $WASM_BRANCH git://github.com/oci-labs/clang-WebAssembly wasm-compiler
-
if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install boost openssl llvm@4 gmp gettext ninja
-
CMAKE_OPTIONS="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@4/bin/clang++ -DCMAKE_C_COMPILER=/usr/local/opt/llvm@4/bin/clang"
-
else
-
wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2 && tar xjf boost_1_64_0.tar.bz2
-
"
cd
boost_1_64_0
&&
./bootstrap.sh
--prefix=$TRAVIS_BUILD_DIR/ext
&&
echo
'using
clang
:
4.0
:
clang++-4.0
;'
>>
project-config.jam
&&
./b2
-d0
-j4
--with-thread
--with-date_time
--with-system
--with-filesystem
--with-program_options
--with-signals
--with-serialization
--with-chrono
--with-test
--with-context
--with-locale
--with-coroutine
toolset=clang
link=static
install"
-
cd $TRAVIS_BUILD_DIR/ext && wget https://cmake.org/files/v3.9/cmake-3.9.0-Linux-x86_64.tar.gz && tar xzf cmake-3.9.0-Linux-x86_64.tar.gz
-
cd $TRAVIS_BUILD_DIR/ext && wget https://github.com/mongodb/mongo-c-driver/releases/download/1.8.0/mongo-c-driver-1.8.0.tar.gz && tar xzf mongo-c-driver-1.8.0.tar.gz
-
cd mongo-c-driver-1.8.0 && ./configure --disable-automatic-init-and-cleanup --enable-static CC=clang-4.0 CXX=clang++-4.0 && make && sudo make install
-
cd $TRAVIS_BUILD_DIR/ext && git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth
1
-
export CC="clang-4.0" && export CXX="clang++-4.0" && export LD_LIBRARY_PATH=/usr/local/lib
-
cd mongo-cxx-driver/build && $TRAVIS_BUILD_DIR/ext/cmake-3.9.0-Linux-x86_64/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++-4.0 -DCMAKE_C_COMPILER=clang-4.0 -DCMAKE_INSTALL_PREFIX=/usr/local .. && sudo make EP_mnmlstc_core && make && sudo make install
-
CMAKE_OPTIONS="-DCMAKE_CXX_COMPILER=clang++-4.0 -DCMAKE_C_COMPILER=clang-4.0 -DBOOST_ROOT=$TRAVIS_BUILD_DIR/ext"
-
fi
-
cd $TRAVIS_BUILD_DIR
-
|
mkdir ext && cd ext
git clone --depth 1 -b $WASM_BRANCH git://github.com/oci-labs/clang-WebAssembly wasm-compiler
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
brew install boost openssl llvm@4 gmp gettext ninja
brew link gettext --force
else
wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2
tar xjf boost_1_64_0.tar.bz2
cd boost_1_64_0
./bootstrap.sh --prefix=$TRAVIS_BUILD_DIR/ext
"echo 'using clang : 4.0 : clang++-4.0 ;' >> project-config.jam"
./b2 -d0 -j4 --with-thread --with-date_time --with-system --with-filesystem --with-program_options --with-signals --with-serialization --with-chrono --with-test --with-context --with-locale --with-coroutine toolset=clang link=static install
cd $TRAVIS_BUILD_DIR/ext
wget https://cmake.org/files/v3.9/cmake-3.9.0-Linux-x86_64.tar.gz
tar xzf cmake-3.9.0-Linux-x86_64.tar.gz
wget https://github.com/mongodb/mongo-c-driver/releases/download/1.8.0/mongo-c-driver-1.8.0.tar.gz
tar xzf mongo-c-driver-1.8.0.tar.gz
cd mongo-c-driver-1.8.0
./configure --disable-automatic-init-and-cleanup --enable-static --prefix=$TRAVIS_BUILD_DIR/ext
make
make install
fi
cd $TRAVIS_BUILD_DIR/ext
git clone --depth 1 git://github.com/cryptonomex/secp256k1-zkp
cd secp256k1-zkp
./autogen.sh
./configure --prefix=$TRAVIS_BUILD_DIR/ext
make
make install
cd $TRAVIS_BUILD_DIR/ext
git clone --depth 1 -b releases/stable git://github.com/mongodb/mongo-cxx-driver
cd mongo-cxx-driver/build
${CMAKE_DIR}cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/ext $MONGOCXX_CMAKE_OPTIONS ..
ninja install
cd $TRAVIS_BUILD_DIR
script
:
-
mkdir build && cd build
-
${CMAKE_DIR}cmake -G Ninja -DWASM_LLVM_CONFIG=$TRAVIS_BUILD_DIR/ext/wasm-compiler/bin/llvm-config -DSecp256k1_ROOT_DIR=$TRAVIS_BUILD_DIR/ext -DBINARYEN_ROOT=$TRAVIS_BUILD_DIR/ext/wasm-compiler
/ $
CMAKE_OPTIONS ..
-
${CMAKE_DIR}cmake -G Ninja -DWASM_LLVM_CONFIG=$TRAVIS_BUILD_DIR/ext/wasm-compiler/bin/llvm-config -DSecp256k1_ROOT_DIR=$TRAVIS_BUILD_DIR/ext -DBINARYEN_ROOT=$TRAVIS_BUILD_DIR/ext/wasm-compiler
$EOS_
CMAKE_OPTIONS ..
-
ninja -j4
-
tests/eosd_run_test.sh
-
tests/chain_test
...
...
plugins/db_plugin/CMakeLists.txt
浏览文件 @
e47ae41b
...
...
@@ -6,22 +6,30 @@ add_library( db_plugin
find_package
(
libmongoc-1.0 1.8
)
if
(
libmongoc-1.0_FOUND
)
message
(
"-- mongoc found version
\"
${
MONGOC_VERSION
}
\"
"
)
message
(
"-- mongoc include path
\"
${
MONGOC_INCLUDE_DIRS
}
\"
"
)
message
(
"-- mongoc libraries
\"
${
MONGOC_LIBRARIES
}
\"
"
)
find_package
(
PkgConfig QUIET
)
# NOTE: For this to work, the PKG_CONFIG_PATH variable (man pkg-config) must be set to point to the
# 'lib/pkgconfig' subdirectory of the directory used as the argument to CMAKE_INSTALL_PREFIX when
# building libmongocxx and libbsoncxx.
pkg_search_module
(
BSONCXX REQUIRED libbsoncxx
)
pkg_search_module
(
MONGOCXX REQUIRED libmongocxx
)
link_directories
(
${
MONGOCXX_LIBRARY_DIRS
}
${
BSONCXX_LIBRARY_DIRS
}
)
# EOS has no direct dependencies on libmongoc but its shared libraries
# will need to be present at runtime for the C++ libraries we use:
# libbsoncxx & libmongocxx (both from github.com/mongodb/mongo-cxx-driver)
# The *.cmake package files provided by mongo-cxx-driver don't give us the
# absolute path to the libraries, which is needed whenever they are not
# installed in system-known locations. CMake requires the absolute paths
# in target_link_libraries() since we are builiding an archive and the
# link step for all executables using this archive must include the
# mongo-cxx-driver libraries libmongocxx and libbsoncxx.
find_package
(
libbsoncxx REQUIRED
)
message
(
"Found bsoncxx headers:
${
LIBBSONCXX_INCLUDE_DIRS
}
"
)
find_library
(
EOS_LIBBSONCXX
${
LIBBSONCXX_LIBRARIES
}
PATHS
${
LIBBSONCXX_LIBRARY_DIRS
}
NO_DEFAULT_PATH
)
message
(
"Found bsoncxx library:
${
EOS_LIBBSONCXX
}
"
)
find_package
(
libmongocxx REQUIRED
)
message
(
"Found mongocxx headers:
${
LIBMONGOCXX_INCLUDE_DIRS
}
"
)
find_library
(
EOS_LIBMONGOCXX
${
LIBMONGOCXX_LIBRARIES
}
PATHS
${
LIBMONGOCXX_LIBRARY_DIRS
}
NO_DEFAULT_PATH
)
message
(
"Found mongocxx library:
${
EOS_LIBMONGOCXX
}
"
)
add_definitions
(
-DMONGODB
)
else
()
message
(
"Could NOT find MongoDB. db_plugin with MongoDB support will not be included."
)
...
...
@@ -44,13 +52,17 @@ else()
endif
()
target_include_directories
(
db_plugin
PRIVATE
${
MONGOCXX_INCLUDE_DIRS
}
PRIVATE
${
BSONCXX_INCLUDE_DIRS
}
PRIVATE
${
LIBMONGOCXX_INCLUDE_DIRS
}
${
LIBBSONCXX_INCLUDE_DIRS
}
PUBLIC
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/include"
)
target_compile_definitions
(
db_plugin
PRIVATE
${
LIBMONGOCXX_DEFINITIONS
}
${
LIBBSONCXX_DEFINITIONS
}
)
target_link_libraries
(
db_plugin
PUBLIC chain_plugin eos_chain appbase
PRIVATE
${
MONGOCXX_LIBRARIES
}
${
BSONCXX_LIBRARIES
}
${
EOS_LIBMONGOCXX
}
${
EOS_LIBBSONCXX
}
)
install
(
TARGETS
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录