Annotation of embedaddon/curl/docs/INSTALL.cmake, revision 1.1.1.1

1.1       misho       1:                                   _   _ ____  _
                      2:                               ___| | | |  _ \| |
                      3:                              / __| | | | |_) | |
                      4:                             | (__| |_| |  _ <| |___
                      5:                              \___|\___/|_| \_\_____|
                      6: 
                      7:                                 How To Compile with CMake
                      8: 
                      9: Building with CMake
                     10: ==========================
                     11:    This document describes how to compile, build and install curl and libcurl
                     12:    from source code using the CMake build tool. To build with CMake, you will
                     13:    of course have to first install CMake.  The minimum required version of
                     14:    CMake is specified in the file CMakeLists.txt found in the top of the curl
                     15:    source tree. Once the correct version of CMake is installed you can follow
                     16:    the instructions below for the platform you are building on.
                     17: 
                     18:    CMake builds can be configured either from the command line, or from one
                     19:    of CMake's GUI's.
                     20: 
                     21: Current flaws in the curl CMake build
                     22: =====================================
                     23: 
                     24:    Missing features in the cmake build:
                     25: 
                     26:    - Builds libcurl without large file support
                     27:    - Does not support all SSL libraries (only OpenSSL, WinSSL, DarwinSSL, and
                     28:      mbed TLS)
                     29:    - Doesn't build with SCP and SFTP support (libssh2) (see issue #1155)
                     30:    - Doesn't allow different resolver backends (no c-ares build support)
                     31:    - No RTMP support built
                     32:    - Doesn't allow build curl and libcurl debug enabled
                     33:    - Doesn't allow a custom CA bundle path
                     34:    - Doesn't allow you to disable specific protocols from the build
                     35:    - Doesn't find or use krb4 or GSS
                     36:    - Rebuilds test files too eagerly, but still can't run the tests
                     37:    - Doesn't detect the correct strerror_r flavor when cross-compiling (issue #1123)
                     38: 
                     39: 
                     40: Command Line CMake
                     41: ==================
                     42:    A CMake build of curl is similar to the autotools build of curl. It
                     43:    consists of the following steps after you have unpacked the source.
                     44: 
                     45:     1. Create an out of source build tree parallel to the curl source
                     46:        tree and change into that directory
                     47: 
                     48:     $ mkdir curl-build
                     49:     $ cd curl-build
                     50: 
                     51:     2. Run CMake from the build tree, giving it the path to the top of
                     52:        the curl source tree.  CMake will pick a compiler for you. If you
                     53:        want to specify the compile, you can set the CC environment
                     54:        variable prior to running CMake.
                     55: 
                     56:     $ cmake ../curl
                     57:     $ make
                     58: 
                     59:     3. Install to default location:
                     60: 
                     61:     $ make install
                     62: 
                     63:     (The test suite does not work with the cmake build)
                     64: 
                     65: ccmake
                     66: =========
                     67:      CMake comes with a curses based interface called ccmake.  To run ccmake on
                     68:      a curl use the instructions for the command line cmake, but substitute
                     69:      ccmake ../curl for cmake ../curl.  This will bring up a curses interface
                     70:      with instructions on the bottom of the screen. You can press the "c" key
                     71:      to configure the project, and the "g" key to generate the project. After
                     72:      the project is generated, you can run make.
                     73: 
                     74: cmake-gui
                     75: =========
                     76:      CMake also comes with a Qt based GUI called cmake-gui. To configure with
                     77:      cmake-gui, you run cmake-gui and follow these steps:
                     78:         1. Fill in the "Where is the source code" combo box with the path to
                     79:         the curl source tree.
                     80:         2. Fill in the "Where to build the binaries" combo box with the path
                     81:         to the directory for your build tree, ideally this should not be the
                     82:         same as the source tree, but a parallel directory called curl-build or
                     83:         something similar.
                     84:         3. Once the source and binary directories are specified, press the
                     85:         "Configure" button.
                     86:         4. Select the native build tool that you want to use.
                     87:         5. At this point you can change any of the options presented in the
                     88:         GUI.  Once you have selected all the options you want, click the
                     89:         "Generate" button.
                     90:         6. Run the native build tool that you used CMake to generate.

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