Skip to content

Commit 8ccd8e6

Browse files
committed
Use CMake instead of nmake to build cURL project
1 parent 151f6ad commit 8ccd8e6

3 files changed

Lines changed: 48 additions & 27 deletions

File tree

README.md

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,8 @@ How to build it?
6565

6666
* Step 1: You have to build cURL before building WinGUp:
6767

68-
1. Open VS2022 Native Tool Command for 32/64 bits. If you want to build for ARM, open a cmd, and run the following command:<br/>
69-
`C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat`
70-
2. Go to winbuild directory under curl directory:<br/>
71-
`cd <your WinGUp source path>\curl\winbuild\` then run:
72-
`set WINBUILD_ACKNOWLEDGE_DEPRECATED=yes`
73-
3. Compile cURL by using one of the following commands, according the mode and architecture of WinGUp you want to build.
74-
- x64 release: `nmake /f Makefile.vc mode=static vc=15 RTLIBCFG=static MACHINE=x64`
75-
- x64 debug: `nmake /f Makefile.vc mode=static vc=15 RTLIBCFG=static DEBUG=yes MACHINE=x64`
76-
- x86 release: `nmake /f Makefile.vc mode=static vc=15 RTLIBCFG=static MACHINE=x86`
77-
- x86 debug: `nmake /f Makefile.vc mode=static vc=15 RTLIBCFG=static DEBUG=yes MACHINE=x86`
78-
- ARM64 release: `nmake /f Makefile.vc mode=static vc=15 RTLIBCFG=static MACHINE=ARM64`
79-
- ARM64 debug: `nmake /f Makefile.vc mode=static vc=15 RTLIBCFG=static DEBUG=yes MACHINE=ARM64`
68+
1. Open Visual Studio Native Tool Command.
69+
2. Go to WinGUp source directory and run "buildCurlAll.bat".
8070

8171
* Step 2: Open [`vcproj\GUP.sln`](https://github.com/gup4win/wingup/blob/master/vcproj/GUP.sln) with VS2022.
8272

buildCurlAll.bat

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
@echo off
2+
echo === Building curl for ARM64, x64, x86 (Release + Debug) ===
3+
set COMMON=-DBUILD_SHARED_LIBS=OFF -DCURL_STATIC_CRT=ON -DBUILD_CURL_EXE=OFF -DCURL_USE_SCHANNEL=ON -DCURL_USE_OPENSSL=OFF -DBUILD_TESTING=OFF -DUSE_LIBPSL=OFF -DCURL_USE_LIBPSL=OFF -DUSE_NGHTTP2=OFF -DUSE_LIBIDN2=OFF
4+
set RELEASE=-DCMAKE_BUILD_TYPE=Release
5+
set DEBUG=-DCMAKE_BUILD_TYPE=Debug
6+
7+
echo [1/6] Configuring ARM64...
8+
cmake curl -B curl\build\ARM64 -A ARM64 %COMMON% %RELEASE%
9+
echo [2/6] Building ARM64 Release...
10+
cmake --build curl\build\ARM64 --config Release
11+
echo [3/6] Building ARM64 Debug...
12+
cmake --build curl\build\ARM64 --config Debug
13+
14+
echo [4/6] Configuring x64...
15+
cmake curl -B curl\build\x64 -A x64 %COMMON% %RELEASE%
16+
echo [5/6] Building x64 Release...
17+
cmake --build curl\build\x64 --config Release
18+
echo [6/6] Building x64 Debug...
19+
cmake --build curl\build\x64 --config Debug
20+
21+
echo [7/6] Configuring x86...
22+
cmake curl -B curl\build\x86 -A Win32 %COMMON% %RELEASE%
23+
echo [8/6] Building x86 Release...
24+
cmake --build curl\build\x86 --config Release
25+
echo [9/6] Building x86 Debug...
26+
cmake --build curl\build\x86 --config Debug
27+
28+
echo === Done! ===
29+
echo ARM64 Release: curl\build\ARM64\lib\Release\libcurl.lib
30+
echo ARM64 Debug: curl\build\ARM64\lib\Debug\libcurl-d.lib
31+
echo x64 Release: curl\build\x64\lib\Release\libcurl.lib
32+
echo x64 Debug: curl\build\x64\lib\Debug\libcurl-d.lib
33+
echo x86 Release: curl\build\x86\lib\Release\libcurl.lib
34+
echo x86 Debug: curl\build\x86\lib\Debug\libcurl-d.lib

vcproj/GUP.vcxproj

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@
134134
<LanguageStandard_C>stdc17</LanguageStandard_C>
135135
</ClCompile>
136136
<Link>
137-
<AdditionalDependencies>libcurl_a_debug.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
138-
<AdditionalLibraryDirectories>..\curl\builds\libcurl-vc15-x86-debug-static-ipv6-sspi-schannel\lib;Bin\x86\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
137+
<AdditionalDependencies>libcurl-d.lib;iphlpapi.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
138+
<AdditionalLibraryDirectories>..\curl\build\x86\lib\Debug;Bin\x86\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
139139
<GenerateDebugInformation>DebugFastLink</GenerateDebugInformation>
140140
<SubSystem>Windows</SubSystem>
141141
<TargetMachine>MachineX86</TargetMachine>
@@ -163,8 +163,8 @@
163163
<LanguageStandard_C>stdc17</LanguageStandard_C>
164164
</ClCompile>
165165
<Link>
166-
<AdditionalDependencies>libcurl_a_debug.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
167-
<AdditionalLibraryDirectories>..\curl\builds\libcurl-vc15-x64-debug-static-ipv6-sspi-schannel\lib;Bin\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
166+
<AdditionalDependencies>libcurl-d.lib;iphlpapi.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
167+
<AdditionalLibraryDirectories>..\curl\build\x64\lib\Debug;Bin\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
168168
<GenerateDebugInformation>DebugFastLink</GenerateDebugInformation>
169169
<SubSystem>Windows</SubSystem>
170170
<OptimizeReferences>true</OptimizeReferences>
@@ -191,8 +191,8 @@
191191
<LanguageStandard_C>stdc17</LanguageStandard_C>
192192
</ClCompile>
193193
<Link>
194-
<AdditionalDependencies>libcurl_a_debug.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
195-
<AdditionalLibraryDirectories>..\curl\builds\libcurl-vc15-ARM64-debug-static-ipv6-sspi-schannel\lib;Bin\arm64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
194+
<AdditionalDependencies>libcurl-d.lib;iphlpapi.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
195+
<AdditionalLibraryDirectories>..\curl\build\ARM64\lib\Debug;Bin\arm64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
196196
<GenerateDebugInformation>DebugFastLink</GenerateDebugInformation>
197197
<SubSystem>Windows</SubSystem>
198198
<OptimizeReferences>true</OptimizeReferences>
@@ -222,8 +222,8 @@
222222
<LanguageStandard_C>stdc17</LanguageStandard_C>
223223
</ClCompile>
224224
<Link>
225-
<AdditionalDependencies>libcurl_a.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
226-
<AdditionalLibraryDirectories>..\curl\builds\libcurl-vc15-x86-release-static-ipv6-sspi-schannel\lib;Bin\x86\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
225+
<AdditionalDependencies>libcurl.lib;iphlpapi.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
226+
<AdditionalLibraryDirectories>..\curl\build\x86\lib\Release;Bin\x86\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
227227
<GenerateDebugInformation>false</GenerateDebugInformation>
228228
<SubSystem>Windows</SubSystem>
229229
<OptimizeReferences>true</OptimizeReferences>
@@ -237,7 +237,6 @@ copy ..\src\ConfigFiles\getDownLoadUrl.php ..\bin\getDownLoadUrl.php
237237
copy ..\LICENSE ..\bin\LICENSE
238238
copy ..\README.md ..\bin\README.md
239239
copy ..\resources\updater.ico ..\bin\updater.ico
240-
copy ..\curl\builds\libcurl-vc15-x86-release-dll-ipv6-sspi-schannel\bin\libcurl.dll ..\bin\libcurl.dll
241240
xcopy ..\src\translations ..\bin\translations\ /S /Y /E
242241
del ..\bin\GUP.iobj
243242
del ..\bin\GUP.ipdb</Command>
@@ -266,8 +265,8 @@ del ..\bin\GUP.ipdb</Command>
266265
<LanguageStandard_C>stdc17</LanguageStandard_C>
267266
</ClCompile>
268267
<Link>
269-
<AdditionalDependencies>libcurl_a.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
270-
<AdditionalLibraryDirectories>..\curl\builds\libcurl-vc15-x64-release-static-ipv6-sspi-schannel\lib;Bin\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
268+
<AdditionalDependencies>libcurl.lib;iphlpapi.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
269+
<AdditionalLibraryDirectories>..\curl\build\x64\lib\Release;Bin\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
271270
<GenerateDebugInformation>false</GenerateDebugInformation>
272271
<SubSystem>Windows</SubSystem>
273272
<OptimizeReferences>true</OptimizeReferences>
@@ -280,7 +279,6 @@ copy ..\src\ConfigFiles\gup.xml ..\bin64\gup.xml
280279
copy ..\src\ConfigFiles\getDownLoadUrl.php ..\bin64\getDownLoadUrl.php
281280
copy ..\LICENSE ..\bin64\LICENSE
282281
copy ..\README.md ..\bin64\README.md
283-
copy ..\curl\builds\libcurl-vc15-x64-release-dll-ipv6-sspi-schannel\bin\libcurl.dll ..\bin64\libcurl.dll
284282
xcopy ..\src\translations ..\bin64\translations\ /S /Y /E
285283
del ..\bin64\GUP.iobj
286284
del ..\bin64\GUP.ipdb</Command>
@@ -309,8 +307,8 @@ del ..\bin64\GUP.ipdb</Command>
309307
<LanguageStandard_C>stdc17</LanguageStandard_C>
310308
</ClCompile>
311309
<Link>
312-
<AdditionalDependencies>libcurl_a.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;Shell32.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
313-
<AdditionalLibraryDirectories>..\curl\builds\libcurl-vc15-ARM64-release-static-ipv6-sspi-schannel\lib;Bin\arm64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
310+
<AdditionalDependencies>libcurl.lib;iphlpapi.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;Secur32.lib;ZipLib.lib;zlib.lib;lzma.lib;bzip2.lib;comctl32.lib;shlwapi.lib;Shell32.lib;wintrust.lib;Sensapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
311+
<AdditionalLibraryDirectories>..\curl\build\ARM64\lib\Release;Bin\arm64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
314312
<GenerateDebugInformation>false</GenerateDebugInformation>
315313
<SubSystem>Windows</SubSystem>
316314
<OptimizeReferences>true</OptimizeReferences>
@@ -323,7 +321,6 @@ copy ..\src\ConfigFiles\gup.xml ..\binarm64\gup.xml
323321
copy ..\src\ConfigFiles\getDownLoadUrl.php ..\binarm64\getDownLoadUrl.php
324322
copy ..\LICENSE ..\binarm64\LICENSE
325323
copy ..\README.md ..\binarm64\README.md
326-
copy ..\curl\builds\libcurl-vc15-ARM64-release-dll-ipv6-sspi-schannel\bin\libcurl.dll ..\binarm64\libcurl.dll
327324
xcopy ..\src\translations ..\binarm64\translations\ /S /Y /E</Command>
328325
</PostBuildEvent>
329326
<PreLinkEvent>

0 commit comments

Comments
 (0)