@@ -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+
308372function 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+
769839write-compile
770840sdk- command " nmake"
771841
0 commit comments