Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
# Generated output
/output/
/generate_artifacts.*
/copy_modules.*
/copy_properties.*
*.sh~
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
###############################################################################
# Copyright (c) 2014-2015 libbitcoin developers (see COPYING).
# Copyright (c) 2014-2020 libbitcoin developers (see COPYING).
#
# Generate build artifacts for libbitcoin repositories using XML + GSL.
###############################################################################
Expand Down
2 changes: 1 addition & 1 deletion COPYING
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
This license applies to all works under this directory.

Libbitcoin - C++ Bitcoin Development Toolkit and Applications
Copyright © 2011-2017 libbitcoin developers (see AUTHORS)
Copyright © 2011-2019 libbitcoin developers (see AUTHORS)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
Expand Down
47 changes: 42 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
Libbitcoin Build uses templates and XML data to generate build artifacts for the following libbitcoin libraries.


* [![libbitcoin](https://travis-ci.org/libbitcoin/libbitcoin.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin) libbitcoin
* [![libbitcoin](https://travis-ci.org/libbitcoin/libbitcoin-system.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-system) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-system/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-system) libbitcoin-system
* [![libbitcoin-blockchain](https://travis-ci.org/libbitcoin/libbitcoin-blockchain.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-blockchain) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-blockchain/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-blockchain) libbitcoin-blockchain
* [![libbitcoin-client](https://travis-ci.org/libbitcoin/libbitcoin-client.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-client) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-client/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-client) libbitcoin-client
* [![libbitcoin-consensus](https://travis-ci.org/libbitcoin/libbitcoin-consensus.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-consensus) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-consensus/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-consensus) libbitcoin-consensus
* [![libbitcoin-database](https://travis-ci.org/libbitcoin/libbitcoin-database.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-database) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-database/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-database) libbitcoin-database
* [![libbitcoin-explorer](https://travis-ci.org/libbitcoin/libbitcoin.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-explorer) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-explorer/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-explorer) libbitcoin-explorer
* [![libbitcoin-explorer](https://travis-ci.org/libbitcoin/libbitcoin-explorer.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-explorer) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-explorer/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-explorer) libbitcoin-explorer
* [![libbitcoin-network](https://travis-ci.org/libbitcoin/libbitcoin-network.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-network) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-network/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-network) libbitcoin-network
* [![libbitcoin-node](https://travis-ci.org/libbitcoin/libbitcoin-node.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-node) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-node/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-node) libbitcoin-node
* [![libbitcoin-protocol](https://travis-ci.org/libbitcoin/libbitcoin-protocol.svg?branch=master)](https://travis-ci.org/libbitcoin/libbitcoin-protocol) [![Coverage Status](https://coveralls.io/repos/libbitcoin/libbitcoin-protocol/badge.svg)](https://coveralls.io/r/libbitcoin/libbitcoin-protocol) libbitcoin-protocol
Expand All @@ -27,8 +27,8 @@ Notes on Badges
The artifacts generated for each library are as follows. Package names coincide with libbitcoin repository names.

```
.appveyor.yml
.travis.yml
appveyor.yml
autogen.sh
build.cmd
configure.ac
Expand All @@ -38,6 +38,10 @@ install.sh
Makefile.am
include/bitcoin/[library].hpp
include/bitcoin/[library]/version.hpp
builds/cmake/CMakeLists.txt
builds/cmake/modules/[module].cmake
builds/msvc/nuget.config
builds/msvc/build/build_base.bat
builds/msvc/[edition]/[library]/[library].props
builds/msvc/[edition]/[library]/[library].vcxproj
builds/msvc/[edition]/[library]/[library].vcxproj.filters
Expand All @@ -56,22 +60,25 @@ The build system has a dependency on [iMatix GSL](https://github.com/imatix/gsl)

### Quick Start

This is similar to the [.travis.yml](https://github.com/libbitcoin/libbitcoin-build/blob/master/.travis.yml) and is useful for local generation. In addition to `update_codegen.sh` there is a `update_codegen.bat` for the native Windows environment.
This is similar to the [.travis.yml](https://github.com/libbitcoin/libbitcoin-build/blob/master/.travis.yml) and is useful for local generation. In addition to `generate.sh` there is a `generate.cmd` for the native Windows environment.

#### Linux
```
# Create a top-level work_directory.
work_directory=$HOME/work
mkdir -p $work_directory
cd $work_directory

# Clone, build and install the gsl dependency.
# gsl requires pcre package (e.g. libpcre3-dev)
# On Ubuntu: sudo apt-get install libpcre3-dev
git clone https://github.com/imatix/gsl.git
cd gsl/src
make && sudo make install
cd ../../

# Clone all libbitcoin repositories.
git clone https://github.com/libbitcoin/libbitcoin.git
git clone https://github.com/libbitcoin/libbitcoin-system.git
git clone https://github.com/libbitcoin/libbitcoin-blockchain.git
git clone https://github.com/libbitcoin/libbitcoin-build.git
git clone https://github.com/libbitcoin/libbitcoin-client.git
Expand All @@ -88,3 +95,33 @@ git clone https://github.com/libbitcoin/libbitcoin-server.git
cd libbitcoin-build
./generate.sh
```
#### Windows
```
REM Create a top-level work_directory.
set work_directory=%USERPROFILE%\work
if not exist %work_directory% mkdir %work_directory%
cd %work_directory%

REM Clone all libbitcoin repositories.
git clone https://github.com/libbitcoin/libbitcoin-system.git
git clone https://github.com/libbitcoin/libbitcoin-blockchain.git
git clone https://github.com/libbitcoin/libbitcoin-build.git
git clone https://github.com/libbitcoin/libbitcoin-client.git
git clone https://github.com/libbitcoin/libbitcoin-consensus.git
git clone https://github.com/libbitcoin/libbitcoin-database.git
git clone https://github.com/libbitcoin/libbitcoin-explorer.git
git clone https://github.com/libbitcoin/libbitcoin-network.git
git clone https://github.com/libbitcoin/libbitcoin-node.git
git clone https://github.com/libbitcoin/libbitcoin-protocol.git
git clone https://github.com/libbitcoin/libbitcoin-server.git

REM Download the gsl dependency manually from
REM https://github.com/imatix/gsl/releases/download/NuGet-4.1.0.1/gsl.exe.
REM Copy the gsl.exe manually to the libbitcoin-build folder in your work
REM directory.

REM Run the libbitcoin-build generation script.
REM Newly generated build files are copied to the cloned repos.
cd libbitcoin-build
./generate.cmd
```
60 changes: 60 additions & 0 deletions cmake/FindBash-Completion.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
###############################################################################
# Copyright (c) 2014-2020 libbitcoin-server developers (see COPYING).
#
# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY
#
###############################################################################
# FindBash-Completion
#
# Use this module by invoking find_package with the form::
#
# find_package( Bash-Completion
# [version] # Minimum version
# [REQUIRED] # Fail with error if bash-completion is not found
# )
#
# Defines the following for use:
#
# bash_completion_FOUND - true if headers and requested libraries were found
# bash_completion_INCLUDE_DIRS - include directories for bash-completion libraries
# bash_completion_LIBRARY_DIRS - link directories for bash-completion libraries
# bash_completion_LIBRARIES - bash-completion libraries to be linked
# bash_completion_PKG - bash-completion pkg-config package specification.
#

if (MSVC)
if ( Bash-Completion_FIND_REQUIRED )
set( _bash_completion_MSG_STATUS "SEND_ERROR" )
else ()
set( _bash_completion_MSG_STATUS "STATUS" )
endif()

set( bash_completion_FOUND false )
message( ${_bash_completion_MSG_STATUS} "MSVC environment detection for 'bash-completion' not currently supported." )
else ()
# required
if ( Bash-Completion_FIND_REQUIRED )
set( _bash_completion_REQUIRED "REQUIRED" )
endif()

# quiet
if ( Bash-Completion_FIND_QUIETLY )
set( _bash_completion_QUIET "QUIET" )
endif()

# modulespec
if ( Bash-Completion_FIND_VERSION_COUNT EQUAL 0 )
set( _bash_completion_MODULE_SPEC "bash-completion" )
else ()
if ( Bash-Completion_FIND_VERSION_EXACT )
set( _bash_completion_MODULE_SPEC_OP "=" )
else ()
set( _bash_completion_MODULE_SPEC_OP ">=" )
endif()

set( _bash_completion_MODULE_SPEC "bash-completion ${_bash_completion_MODULE_SPEC_OP} ${Bash-Completion_FIND_VERSION}" )
endif()

pkg_check_modules( bash_completion ${_bash_completion_REQUIRED} ${_bash_completion_QUIET} "${_bash_completion_MODULE_SPEC}" )
set( bash_completion_PKG "${_bash_completion_MODULE_SPEC}" )
endif()
60 changes: 60 additions & 0 deletions cmake/FindBitcoin-Blockchain.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
###############################################################################
# Copyright (c) 2014-2020 libbitcoin-node developers (see COPYING).
#
# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY
#
###############################################################################
# FindBitcoin-Blockchain
#
# Use this module by invoking find_package with the form::
#
# find_package( Bitcoin-Blockchain
# [version] # Minimum version
# [REQUIRED] # Fail with error if bitcoin-blockchain is not found
# )
#
# Defines the following for use:
#
# bitcoin_blockchain_FOUND - true if headers and requested libraries were found
# bitcoin_blockchain_INCLUDE_DIRS - include directories for bitcoin-blockchain libraries
# bitcoin_blockchain_LIBRARY_DIRS - link directories for bitcoin-blockchain libraries
# bitcoin_blockchain_LIBRARIES - bitcoin-blockchain libraries to be linked
# bitcoin_blockchain_PKG - bitcoin-blockchain pkg-config package specification.
#

if (MSVC)
if ( Bitcoin-Blockchain_FIND_REQUIRED )
set( _bitcoin_blockchain_MSG_STATUS "SEND_ERROR" )
else ()
set( _bitcoin_blockchain_MSG_STATUS "STATUS" )
endif()

set( bitcoin_blockchain_FOUND false )
message( ${_bitcoin_blockchain_MSG_STATUS} "MSVC environment detection for 'bitcoin-blockchain' not currently supported." )
else ()
# required
if ( Bitcoin-Blockchain_FIND_REQUIRED )
set( _bitcoin_blockchain_REQUIRED "REQUIRED" )
endif()

# quiet
if ( Bitcoin-Blockchain_FIND_QUIETLY )
set( _bitcoin_blockchain_QUIET "QUIET" )
endif()

# modulespec
if ( Bitcoin-Blockchain_FIND_VERSION_COUNT EQUAL 0 )
set( _bitcoin_blockchain_MODULE_SPEC "libbitcoin-blockchain" )
else ()
if ( Bitcoin-Blockchain_FIND_VERSION_EXACT )
set( _bitcoin_blockchain_MODULE_SPEC_OP "=" )
else ()
set( _bitcoin_blockchain_MODULE_SPEC_OP ">=" )
endif()

set( _bitcoin_blockchain_MODULE_SPEC "libbitcoin-blockchain ${_bitcoin_blockchain_MODULE_SPEC_OP} ${Bitcoin-Blockchain_FIND_VERSION}" )
endif()

pkg_check_modules( bitcoin_blockchain ${_bitcoin_blockchain_REQUIRED} ${_bitcoin_blockchain_QUIET} "${_bitcoin_blockchain_MODULE_SPEC}" )
set( bitcoin_blockchain_PKG "${_bitcoin_blockchain_MODULE_SPEC}" )
endif()
60 changes: 60 additions & 0 deletions cmake/FindBitcoin-Client.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
###############################################################################
# Copyright (c) 2014-2020 libbitcoin-explorer developers (see COPYING).
#
# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY
#
###############################################################################
# FindBitcoin-Client
#
# Use this module by invoking find_package with the form::
#
# find_package( Bitcoin-Client
# [version] # Minimum version
# [REQUIRED] # Fail with error if bitcoin-client is not found
# )
#
# Defines the following for use:
#
# bitcoin_client_FOUND - true if headers and requested libraries were found
# bitcoin_client_INCLUDE_DIRS - include directories for bitcoin-client libraries
# bitcoin_client_LIBRARY_DIRS - link directories for bitcoin-client libraries
# bitcoin_client_LIBRARIES - bitcoin-client libraries to be linked
# bitcoin_client_PKG - bitcoin-client pkg-config package specification.
#

if (MSVC)
if ( Bitcoin-Client_FIND_REQUIRED )
set( _bitcoin_client_MSG_STATUS "SEND_ERROR" )
else ()
set( _bitcoin_client_MSG_STATUS "STATUS" )
endif()

set( bitcoin_client_FOUND false )
message( ${_bitcoin_client_MSG_STATUS} "MSVC environment detection for 'bitcoin-client' not currently supported." )
else ()
# required
if ( Bitcoin-Client_FIND_REQUIRED )
set( _bitcoin_client_REQUIRED "REQUIRED" )
endif()

# quiet
if ( Bitcoin-Client_FIND_QUIETLY )
set( _bitcoin_client_QUIET "QUIET" )
endif()

# modulespec
if ( Bitcoin-Client_FIND_VERSION_COUNT EQUAL 0 )
set( _bitcoin_client_MODULE_SPEC "libbitcoin-client" )
else ()
if ( Bitcoin-Client_FIND_VERSION_EXACT )
set( _bitcoin_client_MODULE_SPEC_OP "=" )
else ()
set( _bitcoin_client_MODULE_SPEC_OP ">=" )
endif()

set( _bitcoin_client_MODULE_SPEC "libbitcoin-client ${_bitcoin_client_MODULE_SPEC_OP} ${Bitcoin-Client_FIND_VERSION}" )
endif()

pkg_check_modules( bitcoin_client ${_bitcoin_client_REQUIRED} ${_bitcoin_client_QUIET} "${_bitcoin_client_MODULE_SPEC}" )
set( bitcoin_client_PKG "${_bitcoin_client_MODULE_SPEC}" )
endif()
60 changes: 60 additions & 0 deletions cmake/FindBitcoin-Consensus.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
###############################################################################
# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING).
#
# GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY
#
###############################################################################
# FindBitcoin-Consensus
#
# Use this module by invoking find_package with the form::
#
# find_package( Bitcoin-Consensus
# [version] # Minimum version
# [REQUIRED] # Fail with error if bitcoin-consensus is not found
# )
#
# Defines the following for use:
#
# bitcoin_consensus_FOUND - true if headers and requested libraries were found
# bitcoin_consensus_INCLUDE_DIRS - include directories for bitcoin-consensus libraries
# bitcoin_consensus_LIBRARY_DIRS - link directories for bitcoin-consensus libraries
# bitcoin_consensus_LIBRARIES - bitcoin-consensus libraries to be linked
# bitcoin_consensus_PKG - bitcoin-consensus pkg-config package specification.
#

if (MSVC)
if ( Bitcoin-Consensus_FIND_REQUIRED )
set( _bitcoin_consensus_MSG_STATUS "SEND_ERROR" )
else ()
set( _bitcoin_consensus_MSG_STATUS "STATUS" )
endif()

set( bitcoin_consensus_FOUND false )
message( ${_bitcoin_consensus_MSG_STATUS} "MSVC environment detection for 'bitcoin-consensus' not currently supported." )
else ()
# required
if ( Bitcoin-Consensus_FIND_REQUIRED )
set( _bitcoin_consensus_REQUIRED "REQUIRED" )
endif()

# quiet
if ( Bitcoin-Consensus_FIND_QUIETLY )
set( _bitcoin_consensus_QUIET "QUIET" )
endif()

# modulespec
if ( Bitcoin-Consensus_FIND_VERSION_COUNT EQUAL 0 )
set( _bitcoin_consensus_MODULE_SPEC "libbitcoin-consensus" )
else ()
if ( Bitcoin-Consensus_FIND_VERSION_EXACT )
set( _bitcoin_consensus_MODULE_SPEC_OP "=" )
else ()
set( _bitcoin_consensus_MODULE_SPEC_OP ">=" )
endif()

set( _bitcoin_consensus_MODULE_SPEC "libbitcoin-consensus ${_bitcoin_consensus_MODULE_SPEC_OP} ${Bitcoin-Consensus_FIND_VERSION}" )
endif()

pkg_check_modules( bitcoin_consensus ${_bitcoin_consensus_REQUIRED} ${_bitcoin_consensus_QUIET} "${_bitcoin_consensus_MODULE_SPEC}" )
set( bitcoin_consensus_PKG "${_bitcoin_consensus_MODULE_SPEC}" )
endif()
Loading