Newer
Older
add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
if (INSTALL_SDK)
set(INSTALL_DAP_SDK ON)
endif()
# problem in /usr/include/linux/netlink.h:99:24: note: expanded from macro 'NLMSG_OK' (nlh)->nlmsg_len <= (len)
if(CMAKE_C_COMPILER MATCHES "clang")
add_compile_options(-Wno-sign-compare)
endif()
set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-block-pos cs-esbocs cs-none srv-app srv-app-db srv-datum srv-stake srv-voting srv-bridge srv-xchange")

alexey.stratulat
committed
set(CELLFRAME_MODULES "${CELLFRAME_MODULES} srv-vpn")
if(BUILD_CELLFRAME_SDK_TESTS)
set(DAPSDK_MODULES "test-framework")
endif()

alexey.stratulat
committed
message("Cellframe modules: ${CELLFRAME_MODULES}")
Dmitriy A. Gerasimov
committed
if (CELLFRAME_MODULES MATCHES "srv-stake")
add_definitions("-DDAP_SRV_STAKE_USED")
endif()
option(DAP_INT128_SUPPORT "Use 128-bit varaibles, if supported" ON) # Enabled by default
if(NOT DAP_INT128_SUPPORT)
message("[!] INT128 DISABLED")
add_definitions(-DDAP_DISABLE_INT128)
else()
# message("[!] INT128 ENABLED")
# add_definitions(-DDAP_DISABLE_INT128=FALSE)
endif(NOT DAP_INT128_SUPPORT)
add_subdirectory(3rdparty/libzip)
include_directories(3rdparty/libzip/lib)
add_subdirectory(3rdparty/monero_crypto)
add_library(${PROJECT_NAME} STATIC cellframe-sdk.c)
Dmitriy A. Gerasimov
committed
# init libs
set(CELLFRAME_LIBS "")
# Core libs from dap-sdk
if (CELLFRAME_MODULES MATCHES "core")
message("[+] Module 'core'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_core dap_app_cli dap_plugin dap_crypto m)
Dmitriy A. Gerasimov
committed
endif()
# General chain libs
if (CELLFRAME_MODULES MATCHES "chains")
message("[+] Module 'chains'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_common dap_chain dap_global_db dap_chain_wallet)
Dmitriy A. Gerasimov
committed
endif()
# Networking
if (CELLFRAME_MODULES MATCHES "network")
message("[+] Module 'network'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_io dap_json_rpc dap_enc_server dap_notify_srv dap_http_server dap_session
dap_stream dap_stream_ch dap_client dap_cli_server dap_stream_ch_chain_net dap_chain_net dap_chain_net_srv dap_chain_mempool)
Dmitriy A. Gerasimov
committed
endif()
# Chain net services
if (CELLFRAME_MODULES MATCHES "srv-" )
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_stream_ch_chain_net_srv)
Dmitriy A. Gerasimov
committed
endif()
# DAG based consensus(es)
if (CELLFRAME_MODULES MATCHES "cs-dag-" )
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_dag)
endif()
# PoA consensus for DAG
if (CELLFRAME_MODULES MATCHES "cs-dag-poa")
message("[+] Module 'cs-dag-poa'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_dag_poa)
endif()
# PoS consensus for DAG
if (CELLFRAME_MODULES MATCHES "cs-dag-pos")
message("[+] Module 'cs-dag-pos'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_dag_pos)
endif()
if (CELLFRAME_MODULES MATCHES "cs-block-" OR CELLFRAME_MODULES MATCHES "cs-esbocs")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_blocks)
endif()
# PoA consensus for blocks
if (CELLFRAME_MODULES MATCHES "cs-block-poa")
message("[+] Module 'cs-block-poa'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_block_poa)
endif()
# PoS consensus for blocks
if (CELLFRAME_MODULES MATCHES "cs-block-pos")
message("[+] Module 'cs-block-pos'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_block_pos)
endif()
if (CELLFRAME_MODULES MATCHES "cs-esbocs")
message("[+] Module 'cs-esbocs'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_esbocs)
# PoW consensus for blocks
if (CELLFRAME_MODULES MATCHES "cs-block-pow")
message("[+] Module 'cs-block-pow'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_block_pow)
Dmitriy A. Gerasimov
committed
# No-consensus
if (CELLFRAME_MODULES MATCHES "cs-none")
message("[+] Module 'cs-none'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_cs_none)
endif()
# Enable service Application
if (CELLFRAME_MODULES MATCHES "srv-app")
message("[+] Module 'srv-app'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_app)
Dmitriy A. Gerasimov
committed
endif()
# Enable service Application DB
if (CELLFRAME_MODULES MATCHES "srv-app-db")
message("[+] Module 'srv-app-db'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_app_db)
Dmitriy A. Gerasimov
committed
endif()
# Enable service datum process
if (CELLFRAME_MODULES MATCHES "srv-datum")
message("[+] Module 'srv-datum'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_datum)
Dmitriy A. Gerasimov
committed
endif()
# Enable service VPN
if (CELLFRAME_MODULES MATCHES "srv-vpn")
message("[+] Module 'srv-vpn'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_vpn)
Dmitriy A. Gerasimov
committed
endif()
# Enable service eXchange
if (CELLFRAME_MODULES MATCHES "srv-xchange")
message("[+] Module 'srv-xchange'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_xchange)

alexey.stratulat
committed
# Enable service of stake token
if (CELLFRAME_MODULES MATCHES "srv-stake")
message("[+] Module 'srv-stake'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_stake)
# Enable service bridge
if (CELLFRAME_MODULES MATCHES "srv-bridge")
message("[+] Module 'srv-bridge'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_bridge)
endif()
# Enable service voting
if (CELLFRAME_MODULES MATCHES "srv-voting")
message("[+] Module 'srv-voting'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_chain_net_srv_voting)
endif()
# Enable service for dynamic modules
if (CELLFRAME_MODULES MATCHES "modules-dynamic")
message("[+] Module 'dap_modules_dynamic_cdb'")
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} dap_modules_dynamic_cdb)
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} kernel32 user32 shell32 winmm gdi32 advapi32
ole32 version imm32 oleaut32 ws2_32 ntdll psapi
if (DARWIN)
set(CELLFRAME_LIBS ${CELLFRAME_LIBS} bz2)
endif()