mirror of
https://github.com/php/php-src.git
synced 2026-03-24 16:22:37 +01:00
The search order for DLLs on Windows is (simplified): * the application folder * the system folder * all folders in the `PATH` (The full details are documented on Microsoft Learn[1].) As is, we're adding `deps\bin` to the `PATH` when running the tests, but any DLLs in the system folder take precedence, so these would be used instead of our intended dependencies. To mitigate that, we copy over all DLLs from `deps\bin` to our application folder (i.e. where php.exe, php-cgi.exe and phpdbg.exe are placed). Since we're doing this, there is no more need to attempt to remove the OpenSSL DLLs in the system folder (what seems to be a bad idea anyway). [1] <https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order> Closes GH-17805.
51 lines
1.4 KiB
Batchfile
51 lines
1.4 KiB
Batchfile
@echo off
|
|
|
|
if /i "%GITHUB_ACTIONS%" neq "True" (
|
|
echo for CI only
|
|
exit /b 3
|
|
)
|
|
|
|
call %~dp0find-target-branch.bat
|
|
set STABILITY=staging
|
|
set DEPS_DIR=%PHP_BUILD_CACHE_BASE_DIR%\deps-%BRANCH%-%PHP_SDK_VS%-%PHP_SDK_ARCH%
|
|
rem SDK is cached, deps info is cached as well
|
|
echo Updating dependencies in %DEPS_DIR%
|
|
cmd /c phpsdk_deps --update --no-backup --branch %BRANCH% --stability %STABILITY% --deps %DEPS_DIR% --crt %PHP_BUILD_CRT%
|
|
if %errorlevel% neq 0 exit /b 3
|
|
|
|
rem Something went wrong, most likely when concurrent builds were to fetch deps
|
|
rem updates. It might be, that some locking mechanism is needed.
|
|
if not exist "%DEPS_DIR%" (
|
|
cmd /c phpsdk_deps --update --force --no-backup --branch %BRANCH% --stability %STABILITY% --deps %DEPS_DIR%
|
|
)
|
|
if %errorlevel% neq 0 exit /b 3
|
|
|
|
cmd /c buildconf.bat --force
|
|
if %errorlevel% neq 0 exit /b 3
|
|
|
|
if "%THREAD_SAFE%" equ "0" set ADD_CONF=%ADD_CONF% --disable-zts
|
|
if "%INTRINSICS%" neq "" set ADD_CONF=%ADD_CONF% --enable-native-intrinsics=%INTRINSICS%
|
|
|
|
rem Some undefined behavior is reported on 32-bit, this should be fixed
|
|
if "%PLATFORM%" == "x86" (
|
|
set CFLAGS=/W1
|
|
) else (
|
|
set CFLAGS=/W1 /WX
|
|
)
|
|
|
|
cmd /c configure.bat ^
|
|
--enable-snapshot-build ^
|
|
--disable-debug-pack ^
|
|
--enable-com-dotnet=shared ^
|
|
--without-analyzer ^
|
|
--enable-object-out-dir=%PHP_BUILD_OBJ_DIR% ^
|
|
--with-php-build=%DEPS_DIR% ^
|
|
%ADD_CONF% ^
|
|
--disable-test-ini
|
|
if %errorlevel% neq 0 exit /b 3
|
|
|
|
nmake /NOLOGO
|
|
if %errorlevel% neq 0 exit /b 3
|
|
|
|
exit /b 0
|