diff options
author | chriseth <chris@ethereum.org> | 2017-06-08 17:56:14 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2017-06-09 19:11:15 +0800 |
commit | 9d0691b47ad9f85920f027a05abb367da4e2f339 (patch) | |
tree | c8a3abc9ad5931589b82edd90305b037f3cb7b58 | |
parent | 76667fed4f9865c4a3a5a267c469446f8bce1bef (diff) | |
download | dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.tar dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.tar.gz dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.tar.bz2 dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.tar.lz dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.tar.xz dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.tar.zst dexon-solidity-9d0691b47ad9f85920f027a05abb367da4e2f339.zip |
Include license and warranty statement with solc.
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | cmake/templates/license.h.in | 3 | ||||
-rw-r--r-- | solc/CommandLineInterface.cpp | 28 |
3 files changed, 32 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e53917cb..2dbc521d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,10 @@ include(EthExecutableHelper) # Include utils include(EthUtils) +# Create license.h from LICENSE.txt and template +file(READ ${CMAKE_SOURCE_DIR}/LICENSE.txt LICENSE_TEXT) +configure_file("${CMAKE_SOURCE_DIR}/cmake/templates/license.h.in" "license.h") + include(EthOptions) configure_project(TESTS) diff --git a/cmake/templates/license.h.in b/cmake/templates/license.h.in new file mode 100644 index 00000000..48801347 --- /dev/null +++ b/cmake/templates/license.h.in @@ -0,0 +1,3 @@ +#pragma once + +static char const* licenseText = R"(@LICENSE_TEXT@)"; diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp index b2e257ee..fcd58cb3 100644 --- a/solc/CommandLineInterface.cpp +++ b/solc/CommandLineInterface.cpp @@ -23,6 +23,7 @@ #include "CommandLineInterface.h" #include "solidity/BuildInfo.h" +#include "license.h" #include <libsolidity/interface/Version.h> #include <libsolidity/parsing/Scanner.h> @@ -94,6 +95,7 @@ static string const g_strHelp = "help"; static string const g_strInputFile = "input-file"; static string const g_strInterface = "interface"; static string const g_strJulia = "julia"; +static string const g_strLicense = "license"; static string const g_strLibraries = "libraries"; static string const g_strLink = "link"; static string const g_strMetadata = "metadata"; @@ -186,6 +188,13 @@ static void version() exit(0); } +static void license() +{ + // This is a static variable generated by cmake from LICENSE.txt + cout << licenseText << endl; + exit(0); +} + static bool needsHumanTargetedStdout(po::variables_map const& _args) { if (_args.count(g_argGas)) @@ -510,8 +519,13 @@ void CommandLineInterface::createFile(string const& _fileName, string const& _da bool CommandLineInterface::parseArguments(int _argc, char** _argv) { // Declare the supported options. - po::options_description desc( - R"(solc, the Solidity commandline compiler. + po::options_description desc(R"(solc, the Solidity commandline compiler. + +Solidity Copyright (C) 2014-2017 Solidity contributors. +This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you +are welcome to redistribute it under certain conditions. See 'solc --license' +for details. + Usage: solc [options] [input_file...] Compiles the given Solidity input files (or the standard input if none given or "-" is used as a file name) and outputs the components specified in the options @@ -523,10 +537,12 @@ Example: Allowed options)", po::options_description::m_default_line_length, - po::options_description::m_default_line_length - 23); + po::options_description::m_default_line_length - 23 + ); desc.add_options() (g_argHelp.c_str(), "Show help message and exit.") (g_argVersion.c_str(), "Show version and exit.") + (g_strLicense.c_str(), "Show licensing information and exit.") (g_argOptimize.c_str(), "Enable bytecode optimizer.") ( g_argOptimizeRuns.c_str(), @@ -633,6 +649,12 @@ Allowed options)", return false; } + if (m_args.count(g_strLicense)) + { + license(); + return false; + } + if (m_args.count(g_argCombinedJson)) { vector<string> requests; |