Annotation of embedaddon/curl/docs/INSTALL.cmake, revision 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>