Browse Source

Merge pull request #11 from ethereum-mining/version

Cleanup versioning
cl-refactor
Paweł Bylica 8 years ago
committed by GitHub
parent
commit
abbb4a8c1d
  1. 8
      BuildInfo.h.in
  2. 22
      CMakeLists.txt
  3. 23
      cmake/scripts/buildinfo.cmake
  4. 19
      ethminer/MinerAux.h
  5. 24
      ethminer/main.cpp
  6. 3
      libdevcore/CMakeLists.txt
  7. 36
      libdevcore/Common.cpp
  8. 8
      libdevcore/Common.h

8
BuildInfo.h.in

@ -1,7 +1,5 @@
#pragma once
#define ETH_PROJECT_VERSION "@PROJECT_VERSION@-genoil-@GENOIL_VERSION@"
#define ETH_COMMIT_HASH @ETH_COMMIT_HASH@
#define ETH_CLEAN_REPO @ETH_CLEAN_REPO@
#define ETH_BUILD_TYPE @ETH_BUILD_TYPE@
#define ETH_BUILD_PLATFORM @ETH_BUILD_PLATFORM@
#define ETH_PROJECT_VERSION "@PROJECT_VERSION@"
#define ETH_BUILD_TYPE "@ETH_BUILD_TYPE@"
#define ETH_BUILD_PLATFORM "@ETH_BUILD_PLATFORM@"

22
CMakeLists.txt

@ -16,11 +16,10 @@ HunterGate(
)
set(GENOIL_VERSION "1.1.7")
cmake_policy(SET CMP0042 OLD) # fix MACOSX_RPATH
cmake_policy(SET CMP0048 NEW) # allow VERSION argument in project()
project(ethminer VERSION 0.9.41)
project(ethminer VERSION 0.10.0)
# link_directories interprate relative paths with respect to CMAKE_CURRENT_SOURCE_DIR
cmake_policy(SET CMP0015 NEW)
@ -65,8 +64,6 @@ function(configureProject)
endif()
endfunction()
set(CPPETHEREUM 1)
function(createBuildInfo)
# Set build platform; to be written to BuildInfo.h
set(ETH_BUILD_PLATFORM "${TARGET_PLATFORM}")
@ -93,20 +90,15 @@ function(createBuildInfo)
set(_cmake_build_type "${CMAKE_CFG_INTDIR}")
endif()
message("createBuildInfo()")
# Generate header file containing useful build information
add_custom_target(BuildInfo.h ALL
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} -DETH_SOURCE_DIR="${CMAKE_SOURCE_DIR}" -DETH_DST_DIR="${CMAKE_BINARY_DIR}"
-DETH_BUILD_TYPE="${_cmake_build_type}" -DETH_BUILD_PLATFORM="${ETH_BUILD_PLATFORM}"
-DPROJECT_VERSION="${PROJECT_VERSION}" -DGENOIL_VERSION="${GENOIL_VERSION}"
-DPROJECT_VERSION="${PROJECT_VERSION}"
-P "${ETH_SCRIPTS_DIR}/buildinfo.cmake"
)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(SRC_LIST BuildInfo.h)
endfunction()
@ -124,7 +116,6 @@ macro(eth_format_option O)
endmacro()
# Normalise build options
eth_format_option(JSONRPC)
eth_format_option(ETHASHCL)
eth_format_option(ETHASHCUDA)
eth_format_option(ETHSTRATUM)
@ -155,10 +146,6 @@ message("-----------------------------------------------------------------------
message("-- CMake Version ${CMAKE_VERSION}")
message("-- CMAKE_BUILD_TYPE Build type ${CMAKE_BUILD_TYPE}")
message("-- TARGET_PLATFORM Target platform ${TARGET_PLATFORM}")
message("--------------------------------------------------------------- features")
message("-- Chromium support ${ETH_HAVE_WEBENGINE}")
message("-- HTTP Request support ${CURL_FOUND}")
message("-- JSONRPC JSON-RPC support ${JSONRPC}")
message("------------------------------------------------------------- components")
message("-- ETHASHCL Build OpenCL components ${ETHASHCL}")
message("-- ETHASHCUDA Build CUDA components ${ETHASHCUDA}")
@ -166,13 +153,8 @@ message("-- ETHSTRATUM Build Stratum components ${ETHSTRAT
message("------------------------------------------------------------------------")
message("")
if (NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
set(CMAKE_THREAD_LIBS_INIT pthread)
endif()
include(EthCompilerSettings)
message("creating build info...")
createBuildInfo()
add_subdirectory(libdevcore)

23
cmake/scripts/buildinfo.cmake

@ -1,5 +1,5 @@
# generates BuildInfo.h
#
#
# this module expects
# ETH_SOURCE_DIR - main CMAKE_SOURCE_DIR
# ETH_DST_DIR - main CMAKE_BINARY_DIR
@ -17,26 +17,6 @@ if (NOT ETH_BUILD_PLATFORM)
set(ETH_BUILD_PLATFORM "unknown")
endif()
execute_process(
COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} rev-parse HEAD
OUTPUT_VARIABLE ETH_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET
)
if (NOT ETH_COMMIT_HASH)
set(ETH_COMMIT_HASH 0)
endif()
execute_process(
COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} diff --shortstat
OUTPUT_VARIABLE ETH_LOCAL_CHANGES OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET
)
if (ETH_LOCAL_CHANGES)
set(ETH_CLEAN_REPO 0)
else()
set(ETH_CLEAN_REPO 1)
endif()
set(INFILE "${ETH_SOURCE_DIR}/BuildInfo.h.in")
set(TMPFILE "${ETH_DST_DIR}/BuildInfo.h.tmp")
set(OUTFILE "${ETH_DST_DIR}/BuildInfo.h")
@ -45,4 +25,3 @@ configure_file("${INFILE}" "${TMPFILE}")
include("${ETH_SOURCE_DIR}/cmake/EthUtils.cmake")
replace_if_different("${TMPFILE}" "${OUTFILE}" CREATE)

19
ethminer/MinerAux.h

@ -46,7 +46,6 @@
#include <libethash-cuda/ethash_cuda_miner.h>
#endif
#include <jsonrpccpp/client/connectors/httpclient.h>
#include "BuildInfo.h"
#include "FarmClient.h"
#if ETH_STRATUM
#include <libstratum/EthStratumClient.h>
@ -238,7 +237,7 @@ public:
{
m_worktimeout = atoi(argv[++i]);
}
#endif
#if ETH_ETHASHCL
else if (arg == "--opencl-platform" && i + 1 < argc)
@ -472,7 +471,7 @@ public:
EthashGPUMiner::setDevices(m_openclDevices, m_openclDeviceCount);
m_miningThreads = m_openclDeviceCount;
}
if (!EthashGPUMiner::configureGPU(
m_localWorkSize,
m_globalWorkSizeMultiplier,
@ -499,7 +498,7 @@ public:
EthashCUDAMiner::setDevices(m_cudaDevices, m_cudaDeviceCount);
m_miningThreads = m_cudaDeviceCount;
}
EthashCUDAMiner::setNumInstances(m_miningThreads);
if (!EthashCUDAMiner::configureGPU(
m_localWorkSize,
@ -521,7 +520,7 @@ public:
doBenchmark(m_minerType, m_benchmarkWarmup, m_benchmarkTrial, m_benchmarkTrials);
else if (mode == OperationMode::Farm)
doFarm(m_minerType, m_activeFarmURL, m_farmRecheckPeriod);
else if (mode == OperationMode::Simulation)
else if (mode == OperationMode::Simulation)
doSimulation(m_minerType);
#if ETH_STRATUM
else if (mode == OperationMode::Stratum)
@ -605,7 +604,7 @@ private:
exit(0);
}
void doBenchmark(MinerType _m, unsigned _warmupDuration = 15, unsigned _trialDuration = 3, unsigned _trials = 5)
{
@ -757,7 +756,7 @@ private:
}
}
void doFarm(MinerType _m, string & _remote, unsigned _recheckPeriod)
{
map<string, GenericFarm<EthashProofOfWork>::SealerDescriptor> sealers;
@ -904,7 +903,7 @@ private:
}
m_farmRetries = 0;
}
}
}
exit(0);
@ -922,7 +921,7 @@ private:
#endif
if (!m_farmRecheckSet)
m_farmRecheckPeriod = m_defaultStratumFarmRecheckPeriod;
GenericFarm<EthashProofOfWork> f;
// this is very ugly, but if Stratum Client V2 tunrs out to be a success, V1 will be completely removed anyway
@ -1044,7 +1043,7 @@ private:
/// Farm params
string m_farmURL = "http://127.0.0.1:8545";
string m_farmFailOverURL = "";
string m_activeFarmURL = m_farmURL;
unsigned m_farmRetries = 0;

24
ethminer/main.cpp

@ -32,6 +32,8 @@
#include <fstream>
#include <iostream>
#include "MinerAux.h"
#include "BuildInfo.h"
using namespace std;
using namespace dev;
using namespace dev::eth;
@ -56,29 +58,24 @@ void help()
void version()
{
cout << "ethminer version " << dev::Version << endl;
cout << "Build: " << DEV_QUOTED(ETH_BUILD_PLATFORM) << "/" << DEV_QUOTED(ETH_BUILD_TYPE) << endl;
cout << "ethminer version " << ETH_PROJECT_VERSION << endl;
cout << "Build: " << ETH_BUILD_PLATFORM << "/" << ETH_BUILD_TYPE << endl;
exit(0);
}
int main(int argc, char** argv)
{
cout << "Genoil's ethminer " << ETH_PROJECT_VERSION << endl;
cout << "=====================================================================" << endl;
cout << "Forked from github.com/ethereum/cpp-ethereum" << endl;
cout << "CUDA kernel ported from Tim Hughes' OpenCL kernel" << endl;
cout << "With contributions from nicehash, nerdralph, RoBiK and sp_ " << endl << endl;
cout << "Please consider a donation to:" << endl;
cout << "ETH: 0xeb9310b185455f863f526dab3d245809f6854b4d" << endl << endl;
MinerCLI m(MinerCLI::OperationMode::Farm);
for (int i = 1; i < argc; ++i)
{
string arg = argv[i];
// Mining options:
if (m.interpretOption(i, argc, argv))
{}
else if ((arg == "-v" || arg == "--verbosity") && i + 1 < argc)
continue;
// Standard options:
string arg = argv[i];
if ((arg == "-v" || arg == "--verbosity") && i + 1 < argc)
g_logVerbosity = atoi(argv[++i]);
else if (arg == "-h" || arg == "--help")
help();
@ -95,4 +92,3 @@ int main(int argc, char** argv)
return 0;
}

3
libdevcore/CMakeLists.txt

@ -5,5 +5,4 @@ find_package(Threads)
add_library(devcore ${SOURCES} ${HEADERS})
target_link_libraries(devcore PUBLIC Boost::boost)
target_link_libraries(devcore PRIVATE ${CMAKE_THREAD_LIBS_INIT})
#target_include_directories(devcore PRIVATE ..)
target_link_libraries(devcore PRIVATE Threads::Threads)

36
libdevcore/Common.cpp

@ -1,36 +0,0 @@
/*
This file is part of cpp-ethereum.
cpp-ethereum is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
cpp-ethereum is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file Common.cpp
* @author Gav Wood <i@gavwood.com>
* @date 2014
*/
#include "Common.h"
#include "Exceptions.h"
#include "Log.h"
#include "BuildInfo.h"
using namespace std;
using namespace dev;
namespace dev
{
char const* Version = ETH_PROJECT_VERSION;
const u256 UndefinedU256 = ~(u256)0;
}

8
libdevcore/Common.h

@ -48,10 +48,6 @@
// CryptoPP defines byte in the global namespace, so must we.
using byte = uint8_t;
// Quote a given token stream to turn it into a string.
#define DEV_QUOTED_HELPER(s) #s
#define DEV_QUOTED(s) DEV_QUOTED_HELPER(s)
#define DEV_IGNORE_EXCEPTIONS(X) try { X; } catch (...) {}
#define DEV_IF_NO_ELSE(X) if(!(X)){}else
@ -60,8 +56,6 @@ using byte = uint8_t;
namespace dev
{
extern char const* Version;
// Binary data types.
using bytes = std::vector<byte>;
using bytesRef = vector_ref<byte>;
@ -137,4 +131,4 @@ std::string toString(_T const& _t)
return o.str();
}
}
}

Loading…
Cancel
Save