From a49a1d5138fd12d57bd0563202b5972c16aa94d9 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 1 Mar 2014 13:11:31 +0000 Subject: [PATCH] Tidy up BuildInfo.h --- CMakeLists.txt | 10 ++++------ alethzero/MainWin.cpp | 12 +++++------- eth/main.cpp | 10 ++++------ libethereum/Common.h | 3 +++ 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a601614f..edcf6d58e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,6 @@ set(CMAKE_AUTOMOC ON) cmake_policy(SET CMP0015 NEW) -set(ETH_BUILD_TYPE ${CMAKE_BUILD_TYPE}) - # Default HEADLESS to 0. set(HEADLESS CACHE BOOL 0) if ("x${HEADLESS}" STREQUAL "x") @@ -66,9 +64,8 @@ set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") -add_definitions("-DETH_BUILD_TYPE=${ETH_BUILD_TYPE}") -add_definitions("-DETH_BUILD_PLATFORM=${ETH_BUILD_PLATFORM}") -#set(CMAKE_CXX_FLAGS, "${CMAKE_CXX_FLAGS} -DETH_VERSION=${ETH_VERSION} -DETH_BUILD_TYPE=${ETH_BUILD_TYPE} -DETH_BUILD_PLATFORM=${ETH_BUILD_PLATFORM}") +#add_definitions("-DETH_BUILD_TYPE=${ETH_BUILD_TYPE}") +#add_definitions("-DETH_BUILD_PLATFORM=${ETH_BUILD_PLATFORM}") # Compiler-specific C++11 activation. if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") @@ -147,7 +144,8 @@ endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") execute_process(COMMAND git --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git --work-tree=${CMAKE_CURRENT_SOURCE_DIR} rev-parse HEAD OUTPUT_VARIABLE commit_hash OUTPUT_STRIP_TRAILING_WHITESPACE) message("Commit Hash: ${commit_hash}") file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "// This file was automatically generated by cmake\n#pragma once\n\n") -file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "#define COMMIT_HASH \"${commit_hash}\"\n") +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "#define ETH_COMMIT_HASH ${commit_hash}\n#define ETH_BUILD_TYPE ${CMAKE_BUILD_TYPE}\n#define ETH_BUILD_PLATFORM ${ETH_BUILD_PLATFORM}\n") +include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_subdirectory(secp256k1) add_subdirectory(libethereum) diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index a0e7ed366..e2e84ef63 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -6,6 +6,7 @@ #include #include #include +#include "BuildInfo.h" #include "MainWin.h" #include "ui_Main.h" using namespace std; @@ -53,9 +54,6 @@ static void initUnits(QComboBox* _b) _b->setCurrentIndex(6); } -#define ADD_QUOTES_HELPER(s) #s -#define ADD_QUOTES(s) ADD_QUOTES_HELPER(s) - Main::Main(QWidget *parent) : QMainWindow(parent), ui(new Ui::Main) @@ -122,7 +120,7 @@ Main::Main(QWidget *parent) : { m_servers = QString::fromUtf8(_r->readAll()).split("\n", QString::SkipEmptyParts); }); - QNetworkRequest r(QUrl("http://www.ethereum.org/servers.poc" + QString(ADD_QUOTES(ETH_VERSION)).section('.', 1, 1) + ".txt")); + QNetworkRequest r(QUrl("http://www.ethereum.org/servers.poc" + QString(ETH_QUOTED(ETH_VERSION)).section('.', 1, 1) + ".txt")); r.setHeader(QNetworkRequest::UserAgentHeader, "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1712.0 Safari/537.36"); m_webCtrl.get(r); srand(time(0)); @@ -182,7 +180,7 @@ Address Main::fromString(QString const& _a) const void Main::on_about_triggered() { - QMessageBox::about(this, "About AlethZero PoC-" + QString(ADD_QUOTES(ETH_VERSION)).section('.', 1, 1), "AlethZero/v" ADD_QUOTES(ETH_VERSION) "/" ADD_QUOTES(ETH_BUILD_TYPE) "/" ADD_QUOTES(ETH_BUILD_PLATFORM) "\nBy Gav Wood, 2014.\nBased on a design by Vitalik Buterin.\n\nTeam Ethereum++ includes: Eric Lombrozo, Marko Simovic, Alex Leverington, Tim Hughes and several others."); + QMessageBox::about(this, "About AlethZero PoC-" + QString(ETH_QUOTED(ETH_VERSION)).section('.', 1, 1), "AlethZero/v" ETH_QUOTED(ETH_VERSION) "/" ETH_QUOTED(ETH_BUILD_TYPE) "/" ETH_QUOTED(ETH_BUILD_PLATFORM) "\nBy Gav Wood, 2014.\nBased on a design by Vitalik Buterin.\n\nTeam Ethereum++ includes: Eric Lombrozo, Marko Simovic, Alex Leverington, Tim Hughes and several others."); } void Main::writeSettings() @@ -584,10 +582,10 @@ void Main::on_net_triggered() { ui->port->setEnabled(!ui->net->isChecked()); ui->clientName->setEnabled(!ui->net->isChecked()); - string n = "AlethZero/v" ADD_QUOTES(ETH_VERSION); + string n = "AlethZero/v" ETH_QUOTED(ETH_VERSION); if (ui->clientName->text().size()) n += "/" + ui->clientName->text().toStdString(); - n += "/" ADD_QUOTES(ETH_BUILD_TYPE) "/" ADD_QUOTES(ETH_BUILD_PLATFORM); + n += "/" ETH_QUOTED(ETH_BUILD_TYPE) "/" ETH_QUOTED(ETH_BUILD_PLATFORM); m_client->setClientVersion(n); if (ui->net->isChecked()) { diff --git a/eth/main.cpp b/eth/main.cpp index d012961cd..b8e26aefb 100644 --- a/eth/main.cpp +++ b/eth/main.cpp @@ -29,12 +29,10 @@ #include "BlockChain.h" #include "State.h" #include "FileSystem.h" +#include "BuildInfo.h" using namespace std; using namespace eth; -#define ADD_QUOTES_HELPER(s) #s -#define ADD_QUOTES(s) ADD_QUOTES_HELPER(s) - bool isTrue(std::string const& _m) { return _m == "on" || _m == "yes" || _m == "true" || _m == "1"; @@ -72,8 +70,8 @@ void help() void version() { - cout << "eth version " << ADD_QUOTES(ETH_VERSION) << endl; - cout << "Build: " << ADD_QUOTES(ETH_BUILD_PLATFORM) << "/" << ADD_QUOTES(ETH_BUILD_TYPE) << endl; + cout << "eth version " << ETH_QUOTED(ETH_VERSION) << endl; + cout << "Build: " << ETH_QUOTED(ETH_BUILD_PLATFORM) << "/" << ETH_QUOTED(ETH_BUILD_TYPE) << endl; exit(0); } @@ -189,7 +187,7 @@ int main(int argc, char** argv) if (!clientName.empty()) clientName += "/"; - Client c("Ethereum(++)/" + clientName + "v" ADD_QUOTES(ETH_VERSION) "/" ADD_QUOTES(ETH_BUILD_TYPE) "/" ADD_QUOTES(ETH_BUILD_PLATFORM), coinbase, dbPath); + Client c("Ethereum(++)/" + clientName + "v" ETH_QUOTED(ETH_VERSION) "/" ETH_QUOTED(ETH_BUILD_TYPE) "/" ETH_QUOTED(ETH_BUILD_PLATFORM), coinbase, dbPath); if (interactive) { diff --git a/libethereum/Common.h b/libethereum/Common.h index cfe37c1b1..98f7707f5 100644 --- a/libethereum/Common.h +++ b/libethereum/Common.h @@ -57,6 +57,9 @@ // CryptoPP defines byte in the global namespace, so so must we. using byte = uint8_t; +#define ETH_QUOTED_HELPER(s) #s +#define ETH_QUOTED(s) ETH_QUOTED_HELPER(s) + namespace eth {