Files
hpcore/CMakeLists.txt
2023-12-15 17:22:31 +05:30

96 lines
2.7 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(hpcore)
# Force build type to Release build.
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY build)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY build)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY build)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
# -------hpcore-------
add_subdirectory(src/killswitch)
add_executable(hpcore
src/util/version.cpp
src/util/util.cpp
src/util/rollover_hashset.cpp
src/util/ttl_set.cpp
src/util/buffer_store.cpp
src/util/merkle_hash_tree.cpp
src/util/h32.cpp
src/util/sequence_hash.cpp
src/unl.cpp
src/crypto.cpp
src/conf.cpp
src/hplog.cpp
src/corebill/tracker.cpp
src/hpfs/hpfs_mount.cpp
src/hpfs/hpfs_serve.cpp
src/hpfs/hpfs_sync.cpp
src/sc/contract_mount.cpp
src/sc/contract_serve.cpp
src/sc/contract_sync.cpp
src/sc/sc.cpp
src/sc/hpfs_log_sync.cpp
src/comm/comm_session.cpp
src/msg/fbuf/common_helpers.cpp
src/msg/fbuf/p2pmsg_conversion.cpp
src/msg/json/controlmsg_json.cpp
src/msg/controlmsg_parser.cpp
src/msg/json/usrmsg_json.cpp
src/msg/bson/usrmsg_bson.cpp
src/msg/usrmsg_parser.cpp
src/p2p/peer_comm_server.cpp
src/p2p/peer_comm_session.cpp
src/p2p/self_node.cpp
src/p2p/p2p.cpp
src/usr/user_comm_session.cpp
src/usr/input_nonce_map.cpp
src/usr/usr.cpp
src/usr/read_req.cpp
src/ledger/sqlite.cpp
src/ledger/ledger_query.cpp
src/ledger/ledger_mount.cpp
src/ledger/ledger_sync.cpp
src/ledger/ledger_serve.cpp
src/ledger/ledger.cpp
src/status.cpp
src/consensus.cpp
src/main.cpp
)
target_link_libraries(hpcore
killswitch
libsodium.a
pthread
libblake3.so
libboost_stacktrace_backtrace.a
backtrace
sqlite3
${CMAKE_DL_LIBS} # Needed for stacktrace support
)
add_custom_command(TARGET hpcore POST_BUILD
# COMMAND strip ./build/hpcore
COMMAND cp ./test/bin/hpws ./test/bin/hpfs ./evernode-license.pdf ./build/
)
target_precompile_headers(hpcore PUBLIC src/pchheader.hpp)
# Create docker image for local cluster testing from hpcore build output with 'make docker'
# Requires docker to be runnable without 'sudo'
add_custom_target(docker
COMMAND mkdir -p ./test/local-cluster/bin
COMMAND cp ./build/hpcore ./test/local-cluster/bin/
COMMAND cp ./test/bin/libblake3.so ./test/bin/hpws ./test/bin/hpfs ./test/local-cluster/bin/
COMMAND cp ./evernode-license.pdf ./test/local-cluster/bin/
COMMAND docker build -t hpcore:latest -t hpcore:0.6.4 -f ./test/local-cluster/Dockerfile ./test/local-cluster/bin/
)
set_target_properties(docker PROPERTIES EXCLUDE_FROM_ALL TRUE)
add_dependencies(docker hpcore)