mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge pull request #9476 from ethereum/windows-tests
Building release on Windows
This commit is contained in:
		
						commit
						ed80585311
					
				@ -1,4 +1,10 @@
 | 
			
		||||
cd "$PSScriptRoot\.."
 | 
			
		||||
 | 
			
		||||
if ("$Env:FORCE_RELEASE") {
 | 
			
		||||
	New-Item prerelease.txt -type file
 | 
			
		||||
	Write-Host "Building release version."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mkdir build
 | 
			
		||||
cd build
 | 
			
		||||
$boost_dir=(Resolve-Path $PSScriptRoot\..\deps\boost\lib\cmake\Boost-*)
 | 
			
		||||
 | 
			
		||||
@ -883,7 +883,7 @@ jobs:
 | 
			
		||||
      - run: *gitter_notify_failure
 | 
			
		||||
      - run: *gitter_notify_success
 | 
			
		||||
 | 
			
		||||
  b_win:
 | 
			
		||||
  b_win: &b_win
 | 
			
		||||
    executor:
 | 
			
		||||
      name: win/default
 | 
			
		||||
      shell: powershell.exe
 | 
			
		||||
@ -906,6 +906,12 @@ jobs:
 | 
			
		||||
      - store_artifacts: *artifact_solc_windows
 | 
			
		||||
      - persist_to_workspace: *artifacts_build_dir
 | 
			
		||||
 | 
			
		||||
  b_win_release:
 | 
			
		||||
    <<: *b_win
 | 
			
		||||
    environment:
 | 
			
		||||
      FORCE_RELEASE: ON
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
workflows:
 | 
			
		||||
  version: 2
 | 
			
		||||
 | 
			
		||||
@ -959,6 +965,7 @@ workflows:
 | 
			
		||||
 | 
			
		||||
      # Windows build and tests
 | 
			
		||||
      - b_win: *workflow_trigger_on_tags
 | 
			
		||||
      - b_win_release: *workflow_trigger_on_tags
 | 
			
		||||
 | 
			
		||||
  nightly:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,8 @@
 | 
			
		||||
 - [ ] Create a pull request from ``develop`` to ``release``, wait for the tests, then merge it.
 | 
			
		||||
 - [ ] Make a final check that there are no platform-dependency issues in the ``solidity-test-bytecode`` repository.
 | 
			
		||||
 - [ ] Wait for the tests for the commit on ``release``, create a release in Github, creating the tag (click the `PUBLISH RELEASE` button on the release page.)
 | 
			
		||||
 - [ ] Wait for the CI runs on the tag itself (travis and appveyor should push artifacts onto the Github release page).
 | 
			
		||||
 - [ ] Wait for the CI runs on the tag itself (travis should push artifacts onto the Github release page).
 | 
			
		||||
 - [ ] Take the ``solc.exe`` binary from the ``b_win_release`` run of the released commit in circle-ci and add it to the release page as ``solc-windows.exe``.
 | 
			
		||||
 - [ ] Run ``scripts/create_source_tarball.sh`` while being on the tag to create the source tarball. Make sure to create ``prerelease.txt`` before: (``echo -n > prerelease.txt``). This will create the tarball in a directory called ``upload``.
 | 
			
		||||
 - [ ] Take the tarball from the upload directory (its name should be ``solidity_x.x.x.tar.gz``, otherwise ``prerelease.txt`` was missing in the step before) and upload the source tarball to the release page.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -230,7 +230,7 @@ The following C++ compilers and their minimum versions can build the Solidity co
 | 
			
		||||
 | 
			
		||||
- `GCC <https://gcc.gnu.org>`_, version 5+
 | 
			
		||||
- `Clang <https://clang.llvm.org/>`_, version 3.4+
 | 
			
		||||
- `MSVC <https://docs.microsoft.com/en-us/cpp/?view=vs-2019>`_, version 2017+
 | 
			
		||||
- `MSVC <https://visualstudio.microsoft.com/vs/>`_, version 2019+
 | 
			
		||||
 | 
			
		||||
Prerequisites - macOS
 | 
			
		||||
---------------------
 | 
			
		||||
@ -262,29 +262,29 @@ You need to install the following dependencies for Windows builds of Solidity:
 | 
			
		||||
+-----------------------------------+-------------------------------------------------------+
 | 
			
		||||
| Software                          | Notes                                                 |
 | 
			
		||||
+===================================+=======================================================+
 | 
			
		||||
| `Visual Studio 2017 Build Tools`_ | C++ compiler                                          |
 | 
			
		||||
| `Visual Studio 2019 Build Tools`_ | C++ compiler                                          |
 | 
			
		||||
+-----------------------------------+-------------------------------------------------------+
 | 
			
		||||
| `Visual Studio 2017`_  (Optional) | C++ compiler and dev environment.                     |
 | 
			
		||||
| `Visual Studio 2019`_  (Optional) | C++ compiler and dev environment.                     |
 | 
			
		||||
+-----------------------------------+-------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
If you already have one IDE and only need the compiler and libraries,
 | 
			
		||||
you could install Visual Studio 2017 Build Tools.
 | 
			
		||||
you could install Visual Studio 2019 Build Tools.
 | 
			
		||||
 | 
			
		||||
Visual Studio 2017 provides both IDE and necessary compiler and libraries.
 | 
			
		||||
So if you have not got an IDE and prefer to develop solidity, Visual Studio 2017
 | 
			
		||||
Visual Studio 2019 provides both IDE and necessary compiler and libraries.
 | 
			
		||||
So if you have not got an IDE and prefer to develop solidity, Visual Studio 2019
 | 
			
		||||
may be a choice for you to get everything setup easily.
 | 
			
		||||
 | 
			
		||||
Here is the list of components that should be installed
 | 
			
		||||
in Visual Studio 2017 Build Tools or Visual Studio 2017:
 | 
			
		||||
in Visual Studio 2019 Build Tools or Visual Studio 2019:
 | 
			
		||||
 | 
			
		||||
* Visual Studio C++ core features
 | 
			
		||||
* VC++ 2017 v141 toolset (x86,x64)
 | 
			
		||||
* VC++ 2019 v141 toolset (x86,x64)
 | 
			
		||||
* Windows Universal CRT SDK
 | 
			
		||||
* Windows 8.1 SDK
 | 
			
		||||
* C++/CLI support
 | 
			
		||||
 | 
			
		||||
.. _Visual Studio 2017: https://www.visualstudio.com/vs/
 | 
			
		||||
.. _Visual Studio 2017 Build Tools: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017
 | 
			
		||||
.. _Visual Studio 2019: https://www.visualstudio.com/vs/
 | 
			
		||||
.. _Visual Studio 2019 Build Tools: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2019
 | 
			
		||||
 | 
			
		||||
Dependencies Helper Script
 | 
			
		||||
--------------------------
 | 
			
		||||
@ -300,7 +300,10 @@ Or, on Windows:
 | 
			
		||||
 | 
			
		||||
.. code-block:: bat
 | 
			
		||||
 | 
			
		||||
    scripts\install_deps.bat
 | 
			
		||||
    scripts\install_deps.ps1
 | 
			
		||||
 | 
			
		||||
Note that the latter command will install ``boost`` and ``cmake`` to the ``deps`` subdirectory, while the former command
 | 
			
		||||
will attempt to install the dependencies globally.
 | 
			
		||||
 | 
			
		||||
Clone the Repository
 | 
			
		||||
--------------------
 | 
			
		||||
@ -362,11 +365,14 @@ And for Windows:
 | 
			
		||||
 | 
			
		||||
    mkdir build
 | 
			
		||||
    cd build
 | 
			
		||||
    cmake -G "Visual Studio 15 2017 Win64" ..
 | 
			
		||||
    cmake -G "Visual Studio 16 2019 Win64" ..
 | 
			
		||||
 | 
			
		||||
This latter set of instructions should result in the creation of
 | 
			
		||||
**solidity.sln** in that build directory.  Double-clicking on that file
 | 
			
		||||
should result in Visual Studio firing up.  We suggest building
 | 
			
		||||
In case you want to use the version of boost installed by ``./scripts/install_deps.ps1``, you will
 | 
			
		||||
additionally need to pass ``-DBoost_DIR="..\deps\boost\lib\cmake\Boost-*"`` and ``-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded``
 | 
			
		||||
as arguments to the call to ``cmake``.
 | 
			
		||||
 | 
			
		||||
This should result in the creation of **solidity.sln** in that build directory.
 | 
			
		||||
Double-clicking on that file should result in Visual Studio firing up.  We suggest building
 | 
			
		||||
**Release** configuration, but all others work.
 | 
			
		||||
 | 
			
		||||
Alternatively, you can build for Windows on the command-line, like so:
 | 
			
		||||
 | 
			
		||||
@ -1,38 +0,0 @@
 | 
			
		||||
@ECHO OFF
 | 
			
		||||
 | 
			
		||||
REM ---------------------------------------------------------------------------
 | 
			
		||||
REM Batch file for implementing release flow for solidity for Windows.
 | 
			
		||||
REM
 | 
			
		||||
REM The documentation for solidity is hosted at:
 | 
			
		||||
REM
 | 
			
		||||
REM     https://solidity.readthedocs.org
 | 
			
		||||
REM
 | 
			
		||||
REM ---------------------------------------------------------------------------
 | 
			
		||||
REM This file is part of solidity.
 | 
			
		||||
REM
 | 
			
		||||
REM solidity is free software: you can redistribute it and/or modify
 | 
			
		||||
REM it under the terms of the GNU General Public License as published by
 | 
			
		||||
REM the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
REM (at your option) any later version.
 | 
			
		||||
REM
 | 
			
		||||
REM solidity is distributed in the hope that it will be useful,
 | 
			
		||||
REM but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
REM GNU General Public License for more details.
 | 
			
		||||
REM
 | 
			
		||||
REM You should have received a copy of the GNU General Public License
 | 
			
		||||
REM along with solidity.  If not, see <http://www.gnu.org/licenses/>
 | 
			
		||||
REM
 | 
			
		||||
REM Copyright (c) 2016 solidity contributors.
 | 
			
		||||
REM ---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
set CONFIGURATION=%1
 | 
			
		||||
set VERSION=%2
 | 
			
		||||
 | 
			
		||||
set "DLLS=MSVC_DLLS_NOT_FOUND"
 | 
			
		||||
FOR /d %%d IN ("C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC\*"
 | 
			
		||||
    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\*") DO set "DLLS=%%d\x86\Microsoft.VC141.CRT\msvc*.dll"
 | 
			
		||||
 | 
			
		||||
7z a solidity-windows.zip ^
 | 
			
		||||
    .\build\solc\%CONFIGURATION%\solc.exe .\build\test\%CONFIGURATION%\soltest.exe ^
 | 
			
		||||
    "%DLLS%"
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user