| Building via IDE Project Files |
| ============================== |
| |
| This document describes how to compile, build and install curl and libcurl |
| from sources using an IDE based development tool such as Visual Studio. |
| |
| Project files are currently available for Visual C++ v6.0 to v12.0. The |
| following directory structure has been used to cater for this: |
| |
| somedirectory\ |
| |_curl |
| |_projects |
| |_<platform> |
| |_<ide> |
| |_lib |
| |_src |
| |
| This structure allows for side-by-side compilation of curl on the same |
| machine using different versions of a given compiler (for example VC8, VC9 |
| and VC10) and allows for your own application or product to be compiled |
| against those variants of libcurl for example. |
| |
| Note: Typically this side-by-side compilation is generally only required |
| when a library is being compiled against dynamic runtime libraries. |
| |
| Dependencies |
| ============ |
| |
| The projects files also support build configurations that require third |
| party dependencies such as OpenSSL and SSH2. If you wish to support these, |
| you will also need to download and compile those libraries as well. |
| |
| To support compilation of these libraries using different versions of |
| compilers, the following directory structure has been used for both the |
| output of curl and libcurl as well as these dependencies. |
| |
| somedirectory\ |
| |_curl |
| | |_ build |
| | |_<architecture> |
| | |_<ide> |
| | |_<configuration> |
| | |_lib |
| | |_src |
| | |
| |_openssl |
| | |_ build |
| | |_<architecture> |
| | |_VC <version> |
| | |_<configuration> |
| | |
| |_libssh2 |
| |_ build |
| |_<architecture> |
| |_VC <version> |
| |_<configuration> |
| |
| As OpenSSL doesn't support side-by-side compilation when using different |
| versions of Visual Studio a build helper batch file has been provided to |
| assist with this. Please run "build-openssl -help" for usage details. |
| |
| Building with Visual C++ |
| ======================== |
| |
| To build with VC++, you will of course have to first install VC++ which is |
| part of Visual Studio. |
| |
| If you are building with VC6 then you will also need the February 2003 |
| Edition of the Windows Platform SDK which can be downloaded from: |
| |
| http://www.microsoft.com/en-us/download/details.aspx?id=12261 |
| |
| If you require support for Internationalized Domain Names via Windows IDN |
| then you will need either: |
| |
| * Microsoft Internationalized Domain Name (IDN) Mitigation APIs: |
| http://www.microsoft.com/en-us/download/details.aspx?id=734 |
| |
| * Microsoft Windows SDK Update for Windows Vista: |
| http://www.microsoft.com/en-us/download/details.aspx?id=23719 |
| |
| * Microsoft Visual Studio 2010 or above |
| |
| Once you have VC++ installed you should launch the application and open one |
| of the solution or workspace files. |
| |
| Whilst files are provided for both libcurl and the curl command line tool as |
| well as a configuration that includes both, it is recommend that you use the |
| all-in-one configuration. |
| |
| Notes |
| ===== |
| |
| The following keywords have been used in the directory hierarchy: |
| |
| <platform> - The platform (For example: Windows) |
| <ide> - The IDE (For example: VC6, VC10, BCC5) |
| <architecture> - The platform architecture (For example: Win32, Win64) |
| <configuration> - The target configuration (For example: DLL Debug, |
| LIB Release - LIB OpenSSL) |
| |
| If you are using the source code from the git repository, rather than a |
| release archive or nightly build, you will need to generate the project |
| files. Please run "generate -help" for usage details. |
| |
| Should you wish to help out with some of the items on the TODO list, or |
| find bugs in the project files that need correcting, and would like to |
| submit updated files back then please note that, whilst the solution files |
| can be edited directly, the templates for the project files (which are |
| stored in the git repositoty) will need to be modified rather than the |
| generated project files that Visual Studio uses. |
| |
| TODO |
| ==== |
| |
| These project files are a recent addition to the curl source code and as such |
| are not 100% complete. This is a list of things that are still todo: |
| |
| * Support zlib |
| * Use of static runtime libraries |
| * Generate *.vcxproj.filters files for VC10, VC11 and VC12 |
| * Add the Test Suite components |
| * Support for other development IDEs |
| |
| Any additional help would be appreciated ;-) |