cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Visual Studio Project Files

From: Pierre Joye <pierre.php_at_gmail.com>
Date: Mon, 14 Apr 2014 14:59:28 +0200

hi Steve,

On Sat, Apr 5, 2014 at 7:34 PM, Steve Holme <steve_holme_at_hotmail.com> wrote:
> Dear friends,
>
> I have been saying on here for a long, long time that I would share my Visual Studio project files (Though I did email a few copies out last year) and finally after some rework of these files, settings and re-organisation of the directory structure I have pushed an introductory commit of said files - commit 11025613b9.
>
> Currently we provide very limited Visual Studio IDE support for building curl and libcurl via the files in the VS directory – currently only VC6 (aka Visual Studio 6 / 98) and VC8 (aka Visual Studio 2005) so even this support is quite old ☹
>
> Furthermore these files only support 32-bit Release and Debug builds without any support for 64-bit builds (possible in VC8 and above) or any of the third-party libraries we integrated with (such as OpenSSL, SSPI and SChannel, libSSH2, etc…).
>
> Unfortunately, my files aren’t that extensive yet but they do support:
>
> * 32-bit and 64-bit builds
> * Generation of libcurl In .lib an .dll form
> * OpenSSL
> * SSPI - Both SSPI authentication and S-Channel SSL
> * libSSH2
>
> As such there are some 40 build configurations in these files.
>
> I have only committed my VC8 files and will continue to work on other versions of Visual Studio as we move forward with the v7.37.0 release - however, please note that it did take me all of last night and most of today to rework, template and test the VC8 files so progress may be a little slow :(
>
> Note: Visual Studio project files comprise of a Solution (aka Workspace in VC6) which can then be used to link to Project files (which contain a list of source files and the various compilation, pre-processor and linker settings). As we would prefer not to maintain the list of source files as and when those .c and .h are renamed, new files added or old files deleted I have started to template the Project files. As such there are no .dsp, .vcproj or .vcxproj files as part of this work. Instead I have created .tmpl files which are used to generate the Project files. I have written a Windows batch file to do this, which I have attached as a patch file for anyone interested, and hope to be able to add the generation to the release process - not too sure on the best way to do that at the moment :(
>
> Things that I would like to do next:
>
> * Add VC6, VC7, VC7.1, VC9, VC10, VC11 and VC12 variants
> * Update the release process to generate the project files from the templates
> * Integrate with other third-party libraries such as zlib and WinIDN
> * Remove the older VS folder base files
> * Get the test suite integrated and compiling under Visual Studio
>
> Any ideas, suggestions or comment are as always much appreciated ;-)

Your effort to improve windows developers experience is greatly
appreciated, quite some work to deal with all different project files
format versions, options, etc.

However I have some doubts about the long term maintenance of these
files. It is a very time consuming task to keep every single version
working, and the list keeps growing.

I wonder if it would be better to focus on the makefiles and document
how to use visual studio with curl (lib and exe) instead. It is
relatively easy to generate project files using the PDB for debugging
purposes f.e.:

http://blogs.msdn.com/b/vcblog/archive/2014/01/15/creating-a-c-project-from-a-pdb-file-pdb-project-version-2.0.aspx

Debugging an application relying on libcurl is even easier as it only
requires to add the PDB files to the settings.

Please note that I am not against having them but only worrying a bit
about having these files lying around, but not working, I see so many
of them out there ;).

Cheers,

-- 
Pierre
@pierrejoye | http://www.libgd.org
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2014-04-14