Repository navigation
Expand file tree
/
Copy pathbuild-mingw.bat
More file actions
123 lines (103 loc) · 3.71 KB
/
Copy pathbuild-mingw.bat
File metadata and controls
123 lines (103 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
@echo off
REM ===========================================================================
REM VIZ Windows Build Script (MinGW)
REM
REM Prerequisites:
REM - MinGW-w64 with g++ supporting C++11 and SSE4.2
REM - CMake 3.16+
REM - Git for Windows
REM - Boost 1.71+ built with: link=static threading=multi runtime-link=shared
REM - OpenSSL for Windows (https://slproweb.com/products/Win32OpenSSL.html)
REM
REM Required Environment Variables:
REM BOOST_ROOT - Path to Boost installation (e.g. C:\Boost)
REM OPENSSL_ROOT_DIR - Path to OpenSSL installation (e.g. C:\OpenSSL-Win64)
REM
REM Optional Environment Variables:
REM VIZ_BUILD_TYPE - Release or Debug (default: Release)
REM VIZ_BUILD_TESTNET - ON or OFF (default: OFF)
REM VIZ_FULL_STATIC - ON or OFF (default: OFF, produces static exe)
REM VIZ_CMAKE_EXTRA - Additional CMake options
REM ===========================================================================
setlocal enabledelayedexpansion
REM --- Defaults ---
if not defined VIZ_BUILD_TYPE set VIZ_BUILD_TYPE=Release
if not defined VIZ_BUILD_TESTNET set VIZ_BUILD_TESTNET=OFF
if not defined VIZ_FULL_STATIC set VIZ_FULL_STATIC=OFF
REM --- Validate required environment variables ---
if not defined BOOST_ROOT (
echo ERROR: BOOST_ROOT is not set. Point it to your Boost installation.
echo Example: set BOOST_ROOT=C:\Boost
exit /b 1
)
if not defined OPENSSL_ROOT_DIR (
echo ERROR: OPENSSL_ROOT_DIR is not set. Point it to your OpenSSL installation.
echo Example: set OPENSSL_ROOT_DIR=C:\OpenSSL-Win64
exit /b 1
)
REM --- Validate paths exist ---
if not exist "%BOOST_ROOT%\include" (
echo ERROR: BOOST_ROOT does not appear to be a valid Boost installation.
echo Looking for: %BOOST_ROOT%\include
exit /b 1
)
if not exist "%OPENSSL_ROOT_DIR%\include" (
echo ERROR: OPENSSL_ROOT_DIR does not appear to be a valid OpenSSL installation.
echo Looking for: %OPENSSL_ROOT_DIR%\include
exit /b 1
)
REM --- Check MinGW is available ---
where mingw32-make >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo ERROR: mingw32-make not found in PATH.
echo Make sure MinGW-w64 bin directory is in your PATH.
exit /b 1
)
REM --- Determine source directory (parent of this script's location) ---
set SCRIPT_DIR=%~dp0
set SOURCE_DIR=%SCRIPT_DIR%..
REM --- Display configuration ---
echo.
echo ============================================
echo VIZ Windows Build (MinGW)
echo ============================================
echo Build Type: %VIZ_BUILD_TYPE%
echo Build Testnet: %VIZ_BUILD_TESTNET%
echo Full Static: %VIZ_FULL_STATIC%
echo BOOST_ROOT: %BOOST_ROOT%
echo OPENSSL_ROOT: %OPENSSL_ROOT_DIR%
echo Source Dir: %SOURCE_DIR%
echo ============================================
echo.
REM --- Create build directory ---
set BUILD_DIR=%SOURCE_DIR%\build
if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%"
REM --- Configure ---
echo [1/2] Configuring with CMake...
cmake -S "%SOURCE_DIR%" -B "%BUILD_DIR%" ^
-G "MinGW Makefiles" ^
-DCMAKE_BUILD_TYPE=%VIZ_BUILD_TYPE% ^
-DBOOST_ROOT="%BOOST_ROOT%" ^
-DOPENSSL_ROOT_DIR="%OPENSSL_ROOT_DIR%" ^
-DBUILD_TESTNET=%VIZ_BUILD_TESTNET% ^
-DBUILD_SHARED_LIBRARIES=OFF ^
-DFULL_STATIC_BUILD=%VIZ_FULL_STATIC% ^
%VIZ_CMAKE_EXTRA%
if %ERRORLEVEL% neq 0 (
echo ERROR: CMake configuration failed.
exit /b %ERRORLEVEL%
)
REM --- Build ---
echo.
echo [2/2] Building...
mingw32-make -C "%BUILD_DIR%" -j%NUMBER_OF_PROCESSORS%
if %ERRORLEVEL% neq 0 (
echo ERROR: Build failed.
exit /b %ERRORLEVEL%
)
echo.
echo ============================================
echo Build completed successfully!
echo Output directory: %BUILD_DIR%
echo ============================================
endlocal