From 6a7b6dd2dfe4f989006b326a3552ebd45f0d6c79 Mon Sep 17 00:00:00 2001 From: Snider Date: Mon, 29 Sep 2025 19:04:52 +0100 Subject: [PATCH] Refactor config system and move currency_config.h Moved currency_config.h and related CMake/config files to a new src/config directory, creating a dedicated config CMake target. Updated all includes and build scripts to reference the new config location. Removed obsolete cmake/ChainConfig.cmake and example currency config, and restructured genesis generator and premine wallet logic into the new config system for improved modularity and maintainability. --- CMakeLists.txt | 4 +- cmake/CPackConfig.cmake | 2 +- cmake/ChainConfig.cmake | 64 ------------------- cmake/currency_configs/example.cmake | 20 ------ src/CMakeLists.txt | 36 ++++++----- src/common/command_line.cpp | 2 +- src/common/db_backend_selector.cpp | 2 +- src/common/miniupnp_helper.h | 2 +- src/common/util.cpp | 2 +- src/config/CMakeLists.txt | 63 ++++++++++++++++++ .../config/check-config.cmake | 0 .../currency_config.h.in | 0 .../config/default.cmake | 1 - src/crypto/one_out_of_many_proofs.cpp | 2 +- src/currency_core/basic_pow_helpers.cpp | 2 +- src/currency_core/blockchain_storage.cpp | 2 +- src/currency_core/currency_basic.h | 2 +- src/currency_core/currency_core.cpp | 2 +- src/currency_core/currency_format_utils.cpp | 2 +- src/currency_core/difficulty.cpp | 2 +- src/currency_core/tx_pool.cpp | 2 +- src/genesis_generator/CMakeLists.txt | 37 +++++++++++ src/p2p/net_node.h | 2 +- src/p2p/net_peerlist.h | 2 +- src/p2p/p2p_protocol_defs.h | 2 +- src/stratum/stratum_server.cpp | 2 +- src/wallet/plain_wallet_api.cpp | 2 +- 27 files changed, 139 insertions(+), 122 deletions(-) delete mode 100644 cmake/ChainConfig.cmake delete mode 100644 cmake/currency_configs/example.cmake create mode 100644 src/config/CMakeLists.txt rename cmake/check-config-vars.cmake => src/config/check-config.cmake (100%) rename src/{currency_core => config}/currency_config.h.in (100%) rename cmake/config-vars.cmake => src/config/default.cmake (99%) create mode 100644 src/genesis_generator/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 95c6a913..4e301d0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -295,8 +295,6 @@ else() endif() endif() -include(ChainConfig) - set(BUILD_TESTS FALSE CACHE BOOL "Build Lethean tests") set(DISABLE_MDBX FALSE CACHE BOOL "Exclude mdbx from build(need for a first time)") if(NOT DISABLE_MDBX) @@ -311,4 +309,4 @@ if (BUILD_TESTS) add_subdirectory(tests) endif() -include(CPackConfig) \ No newline at end of file +include(CPackConfig) diff --git a/cmake/CPackConfig.cmake b/cmake/CPackConfig.cmake index e5f43fe7..983dd181 100644 --- a/cmake/CPackConfig.cmake +++ b/cmake/CPackConfig.cmake @@ -1,4 +1,4 @@ -include(${CMAKE_SOURCE_DIR}/cmake/config-vars.cmake) +#include(${CMAKE_SOURCE_DIR}/cmake/config-vars.cmake) if(CMAKE_BUILD_TYPE STREQUAL "Release") set(CPACK_PACKAGE_NAME "${package_name}") diff --git a/cmake/ChainConfig.cmake b/cmake/ChainConfig.cmake deleted file mode 100644 index 3eb3716c..00000000 --- a/cmake/ChainConfig.cmake +++ /dev/null @@ -1,64 +0,0 @@ - - -include_directories (${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src/currency_core) -include(${CMAKE_SOURCE_DIR}/cmake/config-vars.cmake) -#include(${CMAKE_SOURCE_DIR}/cmake/currency_configs/example.cmake) -include(${CMAKE_SOURCE_DIR}/cmake/check-config-vars.cmake) -configure_file("src/currency_core/currency_config.h.in" "src/currency_core/currency_config.h") - -# CAUTION - wallet generation will only work properly in UNIX line environment -set(GENERATE_FRESH_GENESIS OFF CACHE BOOL "Generate new genesis block") - -set(GENESIS_PREMINE_ADDRESS "" CACHE STRING "Premine wallet address") -set(GENESIS_PROOF "" CACHE STRING "Genesis proof string") - -set(GENERATE_PREMINE_WALLET OFF CACHE BOOL "Generate premine wallet") -set(PREMINE_WALLET_PASSWORD "" CACHE STRING "Premine wallet password") - -if (GENERATE_PREMINE_WALLET AND GENERATE_FRESH_GENESIS) - message(FATAL_ERROR "Genesis can not be generated together with premine wallet") -endif() - -if (GENERATE_PREMINE_WALLET) - unset(GENERATE_PREMINE_WALLET CACHE) - message(WARNING "Generating premine wallet") - - if (NOT DEFINED PREMINE_WALLET_PASSWORD OR PREMINE_WALLET_PASSWORD STREQUAL "") - message(FATAL_ERROR "set PREMINE_WALLET_PASSWORD or GENESIS_PREMINE_ADDRESS to generate genesis block") - endif() - - # Make wallet directory - add_custom_target( - premine_wallet - "${CMAKE_COMMAND}" -E make_directory "${CMAKE_SOURCE_DIR}/premine_wallet" - COMMENT "Creating premine wallet directory" - ) - - # Generate wallet - add_custom_command(TARGET premine_wallet POST_BUILD - COMMAND echo ${PREMINE_WALLET_PASSWORD} | ${CMAKE_BINARY_DIR}/src/lethean-wallet-cli --generate-new-wallet ${CMAKE_SOURCE_DIR}/premine_wallet/premine_wallet - COMMENT "Generating premine wallet in ${CMAKE_SOURCE_DIR}/premine_wallet" - ) - - add_dependencies(premine_wallet simplewallet) -endif() - -if (GENERATE_FRESH_GENESIS) - unset(GENERATE_FRESH_GENESIS CACHE) - add_executable(genesis_generator ${GENESIS_GENERATOR}) - target_link_libraries(genesis_generator currency_core crypto common zlibstatic ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) - - if (NOT DEFINED GENESIS_PREMINE_ADDRESS OR GENESIS_PREMINE_ADDRESS STREQUAL "") - message(WARNING "GENESIS_PREMINE_ADDRESS not set, loading from ${CMAKE_SOURCE_DIR}/premine_wallet/premine_wallet.address") - file(READ "${CMAKE_SOURCE_DIR}/premine_wallet/premine_wallet.address" GENESIS_PREMINE_ADDRESS) - if (NOT DEFINED GENESIS_PREMINE_ADDRESS OR GENESIS_PREMINE_ADDRESS STREQUAL "") - message(FATAL_ERROR "GENESIS_PREMINE_ADDRESS not set") - endif() - else() - add_custom_command(TARGET genesis_generator POST_BUILD - COMMAND ${CMAKE_BINARY_DIR}/src/genesis_generator --address ${GENESIS_PREMINE_ADDRESS} --proof ${GENESIS_PROOF} --output ${CMAKE_SOURCE_DIR}/src/currency_core/generated/ - COMMENT "Generating genesis data in ${CMAKE_SOURCE_DIR}/src/currency_core/" - ) - endif() - -endif() \ No newline at end of file diff --git a/cmake/currency_configs/example.cmake b/cmake/currency_configs/example.cmake deleted file mode 100644 index e9359b55..00000000 --- a/cmake/currency_configs/example.cmake +++ /dev/null @@ -1,20 +0,0 @@ -set(currency_display_decimal_point 12) -set(coin 1000000000000) -set(base_reward_dust_threshold 1000000) -set(default_dust_threshold 0) -set(tx_default_fee 10000000000) -set(tx_minimum_fee 10000000000) -set(difficulty_pow_starter 1) -set(difficulty_pos_target 120) -set(difficulty_pow_target 120) -set(difficulty_window 720) -set(difficulty_lag 15) -set(difficulty_cut 60) -set(p2p_default_port 36942) -set(rpc_default_port 36941) -set(stratum_default_port 36940) -set(p2p_maintainers_pub_key "8f138bb73f6d663a3746a542770781a09579a7b84cb4125249e95530824ee607") -set(currency_name_abr "NF") -set(currency_name_base "NotFake") -set(currency_name_short_base "NotFake") -set(premine_amount 4000000000000000000) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f989e9f6..77dd4a58 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -65,7 +65,6 @@ file(GLOB_RECURSE SIMPLEWALLET simplewallet/*) file(GLOB_RECURSE CONN_TOOL connectivity_tool/*) file(GLOB_RECURSE WALLET wallet/*) file(GLOB_RECURSE MINER miner/*) -file(GLOB_RECURSE GENESIS_GENERATOR genesis_generator/*) source_group(pch FILES ${PCH}) @@ -80,14 +79,16 @@ source_group(stratum FILES ${STRATUM}) source_group(simplewallet FILES ${SIMPLEWALLET}) source_group(connectivity-tool FILES ${CONN_TOOL}) source_group(wallet FILES ${WALLET}) -source_group(genesis_generator FILES ${GENESIS_GENERATOR}) INIT_SHARED_PCH() +add_subdirectory(config) +add_subdirectory(genesis_generator) + add_library(common ${COMMON}) -add_dependencies(common version ${PCH_LIB_NAME}) -target_link_libraries(common PUBLIC ${Boost_LIBRARIES}) +add_dependencies(common version config ${PCH_LIB_NAME}) +target_link_libraries(common PUBLIC ${Boost_LIBRARIES} config) ENABLE_SHARED_PCH(common COMMON) if(NOT MSVC AND NOT APPLE AND NOT CLANG) # TODO(unassigned): do we really need the clang equivalent? @@ -107,15 +108,16 @@ endif() add_library(crypto ${CRYPTO}) if(USE_BITCOIN_SECP256K1_FOR_ECDSA) - add_dependencies(crypto secp256k1) - target_link_libraries(crypto secp256k1 ${BCRYPT_LIB}) + add_dependencies(crypto secp256k1 config) + target_link_libraries(crypto config secp256k1 ${BCRYPT_LIB}) else() - add_dependencies(crypto OpenSSL::Crypto) - target_link_libraries(crypto OpenSSL::Crypto ${BCRYPT_LIB}) + add_dependencies(crypto OpenSSL::Crypto config) + target_link_libraries(crypto PUBLIC config OpenSSL::Crypto ${BCRYPT_LIB}) endif() add_library(currency_core ${CURRENCY_CORE}) -add_dependencies(currency_core version ${PCH_LIB_NAME}) +add_dependencies(currency_core version config ${PCH_LIB_NAME}) +target_link_libraries(currency_core config) ENABLE_SHARED_PCH(currency_core CURRENCY_CORE) add_library(wallet ${WALLET}) @@ -123,7 +125,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android" ) add_dependencies(wallet version ${PCH_LIB_NAME}) target_link_libraries(wallet currency_core crypto common ZLIB::ZLIB ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} android log OpenSSL::SSL OpenSSL::Crypto) else() - add_dependencies(wallet version ${PCH_LIB_NAME}) + add_dependencies(wallet version config ${PCH_LIB_NAME}) + target_link_libraries(wallet config) ENABLE_SHARED_PCH(wallet WALLET) endif() @@ -146,25 +149,27 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") endif() add_library(rpc ${RPC}) -add_dependencies(rpc version ${PCH_LIB_NAME}) +add_dependencies(rpc version config ${PCH_LIB_NAME}) +target_link_libraries(rpc config) ENABLE_SHARED_PCH(rpc RPC) add_library(stratum ${STRATUM}) -add_dependencies(stratum version ${PCH_LIB_NAME}) +add_dependencies(stratum version config ${PCH_LIB_NAME}) +target_link_libraries(stratum config) ENABLE_SHARED_PCH(stratum STRATUM) -target_link_libraries(currency_core lmdb mdbx) +target_link_libraries(currency_core config lmdb mdbx) add_executable(daemon ${DAEMON} ${P2P} ${CURRENCY_PROTOCOL}) add_dependencies(daemon version) -target_link_libraries(daemon rpc stratum currency_core crypto common miniupnpc::miniupnpc ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) +target_link_libraries(daemon rpc stratum currency_core crypto common miniupnpc::miniupnpc ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) ENABLE_SHARED_PCH(daemon DAEMON) ENABLE_SHARED_PCH_EXECUTABLE(daemon) add_executable(connectivity_tool ${CONN_TOOL}) add_dependencies(connectivity_tool version) -target_link_libraries(connectivity_tool currency_core crypto common ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) +target_link_libraries(connectivity_tool currency_core crypto common ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) ENABLE_SHARED_PCH(connectivity_tool CONN_TOOL) ENABLE_SHARED_PCH_EXECUTABLE(connectivity_tool) @@ -190,4 +195,3 @@ endif () install(TARGETS daemon simplewallet RUNTIME DESTINATION bin) - diff --git a/src/common/command_line.cpp b/src/common/command_line.cpp index 5897165c..7711110c 100644 --- a/src/common/command_line.cpp +++ b/src/common/command_line.cpp @@ -17,7 +17,7 @@ #include "command_line.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" namespace command_line { diff --git a/src/common/db_backend_selector.cpp b/src/common/db_backend_selector.cpp index f88fa73d..ea11e898 100644 --- a/src/common/db_backend_selector.cpp +++ b/src/common/db_backend_selector.cpp @@ -16,7 +16,7 @@ // #include "db_backend_selector.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "command_line.h" #include "db_backend_lmdb.h" #include "db_backend_mdbx.h" diff --git a/src/common/miniupnp_helper.h b/src/common/miniupnp_helper.h index 453f9035..6d0353e3 100644 --- a/src/common/miniupnp_helper.h +++ b/src/common/miniupnp_helper.h @@ -28,7 +28,7 @@ extern "C" { } #include "misc_language.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "version.h" namespace tools diff --git a/src/common/util.cpp b/src/common/util.cpp index 619b50cd..3f0d1cfc 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -20,7 +20,7 @@ using namespace epee; #include "util.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "version.h" #define UTF_CPP_CPLUSPLUS 201703L #include "utf8.h" diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt new file mode 100644 index 00000000..cf21f253 --- /dev/null +++ b/src/config/CMakeLists.txt @@ -0,0 +1,63 @@ +# This file is responsible for generating currency_config.h +# and providing it to other targets. +add_library(config INTERFACE) + +include(${CMAKE_CURRENT_SOURCE_DIR}/default.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/check-config.cmake) + +# This generates the header file from the template. +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/currency_config.h.in" + "${CMAKE_BINARY_DIR}/src/config/currency_config.h" +) + +# This tells any target linking against 'config' where to find headers. +target_include_directories(config INTERFACE + # For targets within this build tree, add the directory containing the *generated* header. + $ + # Also add the main 'src' directory for other headers. + $ +) + +#add_custom_target(gen_config_header +# DEPENDS "${CMAKE_BINARY_DIR}/src/config/currency_config.h" +#) + +file(WRITE "${CMAKE_BINARY_DIR}/src/config/currency_config_dummy.cpp" "") + +add_library(currency_config OBJECT + "${CMAKE_BINARY_DIR}/src/config/currency_config.h" + "${CMAKE_BINARY_DIR}/src/config/currency_config_dummy.cpp" +) +add_dependencies(currency_config config) + +set(GENERATE_PREMINE_WALLET OFF CACHE BOOL "Generate premine wallet") +set(PREMINE_WALLET_PASSWORD "" CACHE STRING "Premine wallet password") + +if (GENERATE_PREMINE_WALLET AND GENERATE_FRESH_GENESIS) + message(FATAL_ERROR "Genesis can not be generated together with premine wallet") +endif() + +if (GENERATE_PREMINE_WALLET) + unset(GENERATE_PREMINE_WALLET CACHE) + message(WARNING "Generating premine wallet") + + if (NOT DEFINED PREMINE_WALLET_PASSWORD OR PREMINE_WALLET_PASSWORD STREQUAL "") + message(FATAL_ERROR "set PREMINE_WALLET_PASSWORD or GENESIS_PREMINE_ADDRESS to generate genesis block") + endif() + + # Make wallet directory + add_custom_target( + premine_wallet + "${CMAKE_COMMAND}" -E make_directory "${CMAKE_SOURCE_DIR}/premine_wallet" + COMMENT "Creating premine wallet directory" + ) + + # Generate wallet + add_custom_command(TARGET premine_wallet POST_BUILD + COMMAND echo ${PREMINE_WALLET_PASSWORD} | $ --generate-new-wallet ${CMAKE_SOURCE_DIR}/premine_wallet/premine_wallet + COMMENT "Generating premine wallet in ${CMAKE_SOURCE_DIR}/premine_wallet" + ) + + add_dependencies(premine_wallet simplewallet) +endif() diff --git a/cmake/check-config-vars.cmake b/src/config/check-config.cmake similarity index 100% rename from cmake/check-config-vars.cmake rename to src/config/check-config.cmake diff --git a/src/currency_core/currency_config.h.in b/src/config/currency_config.h.in similarity index 100% rename from src/currency_core/currency_config.h.in rename to src/config/currency_config.h.in diff --git a/cmake/config-vars.cmake b/src/config/default.cmake similarity index 99% rename from cmake/config-vars.cmake rename to src/config/default.cmake index 1a5e62b7..ab52cc1f 100644 --- a/cmake/config-vars.cmake +++ b/src/config/default.cmake @@ -49,4 +49,3 @@ set(package_macos_installer "PKG" CACHE STRING "CPACK_GENERATOR" ) set(package_macos_dmg_background "DMG" CACHE STRING "CPACK_DMG_BACKGROUND_IMAGE" ) set(package_macos_pkg_productbuild_identifier "com.lethean.blockchainnode" CACHE STRING "CPACK_PRODUCTBUILD_IDENTIFIER" ) set(package_macos_pkg_productbuild_signer "Developer ID Installer: Your Company (TEAMID)" CACHE STRING "CPACK_PRODUCTBUILD_SIGNING_IDENTITY" ) - diff --git a/src/crypto/one_out_of_many_proofs.cpp b/src/crypto/one_out_of_many_proofs.cpp index 4eec6b60..89028f2e 100644 --- a/src/crypto/one_out_of_many_proofs.cpp +++ b/src/crypto/one_out_of_many_proofs.cpp @@ -16,7 +16,7 @@ // #include "one_out_of_many_proofs.h" #include "../currency_core/crypto_config.h" -#include "../currency_core/currency_config.h" // for static asset checks +#include "config/currency_config.h" // for static asset checks #include "epee/include/misc_log_ex.h" //DISABLE_GCC_AND_CLANG_WARNING(unused-function) diff --git a/src/currency_core/basic_pow_helpers.cpp b/src/currency_core/basic_pow_helpers.cpp index 29f314c0..d0afcc7b 100644 --- a/src/currency_core/basic_pow_helpers.cpp +++ b/src/currency_core/basic_pow_helpers.cpp @@ -23,7 +23,7 @@ using namespace epee; #include "currency_format_utils.h" #include "serialization/binary_utils.h" #include "serialization/stl_containers.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "crypto/crypto.h" #include "crypto/hash.h" #include "common/int-util.h" diff --git a/src/currency_core/blockchain_storage.cpp b/src/currency_core/blockchain_storage.cpp index 39423725..62a43393 100644 --- a/src/currency_core/blockchain_storage.cpp +++ b/src/currency_core/blockchain_storage.cpp @@ -32,7 +32,7 @@ #include "blockchain_storage.h" #include "currency_format_utils.h" #include "currency_boost_serialization.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "miner.h" #include "misc_language.h" #include "profile_tools.h" diff --git a/src/currency_core/currency_basic.h b/src/currency_core/currency_basic.h index cc64e5e8..9d5abcb3 100644 --- a/src/currency_core/currency_basic.h +++ b/src/currency_core/currency_basic.h @@ -46,7 +46,7 @@ #include "serialization/debug_archive.h" #include "serialization/keyvalue_serialization.h" // epee key-value serialization #include "string_tools.h" -#include "currency_config.h" +#include "config/currency_config.h" #include "crypto/crypto.h" #include "crypto/hash.h" #include "crypto/range_proofs.h" diff --git a/src/currency_core/currency_core.cpp b/src/currency_core/currency_core.cpp index 378ca9c7..b589e469 100644 --- a/src/currency_core/currency_core.cpp +++ b/src/currency_core/currency_core.cpp @@ -25,7 +25,7 @@ using namespace epee; #include "common/util.h" #include "warnings.h" #include "crypto/crypto.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "currency_format_utils.h" #include "misc_language.h" #include "string_coding.h" diff --git a/src/currency_core/currency_format_utils.cpp b/src/currency_core/currency_format_utils.cpp index 0d05887a..a3688cf3 100644 --- a/src/currency_core/currency_format_utils.cpp +++ b/src/currency_core/currency_format_utils.cpp @@ -27,7 +27,7 @@ using namespace epee; #include "currency_format_utils_transactions.h" #include "serialization/binary_utils.h" #include "serialization/stl_containers.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "miner.h" #include "crypto/crypto.h" #include "crypto/hash.h" diff --git a/src/currency_core/difficulty.cpp b/src/currency_core/difficulty.cpp index 3f4a3df9..592b3be7 100644 --- a/src/currency_core/difficulty.cpp +++ b/src/currency_core/difficulty.cpp @@ -25,7 +25,7 @@ #include "common/int-util.h" #include "crypto/hash.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "difficulty.h" #include "profile_tools.h" diff --git a/src/currency_core/tx_pool.cpp b/src/currency_core/tx_pool.cpp index cb856cef..c80d94ef 100644 --- a/src/currency_core/tx_pool.cpp +++ b/src/currency_core/tx_pool.cpp @@ -23,7 +23,7 @@ #include "common/db_backend_selector.h" #include "tx_pool.h" #include "currency_boost_serialization.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "blockchain_storage.h" #include "common/boost_serialization_helper.h" #include "common/int-util.h" diff --git a/src/genesis_generator/CMakeLists.txt b/src/genesis_generator/CMakeLists.txt new file mode 100644 index 00000000..e8e6ae3a --- /dev/null +++ b/src/genesis_generator/CMakeLists.txt @@ -0,0 +1,37 @@ +add_executable(genesis_generator EXCLUDE_FROM_ALL generate_test_genesis.cpp) + +target_link_libraries(genesis_generator + PRIVATE + config + currency_core + crypto + common + zlibstatic + ${CMAKE_THREAD_LIBS_INIT} + ${Boost_LIBRARIES} + OpenSSL::SSL + OpenSSL::Crypto +) + +set_property(TARGET genesis_generator PROPERTY FOLDER "prog") + +if (GENERATE_FRESH_GENESIS) + if (NOT DEFINED GENESIS_PREMINE_ADDRESS OR GENESIS_PREMINE_ADDRESS STREQUAL "") + set(address_file "${CMAKE_SOURCE_DIR}/premine_wallet/premine_wallet.address") + message(STATUS "GENESIS_PREMINE_ADDRESS not set, attempting to load from ${address_file}") + if(EXISTS "${address_file}") + file(READ "${address_file}" GENESIS_PREMINE_ADDRESS) + string(STRIP "${GENESIS_PREMINE_ADDRESS}" GENESIS_PREMINE_ADDRESS) + endif() + endif() + + if (NOT DEFINED GENESIS_PREMINE_ADDRESS OR GENESIS_PREMINE_ADDRESS STREQUAL "") + message(FATAL_ERROR "GENESIS_PREMINE_ADDRESS is not set and could not be read from file. Please set it via -DGENESIS_PREMINE_ADDRESS=
") + else() + add_custom_command(TARGET genesis_generator POST_BUILD + COMMAND $ --address ${GENESIS_PREMINE_ADDRESS} --proof "${GENESIS_PROOF}" --output "${CMAKE_SOURCE_DIR}/src/currency_core/generated/" + COMMENT "Generating genesis data..." + VERBATIM + ) + endif() +endif() diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h index 1e257bca..dba2f284 100644 --- a/src/p2p/net_node.h +++ b/src/p2p/net_node.h @@ -38,7 +38,7 @@ #include "math_helper.h" #include "net_node_common.h" #include "maintainers_info_boost_serialization.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" using namespace epee; #undef LOG_DEFAULT_CHANNEL diff --git a/src/p2p/net_peerlist.h b/src/p2p/net_peerlist.h index fe6c1c03..2e0ac37d 100644 --- a/src/p2p/net_peerlist.h +++ b/src/p2p/net_peerlist.h @@ -35,7 +35,7 @@ #include "syncobj.h" #include "net/local_ip.h" #include "p2p_protocol_defs.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "net_peerlist_boost_serialization.h" #include "common/boost_serialization_helper.h" diff --git a/src/p2p/p2p_protocol_defs.h b/src/p2p/p2p_protocol_defs.h index 0ce23bd0..48812e0b 100644 --- a/src/p2p/p2p_protocol_defs.h +++ b/src/p2p/p2p_protocol_defs.h @@ -20,7 +20,7 @@ #include #include "serialization/keyvalue_serialization.h" #include "misc_language.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "crypto/crypto.h" namespace nodetool diff --git a/src/stratum/stratum_server.cpp b/src/stratum/stratum_server.cpp index 4d5a01dd..05e1c6cc 100644 --- a/src/stratum/stratum_server.cpp +++ b/src/stratum/stratum_server.cpp @@ -18,7 +18,7 @@ #include "stratum_server.h" #include "stratum_helpers.h" #include "net/abstract_tcp_server2.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "currency_core/currency_core.h" #include "common/command_line.h" #include "common/int-util.h" diff --git a/src/wallet/plain_wallet_api.cpp b/src/wallet/plain_wallet_api.cpp index b023d73b..d45dce26 100644 --- a/src/wallet/plain_wallet_api.cpp +++ b/src/wallet/plain_wallet_api.cpp @@ -21,7 +21,7 @@ #endif #include "plain_wallet_api.h" #include "plain_wallet_api_defs.h" -#include "currency_core/currency_config.h" +#include "config/currency_config.h" #include "version.h" #include "string_tools.h" #include "currency_core/currency_format_utils.h"