Skip to content

Commit

Permalink
GH-19: Refactored project layout
Browse files Browse the repository at this point in the history
  • Loading branch information
negrutiu committed May 17, 2024
1 parent e2867eb commit 5218f94
Show file tree
Hide file tree
Showing 43 changed files with 142 additions and 180 deletions.
26 changes: 13 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@

*nogit*

curl-ca-bundle.crt
/libcurl-devel
/nsis
/src/nscurl/curl-ca-bundle.crt
/src/nscurl/nsis

/packages/current
/packages/*.zip
/packages/*.7z

/libcurl-devel
libcurl-devel*.7z
libcurl-devel*.7z.etag
NScurl*.7z

/Test/*.exe
/Test/_*

/TestDebug/*.exe
/TestDebug/_*
/tests/*.exe
/tests/_*

Debug-*
Release-*
ipch
.vs
/Debug-*
/Release-*
/ipch
/.vs

*.opensdf
*.sdf
Expand Down
2 changes: 1 addition & 1 deletion NScurl.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.902
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NScurl", "NScurl.vcxproj", "{FE51110F-82BE-423E-800C-F5951C998D22}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NScurl", "src\nscurl\NScurl.vcxproj", "{FE51110F-82BE-423E-800C-F5951C998D22}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
25 changes: 0 additions & 25 deletions Test/NScurl-Test-build.bat

This file was deleted.

2 changes: 0 additions & 2 deletions TestDebug/cleanup.bat

This file was deleted.

4 changes: 3 additions & 1 deletion _acquire_curl-ca-bundle.bat
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
setlocal enabledelayedexpansion

set outdir=%~dp0src/nscurl

echo Downloading curl-ca-bundle.crt ...
curl --no-progress-meter -L -f -o "%~dp0/curl-ca-bundle.crt" -z "%~dp0/curl-ca-bundle.crt" https://curl.se/ca/cacert.pem || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%outdir%/curl-ca-bundle.crt" -z "%outdir%/curl-ca-bundle.crt" https://curl.se/ca/cacert.pem || exit /b !errorlevel!

echo.
22 changes: 11 additions & 11 deletions _acquire_pluginapi.bat
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
setlocal enabledelayedexpansion

mkdir "%~dp0/nsis" > nul 2> nul
set outdir=%~dp0src\nscurl\nsis
mkdir "%outdir%" > nul 2> nul

set NSIS_GIT=%~dp0..\..

if exist "%NSIS_GIT%\Source\exehead\api.h" (
set nsis_gitroot=%~dp0..\..
if exist "%nsis_gitroot%\Source\exehead\api.h" (
call :nsis_build
) else (
call :standalone_build
Expand All @@ -16,15 +16,15 @@ REM ----------------------------------------------------------------------------

:nsis_build
echo Copying NSIS SDK...
xcopy "%NSIS_GIT%\Contrib\ExDLL\pluginapi.*" "%~dp0\nsis\" /DYI || exit /b !errorlevel!
xcopy "%NSIS_GIT%\Contrib\ExDLL\nsis_tchar.h" "%~dp0\nsis\" /DYI || exit /b !errorlevel!
xcopy "%NSIS_GIT%\Source\exehead\api.h" "%~dp0\nsis\" /DYI || exit /b !errorlevel!
xcopy "%nsis_gitroot%\Contrib\ExDLL\pluginapi.*" "%outdir%\" /DYI || exit /b !errorlevel!
xcopy "%nsis_gitroot%\Contrib\ExDLL\nsis_tchar.h" "%outdir%\" /DYI || exit /b !errorlevel!
xcopy "%nsis_gitroot%\Source\exehead\api.h" "%outdir%\" /DYI || exit /b !errorlevel!
exit /b

:standalone_build
echo Downloading NSIS SDK...
curl --no-progress-meter -L -f -o "%~dp0/nsis/pluginapi.h" -z "%~dp0/nsis/pluginapi.h" https://raw.githubusercontent.com/kichik/nsis/master/Contrib/ExDLL/pluginapi.h || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%~dp0/nsis/pluginapi.c" -z "%~dp0/nsis/pluginapi.c" https://raw.githubusercontent.com/kichik/nsis/master/Contrib/ExDLL/pluginapi.c || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%~dp0/nsis/nsis_tchar.h" -z "%~dp0/nsis/nsis_tchar.h" https://raw.githubusercontent.com/kichik/nsis/master/Contrib/ExDLL/nsis_tchar.h || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%~dp0/nsis/api.h" -z "%~dp0/nsis/api.h" https://raw.githubusercontent.com/kichik/nsis/master/Source/exehead/api.h || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%outdir%/pluginapi.h" -z "%outdir%/pluginapi.h" https://raw.githubusercontent.com/kichik/nsis/master/Contrib/ExDLL/pluginapi.h || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%outdir%/pluginapi.c" -z "%outdir%/pluginapi.c" https://raw.githubusercontent.com/kichik/nsis/master/Contrib/ExDLL/pluginapi.c || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%outdir%/nsis_tchar.h" -z "%outdir%/nsis_tchar.h" https://raw.githubusercontent.com/kichik/nsis/master/Contrib/ExDLL/nsis_tchar.h || exit /b !errorlevel!
curl --no-progress-meter -L -f -o "%outdir%/api.h" -z "%outdir%/api.h" https://raw.githubusercontent.com/kichik/nsis/master/Source/exehead/api.h || exit /b !errorlevel!
exit /b
46 changes: 1 addition & 45 deletions _build_Debug.cmd
Original file line number Diff line number Diff line change
@@ -1,45 +1 @@
REM :: Marius Negrutiu (marius.negrutiu@protonmail.com)

@echo off
setlocal enabledelayedexpansion
echo.

:CHDIR
cd /d "%~dp0"

:dependencies
call _acquire_pluginapi.bat || exit /b !errorlevel!
call _acquire_libcurl-devel.bat || exit /b !errorlevel!
call _acquire_curl-ca-bundle.bat || exit /b !errorlevel!

:DEFINITIONS
set BUILD_SOLUTION=%CD%\NScurl.sln
set BUILD_CONFIG=Debug
set BUILD_VERBOSITY=normal
:: Verbosity: quiet, minimal, normal, detailed, diagnostic

:COMPILER
if not exist "%PF%" set PF=%PROGRAMFILES(X86)%
if not exist "%PF%" set PF=%PROGRAMFILES%
set VSWHERE=%PF%\Microsoft Visual Studio\Installer\vswhere.exe
if not exist "%VCVARSALL%" for /f "tokens=1* delims=: " %%i in ('"%VSWHERE%" -version 17 -requires Microsoft.Component.MSBuild 2^> NUL') do if /i "%%i"=="installationPath" set VCVARSALL=%%j\VC\Auxiliary\Build\VCVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v143
if not exist "%VCVARSALL%" for /f "tokens=1* delims=: " %%i in ('"%VSWHERE%" -version 16 -requires Microsoft.Component.MSBuild 2^> NUL') do if /i "%%i"=="installationPath" set VCVARSALL=%%j\VC\Auxiliary\Build\VCVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v142
if not exist "%VCVARSALL%" for /f "tokens=1* delims=: " %%i in ('"%VSWHERE%" -version 15 -requires Microsoft.Component.MSBuild 2^> NUL') do if /i "%%i"=="installationPath" set VCVARSALL=%%j\VC\Auxiliary\Build\VCVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v141
if not exist "%VCVARSALL%" set VCVARSALL=%PF%\Microsoft Visual Studio 14.0\VC\VcVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v140
if not exist "%VCVARSALL%" set VCVARSALL=%PF%\Microsoft Visual Studio 12.0\VC\VcVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v120
if not exist "%VCVARSALL%" set VCVARSALL=%PF%\Microsoft Visual Studio 11.0\VC\VcVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v110
if not exist "%VCVARSALL%" set VCVARSALL=%PF%\Microsoft Visual Studio 10.0\VC\VcVarsAll.bat&& set BUILD_PLATFORMTOOLSET=v100
if not exist "%VCVARSALL%" echo ERROR: Can't find Visual Studio 2010-2022 && pause && exit /B 2

:BUILD
pushd "%CD%"
call "%VCVARSALL%" x86
popd

title %BUILD_CONFIG%-x86-ansi
msbuild /m /t:build "%BUILD_SOLUTION%" /p:Configuration=%BUILD_CONFIG%-x86-ansi /p:Platform=Win32 /p:PlatformToolset=%BUILD_PLATFORMTOOLSET% /p:WindowsTargetPlatformVersion=%WindowsSDKVersion% /nologo /verbosity:%BUILD_VERBOSITY%
if %errorlevel% neq 0 pause && exit /B %errorlevel%

title %BUILD_CONFIG%-x86-unicode
msbuild /m /t:build "%BUILD_SOLUTION%" /p:Configuration=%BUILD_CONFIG%-x86-unicode /p:Platform=Win32 /p:PlatformToolset=%BUILD_PLATFORMTOOLSET% /p:WindowsTargetPlatformVersion=%WindowsSDKVersion% /nologo /verbosity:%BUILD_VERBOSITY%
if %errorlevel% neq 0 pause && exit /B %errorlevel%
@call "%~dp0_build_Release.cmd" Debug
5 changes: 4 additions & 1 deletion _build_Release.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ REM :: Marius Negrutiu (marius.negrutiu@protonmail.com)
setlocal enabledelayedexpansion
echo.

REM | script.bat [Release|Debug]

:CHDIR
cd /d "%~dp0"

Expand All @@ -14,7 +16,8 @@ call _acquire_curl-ca-bundle.bat || exit /b !errorlevel!

:DEFINITIONS
set BUILD_SOLUTION=%CD%\NScurl.sln
set BUILD_CONFIG=Release
if "%1" neq "" set BUILD_CONFIG=%~1
if "%1" equ "" set BUILD_CONFIG=Release
set BUILD_VERBOSITY=normal
:: Verbosity: quiet, minimal, normal, detailed, diagnostic

Expand Down
18 changes: 12 additions & 6 deletions _build_Release_mingw.bat
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,24 @@ set PATH=%MINGW32%\bin;%ORIGINAL_PATH%

echo.
echo -------------------------------------------------------------------
set OUTDIR=Release-mingw-x86-ansi
set OUTDIR=%~dp0Release-mingw-x86-ansi
echo %OUTDIR%
title %OUTDIR%
echo -------------------------------------------------------------------
mingw32-make.exe ARCH=X86 CHAR=ANSI OUTDIR=%OUTDIR% -fMakefile.mingw clean all
pushd "%~dp0src\nscurl"
mingw32-make.exe ARCH=X86 CHAR=ANSI OUTDIR=%OUTDIR% clean all
popd
if %errorlevel% neq 0 pause && exit /B %errorlevel%

echo.
echo -------------------------------------------------------------------
set OUTDIR=Release-mingw-x86-unicode
set OUTDIR=%~dp0Release-mingw-x86-unicode
echo %OUTDIR%
title %OUTDIR%
echo -------------------------------------------------------------------
mingw32-make.exe ARCH=X86 CHAR=Unicode OUTDIR=%OUTDIR% -fMakefile.mingw clean all
pushd "%~dp0src\nscurl"
mingw32-make.exe ARCH=X86 CHAR=Unicode OUTDIR=%OUTDIR% clean all
popd
if %errorlevel% neq 0 pause && exit /B %errorlevel%


Expand All @@ -50,11 +54,13 @@ set PATH=%MINGW64%\bin;%ORIGINAL_PATH%

echo.
echo -------------------------------------------------------------------
set OUTDIR=Release-mingw-amd64-unicode
set OUTDIR=%~dp0Release-mingw-amd64-unicode
echo %OUTDIR%
title %OUTDIR%
echo -------------------------------------------------------------------
mingw32-make.exe ARCH=X64 CHAR=Unicode OUTDIR=%OUTDIR% -fMakefile.mingw clean all
pushd "%~dp0src\nscurl"
mingw32-make.exe ARCH=X64 CHAR=Unicode OUTDIR=%OUTDIR% clean all
popd
if %errorlevel% neq 0 pause && exit /B %errorlevel%

echo.
Expand Down
8 changes: 5 additions & 3 deletions _cleanup.bat
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ echo.

cd /d "%~dp0"

call "%CD%\Test\cleanup.bat"
call "%CD%\TestDebug\cleanup.bat"
call "%cd%\tests\cleanup.bat"

call :CLEANUP
call :CLEANUP
Expand All @@ -20,7 +19,10 @@ rd /S /Q ipch

for /D %%a in (Debug*) do rd /S /Q "%%a"
for /D %%a in (Release*) do rd /S /Q "%%a"
rd /S /Q nsis

rd /Q /S "src\nscurl\nsis"
del /Q "src\nscurl\curl-ca-bundle.crt"
rd /Q /S "packages\current"

del *.aps
del *.bak
Expand Down
47 changes: 25 additions & 22 deletions _make_package.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,42 @@ set Z7=%PROGRAMFILES%\7-Zip\7z.exe
if not exist "%Z7%" echo ERROR: Missing %Z7% && pause && exit /b 2

REM :: Read version from the .rc file
for /f usebackq^ tokens^=3^ delims^=^"^,^ %%f in (`type resource.rc ^| findstr /r /c:"\s*\"FileVersion\"\s*"`) do set RCVER=%%f
for /f usebackq^ tokens^=3^ delims^=^"^,^ %%f in (`type src\nscurl\resource.rc ^| findstr /r /c:"\s*\"FileVersion\"\s*"`) do set RCVER=%%f

rmdir /S /Q _Package > nul 2> nul
mkdir _Package
mkdir _Package\amd64-unicode
mkdir _Package\x86-unicode
mkdir _Package\x86-ansi
mkdir _Package\Test
set workdir=packages\current

rmdir /S /Q %workdir% > nul 2> nul
mkdir %workdir%
mkdir %workdir%\amd64-unicode
mkdir %workdir%\x86-unicode
mkdir %workdir%\x86-ansi
mkdir %workdir%\Test

goto :file_end
:file
mklink /H "%~1" "%~2" || echo --- WARNING --- failed to add "%~2"&& pause
exit /b
:file_end

call :file _Package\amd64-unicode\NScurl.dll Release-mingw-amd64-unicode\NScurl.dll
call :file _Package\x86-unicode\NScurl.dll Release-mingw-x86-unicode\NScurl.dll
call :file _Package\x86-ansi\NScurl.dll Release-mingw-x86-ansi\NScurl.dll
call :file _Package\Test\NScurl-Test.nsi Test\NScurl-Test.nsi
call :file _Package\NScurl.readme.md NScurl.readme.md
call :file _Package\README.md README.md
call :file _Package\LICENSE.md LICENSE.md
call :file _Package\LICENSE.curl.md libcurl-devel\src\curl\COPYING
call :file _Package\LICENSE.libcurl-devel.md libcurl-devel\LICENSE.md
call :file _Package\LICENSE.nghttp2.md libcurl-devel\src\nghttp2\COPYING
call :file _Package\LICENSE.openssl.md libcurl-devel\src\openssl\LICENSE.txt
call :file _Package\LICENSE.zlib.md libcurl-devel\src\zlib\LICENSE

pushd _Package
call :file %workdir%\amd64-unicode\NScurl.dll Release-mingw-amd64-unicode\NScurl.dll
call :file %workdir%\x86-unicode\NScurl.dll Release-mingw-x86-unicode\NScurl.dll
call :file %workdir%\x86-ansi\NScurl.dll Release-mingw-x86-ansi\NScurl.dll
call :file %workdir%\Test\NScurl-Test.nsi tests\NScurl-Test.nsi
call :file %workdir%\Test\NScurl-Test-build.bat tests\NScurl-Test-build.bat
call :file %workdir%\NScurl.readme.md src\nscurl\NScurl.readme.md
call :file %workdir%\README.md README.md
call :file %workdir%\LICENSE.md LICENSE.md
call :file %workdir%\LICENSE.curl.md libcurl-devel\src\curl\COPYING
call :file %workdir%\LICENSE.libcurl-devel.md libcurl-devel\LICENSE.md
call :file %workdir%\LICENSE.nghttp2.md libcurl-devel\src\nghttp2\COPYING
call :file %workdir%\LICENSE.openssl.md libcurl-devel\src\openssl\LICENSE.txt
call :file %workdir%\LICENSE.zlib.md libcurl-devel\src\zlib\LICENSE

pushd %workdir%
"%Z7%" a "..\NScurl-%RCVER%.7z" * -r || pause && exit /b !errorlevel!
popd

echo.
pause

rmdir /S /Q _Package > NUL 2> NUL
rmdir /S /Q %workdir% > nul 2> nul
Empty file added packages/.gitkeep
Empty file.
6 changes: 3 additions & 3 deletions Makefile.mingw → src/nscurl/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
PROJECT = NScurl
BIN = $(PROJECT).dll
OBJ = pluginapi.o main.o utils.o crypto.o curl.o queue.o gui.o resource.res
INC = -I. -Ilibcurl-devel/include -Ilibcurl-devel/include/openssl
INC = -I. -I../../libcurl-devel/include -I../../libcurl-devel/include/openssl
LIB = -lcurl -lssl -lcrypto -lnghttp2_static -lzlibstatic -ladvapi32 -lkernel32 -luser32 -lversion -lws2_32 -lcrypt32 -lmsvcrt -lgcc

_OBJ = $(patsubst %,$(OUTDIR)/%,$(OBJ))
Expand All @@ -33,11 +33,11 @@ STATIC = $(OUTDIR)/lib$(PROJECT).a

# ARCH
ifeq ($(ARCH), X64)
CFLAGS += -Wall -DNDEBUG -Llibcurl-devel/mingw-curl_openssl-Release-x64-Legacy/lib
CFLAGS += -Wall -DNDEBUG -L../../libcurl-devel/mingw-curl_openssl-Release-x64-Legacy/lib
LDFLAGS += -Wl,-e'DllMain' -Wl,--high-entropy-va
RCFLAGS += -F pe-x86-64
else
CFLAGS += -Wall -DNDEBUG -Llibcurl-devel/mingw-curl_openssl-Release-Win32-Legacy/lib -march=pentium2
CFLAGS += -Wall -DNDEBUG -L../../libcurl-devel/mingw-curl_openssl-Release-Win32-Legacy/lib -march=pentium2
LDFLAGS += -Wl,-e'_DllMain'
RCFLAGS += -F pe-i386
endif
Expand Down
File renamed without changes.
Loading

0 comments on commit 5218f94

Please sign in to comment.