Annotation of embedaddon/curl/projects/README, revision 1.1.1.1

1.1       misho       1: Building via IDE Project Files
                      2: ==============================
                      3: 
                      4:    This document describes how to compile, build and install curl and libcurl
                      5:    from sources using an IDE based development tool such as Visual Studio.
                      6: 
                      7:    Project files are currently available for Visual C++ v6.0 to v15.0. The
                      8:    following directory structure has been used to cater for this:
                      9: 
                     10:    somedirectory\
                     11:     |_curl
                     12:       |_projects
                     13:         |_<platform>
                     14:           |_<ide>
                     15:             |_lib
                     16:             |_src
                     17: 
                     18:    This structure allows for side-by-side compilation of curl on the same
                     19:    machine using different versions of a given compiler (for example VC8, VC9
                     20:    and VC10) and allows for your own application or product to be compiled
                     21:    against those variants of libcurl for example.
                     22: 
                     23:    Note: Typically this side-by-side compilation is generally only required
                     24:    when a library is being compiled against dynamic runtime libraries.
                     25: 
                     26: Dependencies
                     27: ============
                     28: 
                     29:    The projects files also support build configurations that require third
                     30:    party dependencies such as OpenSSL, wolfSSL and SSH2. If you wish to support
                     31:    these, you will also need to download and compile those libraries as well.
                     32: 
                     33:    To support compilation of these libraries using different versions of
                     34:    compilers, the following directory structure has been used for both the
                     35:    output of curl and libcurl as well as these dependencies.
                     36: 
                     37:    somedirectory\
                     38:     |_curl
                     39:     | |_ build
                     40:     |    |_<architecture>
                     41:     |      |_<ide>
                     42:     |        |_<configuration>
                     43:     |          |_lib
                     44:     |          |_src
                     45:     |
                     46:     |_openssl
                     47:     | |_ build
                     48:     |    |_<architecture>
                     49:     |      |_VC <version>
                     50:     |        |_<configuration>
                     51:     |
                     52:     |_libssh2
                     53:       |_ build
                     54:          |_<architecture>
                     55:            |_VC <version>
                     56:              |_<configuration>
                     57: 
                     58:    As OpenSSL and wolfSSL don't support side-by-side compilation when using
                     59:    different versions of Visual Studio, build helper batch files have been
                     60:    provided to assist with this. Please run "build-openssl -help" and/or
                     61:    "build-wolfssl -help" for usage details.
                     62: 
                     63: Building with Visual C++
                     64: ========================
                     65: 
                     66:    To build with VC++, you will of course have to first install VC++ which is
                     67:    part of Visual Studio.
                     68: 
                     69:    If you are building with VC6 then you will also need the February 2003
                     70:    Edition of the Windows Platform SDK which can be downloaded from:
                     71: 
                     72:     https://www.microsoft.com/en-us/download/details.aspx?id=12261
                     73: 
                     74:    If you require support for Internationalized Domain Names via Windows IDN
                     75:    then you will need either:
                     76: 
                     77:     * Microsoft Windows SDK Update for Windows Vista:
                     78:       https://www.microsoft.com/en-us/download/details.aspx?id=23719
                     79: 
                     80:     * Microsoft Visual Studio 2010 or above
                     81: 
                     82:    Once you have VC++ installed you should launch the application and open one
                     83:    of the solution or workspace files.
                     84: 
                     85:    Whilst files are provided for both libcurl and the curl command line tool as
                     86:    well as a configuration that includes both, it is recommend that you use the
                     87:    all-in-one configuration.
                     88: 
                     89: Running DLL based configurations
                     90: ================================
                     91: 
                     92:    If you are a developer and plan to run the curl tool from Visual Studio (eg
                     93:    you are debugging) with any third-party libraries (such as OpenSSL, wolfSSL
                     94:    or LibSSH2) then you will need to add the search path of these DLLs to the
                     95:    configuration's PATH environment. To do that:
                     96: 
                     97:     * Open the 'curl-all.sln' or 'curl.sln' solutions
                     98: 
                     99:     * Right-click on the 'curl' project and select Properties
                    100: 
                    101:     * Navigate to 'Configuration Properties > Debugging > Environment'
                    102: 
                    103:     * Add PATH='Path to DLL';C:\Windows\system32;C:\Windows;
                    104:                C:\Windows\System32\Wbem
                    105: 
                    106:    ... where 'Path to DLL` is the configuration specific path. For example the
                    107:    following configurations in Visual Studio 2010 might be:
                    108: 
                    109:    DLL Debug - DLL OpenSSL (Win32):
                    110:    PATH=..\..\..\..\..\openssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
                    111:         C:\Windows;C:\Windows\System32\Wbem
                    112: 
                    113:    DLL Debug - DLL OpenSSL (x64):
                    114:    PATH=..\..\..\..\..\openssl\build\Win64\VC10\DLL Debug;C:\Windows\system32;
                    115:         C:\Windows;C:\Windows\System32\Wbem
                    116: 
                    117:    DLL Debug - DLL wolfSSL (Win32):
                    118:    PATH=..\..\..\..\..\wolfssl\build\Win32\VC10\DLL Debug;C:\Windows\system32;
                    119:         C:\Windows;C:\Windows\System32\Wbem
                    120: 
                    121:    DLL Debug - DLL wolfSSL (x64):
                    122:    PATH=..\..\..\..\..\wolfssl\build\Win64\VC10\DLL Debug;C:\Windows\system32;
                    123:         C:\Windows;C:\Windows\System32\Wbem
                    124: 
                    125:    If you are using a configuration that uses multiple third-party library DLLs
                    126:    (such as DLL Debug - DLL OpenSSL - DLL LibSSH2) then 'Path to DLL' will need
                    127:    to contain the path to both of these.
                    128: 
                    129: Notes
                    130: =====
                    131: 
                    132:    The following keywords have been used in the directory hierarchy:
                    133: 
                    134:    <platform>      - The platform (For example: Windows)
                    135:    <ide>           - The IDE (For example: VC6, VC10, BCC5)
                    136:    <architecture>  - The platform architecture (For example: Win32, Win64)
                    137:    <configuration> - The target configuration (For example: DLL Debug,
                    138:                      LIB Release - LIB OpenSSL)
                    139: 
                    140:    If you are using the source code from the git repository, rather than a
                    141:    release archive or nightly build, you will need to generate the project
                    142:    files. Please run "generate -help" for usage details.
                    143: 
                    144:    Should you wish to help out with some of the items on the TODO list, or
                    145:    find bugs in the project files that need correcting, and would like to
                    146:    submit updated files back then please note that, whilst the solution files
                    147:    can be edited directly, the templates for the project files (which are
                    148:    stored in the git repositoty) will need to be modified rather than the
                    149:    generated project files that Visual Studio uses.
                    150: 
                    151: Legacy Windows and SSL
                    152: ======================
                    153: 
                    154:    Some of the project configurations allow the use of Schannel, the native
                    155:    SSL library in Windows which forms part of Windows SSPI. However, Schannel
                    156:    in Windows <= XP is unable to connect to servers that no longer support the
                    157:    legacy handshakes and algorithms used by those versions. If you will be
                    158:    using curl in one of those earlier versions of Windows you should choose
                    159:    another SSL backend such as OpenSSL.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>