Last active
January 22, 2020 04:55
-
-
Save gubatron/fd67cb0663b1ed53cb9eefb9561016b3 to your computer and use it in GitHub Desktop.
CMakeList.txt for Bitcoin Unlimited + macOS CLion IDE based development
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Author: Angel Leon (@gubatron) | |
# October 2nd 2018 | |
# | |
# | |
# README: | |
# | |
# This CmakeLists.txt file is not meant to produce any executables or libraries. | |
# | |
# It has been created for CLion or any other cmake compatible IDE users so that they can | |
# have their entire project built in such a way the IDE can index all symbols without errors. | |
# | |
# To build binaries, please use the original Makefile. | |
# | |
# This script has not been tested in Windows, nor in Linux, it has only been tested to work on MacOSX. | |
# | |
# CHANGELOG: | |
# | |
# September 5th 2017, originally created to build bitcoinclassic - @gubatron | |
# October 2nd 2018, updated for BitcoinUnlimited project - @gubatron | |
# | |
# # Usage of this CMakeLists.txt from the command line | |
# | |
# cmake . | |
# make -j 8 | |
# | |
cmake_minimum_required(VERSION 3.8) | |
project(bitcoinunlimited) | |
set(CMAKE_CXX_STANDARD 11) | |
add_definitions( | |
# FIX-ME: I already have strlen defined on MacOSX, gotta check how this behaves in other OSes. | |
-DHAVE_DECL_STRNLEN=1 | |
# GMP Bignum Library | |
-DUSE_NUM_GMP=1 | |
-DUSE_FIELD_INV_NUM=1 | |
-DUSE_SCALAR_INV_NUM=1 | |
# secp256k1 flags | |
# for 64bit | |
-DUSE_BASIC_CONFIG=1 | |
-DUSE_FIELD_INV_BUILTIN=1 | |
-DUSE_SCALAR_INV_BUILTIN=1 | |
-DUSE_FIELD_10X26=1 | |
-DUSE_SCALAR_8X32 | |
-DHAVE___INT128=1 | |
-DJSON_TEST_SRC="${CMAKE_SOURCE_DIR}/src/univalue/test" | |
-DENABLE_ZMQ=1 | |
-DHAVE_CONFIG_H=1 | |
) | |
if(EXISTS $ENV{OPENSSL_INCLUDE_PATH}) | |
message(STATUS "OK: ENV[OPENSSL_INCLUDE_PATH] -> $ENV{OPENSSL_INCLUDE_PATH}" ) | |
else() | |
# Mac Example -> export OPENSSL_INCLUDE_PATH=/usr/local/Cellar/openssl/1.0.2p/include | |
# (brew install openssl; brew link openssl) | |
message(FATAL_ERROR "Mandatory OPENSSL_INCLUDE_PATH environment variable not specified") | |
endif() | |
if (EXISTS $ENV{ZMQ_ROOT}) | |
message(STATUS "OK: ENV[ZMQ_ROOT] -> $ENV{ZMQ_ROOT}") | |
else() | |
#Mac Example -> export ZMQ_ROOT=/usr/local/Cellar/zeromq/4.2.2 | |
message(FATAL_ERROR "Mandatory ZMQ_ROOT environment variable not specified") | |
endif() | |
include_directories( | |
$ENV{OPENSSL_INCLUDE_PATH} | |
$ENV{ZMQ_ROOT} | |
/usr/local/include | |
) | |
include_directories( | |
# src/leveldb/port/win # (windows only) | |
# src/qt | |
# src/qt/test | |
src | |
src/bench | |
src/blockrelay | |
src/blockstorage | |
src/cashlib | |
#src/compat | |
src/config | |
src/consensus | |
src/crypto | |
src/fast-cpp-csv-parser | |
src/leveldb/db | |
src/leveldb/helpers/memenv | |
src/leveldb/include | |
src/leveldb/port | |
src/leveldb/table | |
src/leveldb/util | |
src/obj | |
src/policy | |
src/primitives | |
src/respend | |
src/respend/test | |
src/rpc | |
src/script | |
src/secp256k1/contrib | |
src/secp256k1/include | |
src/secp256k1/src | |
src/secp256k1/src/java | |
src/secp256k1/src/modules/ecdh | |
src/secp256k1/src/modules/recovery | |
src/support | |
src/support/allocators | |
src/test | |
src/test/data | |
src/univalue/include | |
src/univalue/lib | |
src/univalue/test | |
src/validation | |
src/wallet | |
src/wallet/test | |
src/zmq | |
) | |
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) | |
foreach(dir ${dirs}) | |
message(STATUS "dir='${dir}'") | |
endforeach() | |
set(SOURCE_FILES | |
#src/config/bitcoin-config.h | |
# src/ | |
src/addrman.cpp | |
src/allowed_args.cpp | |
src/amount.cpp | |
src/arith_uint256.cpp | |
src/bandb.cpp | |
src/banentry.cpp | |
src/base58.cpp | |
src/bitcoin-cli.cpp | |
src/bitcoin-miner.cpp | |
src/bitcoin-tx.cpp | |
src/bitcoind.cpp | |
src/bitnodes.cpp | |
src/bloom.cpp | |
src/cashaddr.cpp | |
src/cashaddrenc.cpp | |
src/chain.cpp | |
src/chainparams.cpp | |
src/chainparamsbase.cpp | |
src/checkpoints.cpp | |
src/clientversion.cpp | |
src/coins.cpp | |
src/compressor.cpp | |
src/config.cpp | |
src/connmgr.cpp | |
src/core_read.cpp | |
src/core_write.cpp | |
src/dbwrapper.cpp | |
src/dosman.cpp | |
src/dstencode.cpp | |
src/expedited.cpp | |
src/forks_csv.cpp | |
src/fs.cpp | |
src/globals.cpp | |
src/hash.cpp | |
src/httprpc.cpp | |
src/httpserver.cpp | |
src/iblt.cpp | |
src/init.cpp | |
src/key.cpp | |
src/keystore.cpp | |
src/main.cpp | |
src/merkleblock.cpp | |
src/miner.cpp | |
src/net.cpp | |
src/netaddress.cpp | |
src/netbase.cpp | |
src/nodestate.cpp | |
src/noui.cpp | |
src/parallel.cpp | |
src/pow.cpp | |
src/protocol.cpp | |
src/pubkey.cpp | |
src/random.cpp | |
src/requestManager.cpp | |
src/rest.cpp | |
src/scheduler.cpp | |
src/sync.cpp | |
src/timedata.cpp | |
src/torcontrol.cpp | |
src/tweak.cpp | |
src/txadmission.cpp | |
src/txdb.cpp | |
src/txmempool.cpp | |
src/txorphanpool.cpp | |
src/uahf_fork.cpp | |
src/ui_interface.cpp | |
src/uint256.cpp | |
src/unlimited.cpp | |
src/util.cpp | |
src/utilmoneystr.cpp | |
src/utilstrencodings.cpp | |
src/utiltime.cpp | |
src/validationinterface.cpp | |
src/versionbits.cpp | |
# src/bench | |
src/bench/bench.cpp | |
src/bench/bench_bitcoin.cpp | |
src/bench/bloom.cpp | |
src/bench/crypto_hash.cpp | |
src/bench/Examples.cpp | |
src/bench/murmur_hash.cpp | |
src/bench/rollingbloom.cpp | |
src/bench/verify_script.cpp | |
# src/blockrelay | |
src/blockrelay/graphene.cpp | |
src/blockrelay/blockrelay_common.cpp | |
src/blockrelay/thinblock.cpp | |
src/blockrelay/graphene_set.cpp | |
# src/blockstorage | |
src/blockstorage/blockleveldb.cpp | |
src/blockstorage/sequential_files.cpp | |
src/blockstorage/blockstorage.cpp | |
# src/cashlib | |
src/cashlib/cashlib.cpp | |
# src/consensus | |
src/consensus/tx_verify.cpp | |
src/consensus/merkle.cpp | |
# # src/compat | |
# src/compat/glibc_compat.cpp | |
# src/compat/glibc_sanity.cpp | |
# src/compat/glibcxx_sanity.cpp | |
# src/compat/strnlen.cpp | |
# src/crypto | |
src/crypto/aes.cpp | |
src/crypto/hmac_sha256.cpp | |
src/crypto/hmac_sha512.cpp | |
src/crypto/ripemd160.cpp | |
src/crypto/sha1.cpp | |
src/crypto/sha256.cpp | |
src/crypto/sha256_sse4.cpp | |
src/crypto/sha512.cpp | |
# src/policy | |
src/policy/fees.cpp | |
src/policy/policy.cpp | |
# src/primitives | |
src/primitives/block.cpp | |
src/primitives/transaction.cpp | |
# src/respend | |
src/respend/respenddetector.cpp | |
src/respend/respendlogger.cpp | |
src/respend/respendrelayer.cpp | |
# src/respend/test | |
src/respend/test/respenddetector_tests.cpp | |
src/respend/test/respendrelayer_tests.cpp | |
# src/rpc | |
src/rpc/blockchain.cpp | |
src/rpc/client.cpp | |
src/rpc/mining.cpp | |
src/rpc/misc.cpp | |
src/rpc/net.cpp | |
src/rpc/protocol.cpp | |
src/rpc/rawtransaction.cpp | |
src/rpc/server.cpp | |
# src/script | |
src/script/bitcoinconsensus.cpp | |
src/script/interpreter.cpp | |
src/script/ismine.cpp | |
src/script/script.cpp | |
src/script/script_error.cpp | |
src/script/sigcache.cpp | |
src/script/sigcommon.cpp | |
src/script/sign.cpp | |
src/script/standard.cpp | |
# src/support | |
src/support/cleanse.cpp | |
src/support/pagelocker.cpp | |
# src/test | |
src/test/addrman_tests.cpp | |
src/test/alert_tests.cpp | |
src/test/allocator_tests.cpp | |
src/test/arith_uint256_tests.cpp | |
src/test/bandb_tests.cpp | |
src/test/base32_tests.cpp | |
src/test/base58_tests.cpp | |
src/test/base64_tests.cpp | |
src/test/bip32_tests.cpp | |
src/test/bloom_tests.cpp | |
src/test/bswap_tests.cpp | |
src/test/cashaddr_tests.cpp | |
src/test/cashaddrenc_tests.cpp | |
src/test/checkblock_tests.cpp | |
src/test/Checkpoints_tests.cpp | |
src/test/coins_tests.cpp | |
src/test/compress_tests.cpp | |
src/test/core_io_tests.cpp | |
src/test/crypto_tests.cpp | |
src/test/dbwrapper_tests.cpp | |
src/test/DoS_tests.cpp | |
src/test/dstencode_tests.cpp | |
src/test/excessiveblock_test.cpp | |
src/test/exploit_tests.cpp | |
src/test/fastfilter_tests.cpp | |
src/test/fork_tests.cpp | |
src/test/forkscsv_tests.cpp | |
src/test/genversionbits_tests.cpp | |
src/test/getarg_tests.cpp | |
src/test/graphene_tests.cpp | |
src/test/hash_tests.cpp | |
src/test/iblt_tests.cpp | |
src/test/key_tests.cpp | |
src/test/limitedmap_tests.cpp | |
src/test/main_tests.cpp | |
src/test/mempool_tests.cpp | |
src/test/merkle_tests.cpp | |
src/test/miner_tests.cpp | |
src/test/multisig_tests.cpp | |
src/test/net_tests.cpp | |
src/test/netbase_tests.cpp | |
src/test/opcodes_tests.cpp | |
src/test/pmt_tests.cpp | |
src/test/policyestimator_tests.cpp | |
src/test/pow_tests.cpp | |
src/test/prevector_tests.cpp | |
src/test/reverselock_tests.cpp | |
src/test/rpc_tests.cpp | |
src/test/sanity_tests.cpp | |
src/test/scheduler_tests.cpp | |
src/test/script_P2SH_tests.cpp | |
src/test/script_tests.cpp | |
src/test/scriptflags.cpp | |
src/test/scriptnum_tests.cpp | |
src/test/serialize_tests.cpp | |
src/test/sighash_tests.cpp | |
src/test/sigopcount_tests.cpp | |
src/test/skiplist_tests.cpp | |
src/test/stat_tests.cpp | |
src/test/streams_tests.cpp | |
src/test/test_bitcoin.cpp | |
src/test/test_bitcoin_fuzzy.cpp | |
src/test/testutil.cpp | |
src/test/thinblock_data_tests.cpp | |
src/test/thinblock_tests.cpp | |
src/test/thinblock_util_tests.cpp | |
src/test/timedata_tests.cpp | |
src/test/transaction_tests.cpp | |
src/test/txvalidationcache_tests.cpp | |
src/test/uahf_test.cpp | |
src/test/uint256_tests.cpp | |
src/test/univalue_tests.cpp | |
src/test/util_tests.cpp | |
src/test/versionbits_tests.cpp | |
# src/qt | |
# src/qt/addressbookpage.cpp | |
# src/qt/addresstablemodel.cpp | |
# src/qt/askpassphrasedialog.cpp | |
# src/qt/bantablemodel.cpp | |
# src/qt/bitcoin.cpp | |
# src/qt/bitcoinaddressvalidator.cpp | |
# src/qt/bitcoinamountfield.cpp | |
# src/qt/bitcoingui.cpp | |
# src/qt/bitcoinstrings.cpp | |
# src/qt/bitcoinunits.cpp | |
# src/qt/clientmodel.cpp | |
# src/qt/coincontroldialog.cpp | |
# src/qt/coincontroltreewidget.cpp | |
# src/qt/csvmodelwriter.cpp | |
# src/qt/editaddressdialog.cpp | |
# src/qt/guiutil.cpp | |
# src/qt/intro.cpp | |
# src/qt/networkstyle.cpp | |
# src/qt/notificator.cpp | |
# src/qt/openuridialog.cpp | |
# src/qt/optionsdialog.cpp | |
# src/qt/optionsmodel.cpp | |
# src/qt/overviewpage.cpp | |
# src/qt/paymentrequestplus.cpp | |
# src/qt/paymentserver.cpp | |
# src/qt/peertablemodel.cpp | |
# src/qt/platformstyle.cpp | |
# src/qt/qvalidatedlineedit.cpp | |
# src/qt/qvaluecombobox.cpp | |
# src/qt/receivecoinsdialog.cpp | |
# src/qt/receivefreezedialog.cpp | |
# src/qt/receiverequestdialog.cpp | |
# src/qt/recentrequeststablemodel.cpp | |
# src/qt/rpcconsole.cpp | |
# src/qt/sendcoinsdialog.cpp | |
# src/qt/sendcoinsentry.cpp | |
# src/qt/signverifymessagedialog.cpp | |
# src/qt/splashscreen.cpp | |
# src/qt/test/bitcoinaddressvalidatortests.cpp | |
# src/qt/test/compattests.cpp | |
# src/qt/test/guiutiltests.cpp | |
# src/qt/test/paymentservertests.cpp | |
# src/qt/test/test_main.cpp | |
# src/qt/test/uritests.cpp | |
# src/qt/trafficgraphwidget.cpp | |
# src/qt/transactiondesc.cpp | |
# src/qt/transactiondescdialog.cpp | |
# src/qt/transactionfilterproxy.cpp | |
# src/qt/transactionrecord.cpp | |
# src/qt/transactiontablemodel.cpp | |
# src/qt/transactionview.cpp | |
# src/qt/unlimiteddialog.cpp | |
# src/qt/unlimitedmodel.cpp | |
# src/qt/utilitydialog.cpp | |
# src/qt/walletframe.cpp | |
# src/qt/walletmodel.cpp | |
# src/qt/walletmodeltransaction.cpp | |
# src/qt/walletview.cpp | |
# src/qt/winshutdownmonitor.cpp | |
# src/univalue/gen | |
src/univalue/gen/gen.cpp | |
# src/univalue/lib | |
src/univalue/lib/univalue.cpp | |
src/univalue/lib/univalue_get.cpp | |
src/univalue/lib/univalue_read.cpp | |
src/univalue/lib/univalue_write.cpp | |
# src/validation | |
src/validation/forks.cpp | |
src/validation/validation.cpp | |
src/validation/verifydb.cpp | |
# src/univalue/test | |
src/univalue/test/no_nul.cpp | |
src/univalue/test/object.cpp | |
src/univalue/test/test_json.cpp | |
src/univalue/test/unitester.cpp | |
# src/wallet | |
src/wallet/crypter.cpp | |
src/wallet/db.cpp | |
src/wallet/rpcdump.cpp | |
src/wallet/rpcwallet.cpp | |
src/wallet/wallet.cpp | |
#src/wallet/wallet_ismine.cpp # excluded due to include to wallet_ismine.h which does not exist | |
src/wallet/walletdb.cpp | |
# src/wallet/test | |
src/wallet/test/accounting_tests.cpp #error: ambiguous conversion for functional-style cast from 'int' to 'DbEnv' | |
src/wallet/test/crypto_tests.cpp | |
src/wallet/test/rpc_wallet_tests.cpp | |
src/wallet/test/wallet_test_fixture.cpp #error: ambiguous conversion for functional-style cast from 'int' to 'DbEnv' | |
src/wallet/test/wallet_tests.cpp | |
src/wallet/test/walletdb_tests.cpp #error: ambiguous conversion for functional-style cast from 'int' to 'DbEnv' | |
# src/zmq | |
src/zmq/zmqabstractnotifier.cpp | |
src/zmq/zmqnotificationinterface.cpp | |
src/zmq/zmqpublishnotifier.cpp | |
) | |
add_library(noexecutable ${SOURCE_FILES}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment