Open emil-totev opened 1 year ago
I built this extension for Windows for different PHP versions against commit #b6c2883 Perhaps others will find this useful.
Here: https://github.com/mlazdans/php-firebird/releases/tag/1.1.1-b6c2883
@emil-totev I just released new Linux versions. Windows builds will follow next week.
@mlazdans Do you have a build environment for windows? Or did you build the extensions one by one? I'm looking for an automated build process.
I've got a messy lot of crude batch files (like 30 of them) to initialize dev environment for each PHP version (7.3, 7.4, 8.0, 8.1, 8.2 and 8.3) (following php-sdk) and build extension for Windows both TS and non-TS and 32-bit or 64-bit with Visual Studio.
Resulting SDK folder has become rather big (many GB).
Take a look: bat.zip
Hope it helps. Don't forget to change paths.
@mlazdans Thanks for your contribution. I tried the batch, but it doesn't work for me. Can give a short introduction. In my case the php-src folders were not created.
Set up php-sdk as described: https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2 Then, for example, run php82-init.bat. This should clone php 8.2 source (git should be in path or just adjust in .bat file). I assume you got Visual Studio set up already? Then try php83-build.bat. If something does not work follow the error message, adjust paths if needed.
I compiled 3.0.1 for all PHP versions: https://github.com/mlazdans/php-firebird/releases/tag/v3.0.1
I also created a pull request for Windows build scripts. I made them very compact comparing to previous attempt. @MartinKoeditz please check them out.
Here is some README
I did a quick test. Basically it looks good. TS builds are ok. But my NTS versions are not build. I get this error:
Bibliothek "F:\php-sdk\php8.1\vs16\x86\php-src\Release\php8.lib" und Objekt "F:\php-sdk\php8.1\vs16\x86\php-src\Release\php8.exp" werden erstellt.
Bibliothek "F:\php-sdk\php8.1\vs16\x86\php-src\Release\php_interbase.lib" und Objekt "F:\php-sdk\php8.1\vs16\x86\php-src\Release\php_interbase.exp" werden erstellt.
interbase.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__tsrm_get_ls_cache" in Funktion "__php_ibase_get_link_trans".
interbase.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__executor_globals_offset" in Funktion "__php_ibase_connect".
F:\php-sdk\php8.1\vs16\x86\php-src\Release\php_interbase.dll : fatal error LNK1120: 2 nicht aufgelöste Externe
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX86\x86\link.exe"": Rückgabe-Code "0x460"
Stop.
---------------------------------------------------------------------
PHP 8.1 build FAILED
---------------------------------------------------------------------
The error is the same for the other versions. Any idea?
Not 100% but maybe some Windows SDK regarding threading is missing? Perhaps anything else useful printed when you scroll up terminal?
@MartinKoeditz , @mlazdans Now PHP 8.3 is officially released, would it be possible to provide Linux and Windows builds for it?
Added Windows builds for PHP 8.3 : https://github.com/mlazdans/php-firebird/releases/tag/v3.0.1
It would be nice to have updated pre-compiled download versions for newer versions of PHP. Currently there is nothing for 8.1 on Windows, and nothing at all for 8.2 (I know it is still RC, but it is important for testing too).
Also it would be nice to have a general clarification whether these complied versions are compatible through minor PHP revisions (like 8.0.1 and 8.0.23, I think they are) and major PHP versions (like 8.0 and 8.1 and 8.2, I think they are not).