Skip to content

Commit 47ad34f

Browse files
committed
PHP 8.5 windows build fixes.
1 parent 9824075 commit 47ad34f

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

windows-compile-vs.ps1

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,70 @@ function append-file-utf8 {
305305
Out-File -Append -FilePath $file -Encoding utf8 -InputObject $line
306306
}
307307

308+
function create-extension-directories {
309+
param ([string] $basePath)
310+
311+
$directories = @(
312+
"TSRM", "Zend", "Zend\Optimizer", "ext", "ext\bcmath", "ext\bcmath\libbcmath", "ext\bcmath\libbcmath\src",
313+
"ext\bz2", "ext\calendar", "ext\chunkutils2", "ext\chunkutils2\src", "ext\crypto", "ext\ctype",
314+
"ext\curl", "ext\date", "ext\date\lib", "ext\dom", "ext\dom\lexbor", "ext\dom\lexbor\selectors-adapted",
315+
"ext\dom\parentnode", "ext\ext-arraydebug-0.2.1", "ext\ext-encoding-1.0.0", "ext\ext-encoding-1.0.0\classes",
316+
"ext\ext-libdeflate-0.2.1", "ext\ext-pmmpthread-4aa34a27feaa43adba5f1e93939828d1d7afdefc",
317+
"ext\ext-pmmpthread-4aa34a27feaa43adba5f1e93939828d1d7afdefc\classes",
318+
"ext\ext-pmmpthread-4aa34a27feaa43adba5f1e93939828d1d7afdefc\src", "ext\ext-recursionguard-0.1.0",
319+
"ext\ext-vanillagenerator-2.1.7", "ext\ext-vanillagenerator-2.1.7\lib", "ext\ext-vanillagenerator-2.1.7\lib\biomes",
320+
"ext\ext-vanillagenerator-2.1.7\lib\chunk", "ext\ext-vanillagenerator-2.1.7\lib\generator",
321+
"ext\ext-vanillagenerator-2.1.7\lib\generator\biomegrid", "ext\ext-vanillagenerator-2.1.7\lib\generator\ground",
322+
"ext\ext-vanillagenerator-2.1.7\lib\generator\misc", "ext\ext-vanillagenerator-2.1.7\lib\generator\nether",
323+
"ext\ext-vanillagenerator-2.1.7\lib\generator\nether\decorators", "ext\ext-vanillagenerator-2.1.7\lib\generator\nether\populators",
324+
"ext\ext-vanillagenerator-2.1.7\lib\generator\object", "ext\ext-vanillagenerator-2.1.7\lib\generator\object\trees",
325+
"ext\ext-vanillagenerator-2.1.7\lib\generator\object\trees\defaults", "ext\ext-vanillagenerator-2.1.7\lib\generator\overworld",
326+
"ext\ext-vanillagenerator-2.1.7\lib\generator\overworld\carver", "ext\ext-vanillagenerator-2.1.7\lib\generator\overworld\decorators",
327+
"ext\ext-vanillagenerator-2.1.7\lib\generator\overworld\populators", "ext\ext-vanillagenerator-2.1.7\lib\noise",
328+
"ext\ext-vanillagenerator-2.1.7\lib\noise\octaves", "ext\ext-vanillagenerator-2.1.7\lib\objects",
329+
"ext\ext-vanillagenerator-2.1.7\lib\objects\blocks", "ext\ext-vanillagenerator-2.1.7\lib\objects\math",
330+
"ext\ext-vanillagenerator-2.1.7\lib\objects\random", "ext\ext-vanillagenerator-2.1.7\src", "ext\ext-xxhash-0.2.0",
331+
"ext\ffi", "ext\fileinfo", "ext\fileinfo\libmagic", "ext\filter", "ext\gd", "ext\gd\libgd", "ext\gmp",
332+
"ext\hash", "ext\hash\murmur", "ext\hash\sha3", "ext\hash\sha3\generic64lc", "ext\iconv",
333+
"ext\igbinary-8f8b7175c7859f1845bcdee6f7d0baeea7d07cb8", "ext\igbinary-8f8b7175c7859f1845bcdee6f7d0baeea7d07cb8\src",
334+
"ext\igbinary-8f8b7175c7859f1845bcdee6f7d0baeea7d07cb8\src\php7", "ext\json", "ext\lexbor", "ext\lexbor\lexbor",
335+
"ext\lexbor\lexbor\core", "ext\lexbor\lexbor\css", "ext\lexbor\lexbor\css\selectors", "ext\lexbor\lexbor\css\syntax",
336+
"ext\lexbor\lexbor\css\syntax\tokenizer", "ext\lexbor\lexbor\dom", "ext\lexbor\lexbor\dom\interfaces",
337+
"ext\lexbor\lexbor\encoding", "ext\lexbor\lexbor\html", "ext\lexbor\lexbor\html\interfaces",
338+
"ext\lexbor\lexbor\html\tokenizer", "ext\lexbor\lexbor\html\tree", "ext\lexbor\lexbor\html\tree\insertion_mode",
339+
"ext\lexbor\lexbor\ns", "ext\lexbor\lexbor\ports", "ext\lexbor\lexbor\ports\windows_nt",
340+
"ext\lexbor\lexbor\ports\windows_nt\lexbor", "ext\lexbor\lexbor\ports\windows_nt\lexbor\core",
341+
"ext\lexbor\lexbor\punycode", "ext\lexbor\lexbor\tag", "ext\lexbor\lexbor\unicode", "ext\lexbor\lexbor\url",
342+
"ext\libxml", "ext\mbstring", "ext\mbstring\libmbfl", "ext\mbstring\libmbfl\filters", "ext\mbstring\libmbfl\mbfl",
343+
"ext\mbstring\libmbfl\nls", "ext\morton", "ext\mysqli", "ext\mysqlnd", "ext\opcache", "ext\opcache\jit",
344+
"ext\opcache\jit\ir", "ext\opcache\jit\tls", "ext\openssl", "ext\pcre", "ext\pcre\pcre2lib", "ext\pdo",
345+
"ext\pdo_mysql", "ext\pdo_sqlite", "ext\pecl-file_formats-yaml-2.2.5", "ext\phar", "ext\php-ext-zstd-0.15.2",
346+
"ext\php-leveldb-88071eb1b1eae96af043229104b9d813f7cbe40c", "ext\php-rdkafka-6.0.3", "ext\protobuf",
347+
"ext\protobuf\third_party", "ext\protobuf\third_party\utf8_range", "ext\random", "ext\reflection",
348+
"ext\simplexml", "ext\snappy", "ext\sockets", "ext\sodium", "ext\spl", "ext\sqlite3", "ext\standard",
349+
"ext\standard\libavifinfo", "ext\tokenizer", "ext\uri", "ext\uri\uriparser", "ext\uri\uriparser\src",
350+
"ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b", "ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src",
351+
"ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\base", "ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\coverage",
352+
"ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\debugger", "ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\develop",
353+
"ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\gcstats", "ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\lib",
354+
"ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\lib\maps", "ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\profiler",
355+
"ext\xdebug-b8bc9425390ca7745abdc715a359d2f369c1a07b\src\tracing", "ext\xml", "ext\xmlreader", "ext\xmlwriter",
356+
"ext\zip", "ext\zlib", "main", "main\streams", "sapi", "sapi\cli", "win32"
357+
)
358+
359+
foreach ($dir in $directories) {
360+
$path = Join-Path -Path $basePath -ChildPath $dir
361+
if (!(Test-Path $path)) {
362+
try {
363+
New-Item -Path $path -ItemType Directory -Force >> $log_file 2>&1
364+
} catch {
365+
pm-echo-error "Failed to create directory: $path" >> $log_file 2>&1
366+
pm-echo-error $_.Exception.Message >> $log_file 2>&1
367+
}
368+
}
369+
}
370+
}
371+
308372
function download-sdk {
309373
write-library "PHP SDK" $PHP_SDK_VER
310374

@@ -766,6 +830,12 @@ sdk-command "configure^`
766830
--with-pdo-sqlite^`
767831
--without-readline"
768832

833+
if ($PHP_VERSION_ID -ge 80500) {
834+
# Create all required extension directories, we do this manually because we exceeded Makefile length limit...
835+
create-extension-directories "$SOURCES_PATH\x64\Release_TS"
836+
(Get-Content -Path "$SOURCES_PATH\Makefile") -replace "^BUILD_DIRS_SUB=.*", "BUILD_DIRS_SUB=" | Set-Content -Path "$SOURCES_PATH\Makefile"
837+
}
838+
769839
write-compile
770840
sdk-command "nmake"
771841

0 commit comments

Comments
 (0)