discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ANN: GNUstep Windows MSVC Toolchain Scripts


From: Gerold Rupprecht
Subject: Re: ANN: GNUstep Windows MSVC Toolchain Scripts
Date: Sat, 20 Mar 2021 01:23:16 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

Hi Frederik,

I found the following,

https://devblogs.microsoft.com/cppblog/use-any-c-compiler-with-visual-studio/
<https://devblogs.microsoft.com/cppblog/use-any-c-compiler-with-visual-studio/>

from March 7th, 2017. Therein they promote the Windows subsystem for
Linux (WSL).

Gernot Klinger describes creating and using shared libraries with
different compilers on different operating systems,

https://gernotklingler.com/blog/creating-using-shared-libraries-different-compilers-different-operating-systems/
<https://gernotklingler.com/blog/creating-using-shared-libraries-different-compilers-different-operating-systems/>

where he states MSVC cannot directly link to a dll and that one needs a
so-called import library. He then suggests using CMake...

It seems interoperability is possible but they are not compatible at
this time.

Best regards,

Gerold

On 19.03.21 11:17, Frederik Seiffert wrote:
> Hi Gerold,
>
> To my knowledge GNUstep already works with GCC, also on Windows using MinGW. 
> GCC is not compatible with MSVC afaik, so it can’t be used for this project. 
> Or did you mean something else?
>
> Frederik
>
>
>> Am 19.03.2021 um 08:54 schrieb Gerold Rupprecht <geroldr@bluewin.ch>:
>>
>> Thank you Frederick  and David for your contributions to GNUstep. I do
>> hope you can also get it working with GCC. The automated testing will be
>> very helpful in the future.
>>
>> My congratulations,
>>
>> Gerold Rupprecht
>>
>> On 3/18/21 12:39 AM, Frederik Seiffert wrote:
>>> I am pleased to announce a new GNUstep project containing a set of scripts 
>>> to build GNUstep for Windows with Clang and libobjc2 using the Visual 
>>> Studio toolchain and MSVC ABI (i.e. without MinGW):
>>>
>>> https://github.com/gnustep/tools-windows-msvc
>>>
>>> The scripts currently build GNUstep Base with all dependencies, plus also 
>>> libdispatch. Invoking build.bat from an x86 or x64 Visual Studio developer 
>>> command prompt will build all libraries for that architecture for both 
>>> debug and release CRT libraries. Each library is either build directly in 
>>> the Windows shell (libobjc2, libiconv, libxml2, libxslt), or an MSYS2 Bash 
>>> shell is spawned for libraries requiring such an environment (libffi, 
>>> GNUstep Make/Base).
>>>
>>> I only found usable pre-built binaries for Pthread-win32 and ICU (and no 
>>> good way to integrate NuGet packages), so all the others are built from 
>>> source. Since building for MSVC is far from standard for projects coming 
>>> from Unix (but fortunately always supported in some way it seems), each of 
>>> them requires their very own special setup, and required a lot of massaging 
>>> to get everything working.
>>>
>>> The resulting set of DLLs should be usable to integrate Objective-C code in 
>>> basically any Windows app that is not using MinGW, using either clang or 
>>> clang-cl to build ObjC code. The Readme contains some info on the required 
>>> compiler and linker flags. Hopefully down the line we can also get other 
>>> GNUstep libraries on board as to offer a more complete GNUstep package for 
>>> Windows MSVC.
>>>
>>> (I also took a brief stab at trying to build Objective-C code in Visual 
>>> Studio, but unfortunately it adds a /TP flag forcing clang-cl to treat the 
>>> input as C++ (just like CMake). I’m guessing there are ways around this as 
>>> WinObjC was able to integrate ObjC files in VS, which we can hopefully 
>>> figure out some time.)
>>>
>>> While many tests in Base are still failing for various reasons, I plan on 
>>> spending more time on this in the coming months and will also try to add 
>>> MSVC to the Travis CI setup so we can ensure the configuration stays 
>>> supported. I already set up CI via GitHub Actions for the scripts 
>>> themselves (not running any tests atm.). (And btw. GitHub Actions runners 
>>> seem *much* faster than Travis CI.)
>>>
>>> Thank you all and especially David for helping me get this working, and 
>>> bearing with me through all my messages to the mailing list on this topic 
>>> over the last year! I’m looking forward to see what comes out of this 
>>> effort.
>>>
>>> Frederik
>>>
>>>
>> -- 
>> Gerold Rupprecht
>> 10, rue Louis-Curval
>> CH-1206 Genève, Suisse
>>
>> Fixed: +41 (0) 22 347 73 96
>> Mobile: +41 (0) 79 914 29 52
>>
>> Blog: https://geneva-observer.blogspot.ch/
>>
>> GPG Key ID DFA0A4D4 I prefer encrypted mail.
>>
>> If you have not yet begun using encrypted email, you may find the following 
>> link useful,
>> https://emailselfdefense.fsf.org/en/
>>
>>
-- 
Gerold Rupprecht 
10, rue Louis-Curval
CH-1206 Genève, Suisse

Fixed: +41 (0) 22 347 73 96
Mobile: +41 (0) 79 914 29 52

Blog: https://geneva-observer.blogspot.ch/

GPG Key ID DFA0A4D4 I prefer encrypted mail.

If you have not yet begun using encrypted email, you may find the following 
link useful,
https://emailselfdefense.fsf.org/en/

Attachment: geroldr.vcf
Description: Vcard


reply via email to

[Prev in Thread] Current Thread [Next in Thread]