On 25-Jun-16 10:44, Craig Scott wrote:
One of the slight wrinkles here is that the distinction between configure and generation times is now a little stronger due to generator expressions. In order to really understand generator expressions, you cannot really avoid getting your head around configure and generate being distinct parts of the process. Personally, I tend to gloss over the distinction when explaining things so as not to distract the reader, but if I'm explaining something to do with generator expressions, then the distinction has to be made and I deliberately use the terms /configure/ and /generation/ stages.
I'm not sure I understand the link between "generator expressions" and "confusing configure+generate stage". Do you mean "generator expressions" on "configure+generate stage" vs "build stage"?


Also, as Ruslo points out, cmake can be used like a front end to the build step proper (i.e. cmake --build ...). I still see this as the /build/ though, not a cmake-specific step per se. If you treated that as a cmake step, then one could argue the whole build is cmake because cmake can be used to invoke the test and package targets too. I doubt many people think this way, so personally I feel it is clearer to refer to the /build/ stage as simply that without bringing cmake into the terminology.
Okay, I agree. "cmake build step" sounds weird, it should be just "build step" which can be triggered by "cmake --build" command. Also to be pedantic: it's CTest for testing stage and CPack for packing stage, not CMake (or you mean CMake tools?).


So in summary, here's the set of terminology I use (hopefully similar to what others intuitively expect):

Workflow stages in general: cmake (or project setup) --> build --> test --> package

If talking about generator expressions: configure --> generate --> build --> test --> package
This one reminds me about ExternalProject_Add command. It has "Configure step" with "CONFIGURE_COMMAND". This is where "cmake -H. -B_builds" happens :)

So for now I see two choices:
* invent new name for configure+generate :) well, this seems like a huge overkill... * use words "configure" and "generate" interchangeably for command line cmake, depending on context, e.g.:
 * "you can add `-D` on __configure step__ to modify cache..."
* "you can add `-G Xcode` on __generate step__ to create Xcode project instead of Makefile..."

Ruslo




On Sat, Jun 25, 2016 at 5:02 PM, Eric Noulard <eric.noul...@gmail.com <mailto:eric.noul...@gmail.com>> wrote:

    Hi there,

    I'd like to give my opinion here.
    I agree that the fact that the cmake ui (qt or curse) makes it
    possible to separate configure from generate
    is an implementation detail. In fact one could perfectly decide
    that the "configure" step should "generate "
    each time it is run. Making it two-step save some time for big
    project but I have already seen people forgetting
    to generate and asking themselves why they didn't get any makefiles...

    Nevertheless from a user point of view explaining that there are
    different "time" because CMake is a buid system **generator** and
    not a build tool seems very important to me.

    Some action may be run during CMake time some may be done during
    Build time.
    For me CMake run is configure+generate.

    I did gave a tutorial which is now a bit outdated where I tried to
    picture this.
    See attached file or:
    https://github.com/TheErk/CMake-tutorial

    my 2 cents.

    2016-06-25 2:33 GMT+02:00 Ruslan Baratov via CMake
    <cmake@cmake.org <mailto:cmake@cmake.org>>:

        There is cmake **build** step: cmake --build _builds

        So in GUI it's:
         * cmake configure
         * cmake generate
         * IDE build (which you can do with cmake --build so it can be
        called "cmake build" step)

        in cmd:
         * cmake configure+generate
         * cmake build

        Also I can call it "cmake step" in docs about some C++
        project, but if the docs about cmake itself I think this term
        is too wide


        On 25-Jun-16 02:13, Craig Scott wrote:
        In documentation, blog articles, etc. I just call it the
        "cmake" step (or sometimes the "project setup" step if
        talking in a more project-wide sense). For many users, the
        separate configure and generate steps are somewhat of an
        implementation detail, so it makes more sense to give it a
        single term. I'm not aware of any generally accepted term,
        but the ones I use seem to be fairly easy to understand,
        especially for those new to CMake. YMMV.

        On Saturday, 25 June 2016, Ruslan Baratov via CMake
        <cmake@cmake.org <mailto:cmake@cmake.org>> wrote:

            On 24-Jun-16 23:49, Robert Maynard wrote:

                Please run the configure and generate steps by

            It's too long :)

            Also it doesn't express the fact that it's a single
            action, consider:
              "To add variables on configure and generate steps use '-D'"
              "Before running configure and generate steps note that
            old variables from cache can be used"
              etc.



                On Fri, Jun 24, 2016 at 4:40 PM, Ruslan Baratov
                <ruslan_bara...@yahoo.com> wrote:

                    On 24-Jun-16 23:25, Robert Maynard wrote:

                        cmake from the command line is still running
                        the two stages, it just
                        doesn't allow for feedback/input from the
                        user between the two stages.

                    Yes, I understand that. Question is about the
                    name of the step. I.e. when I
                    do write manual what should I choose
                       Please run configure step by: cmake -H. -B_builds
                    or
                       Please run generate step by: cmake -H. -B_builds
                    ?

                    May be both versions are correct? Or both incorrect?

                    Ruslo


                        On Fri, Jun 24, 2016 at 4:06 PM, Ruslan
                        Baratov via CMake
                        <cmake@cmake.org> wrote:

                            Hi,

                            I have a question about CMake
                            terminology. When we are using CMake GUI
                            there
                            are two buttons "Configure" and
                            "Generate", hence we have two stages:

                            1. Configure step, when we do configuring
                            project, effectively creating
                            file
                            with cache variables (which we can
                            modify) without really generating
                            native
                            tools files like Makefile/*.sln/etc.

                            2. Generate step, when we do generating
                            project using file with cache
                            variables, i.e. create those
                            Makefile/*.sln/etc.

                            The question is about command line
                            version of CMake. Since we do creating
                            file with cache and generate native tools
                            files in one step what is the
                            right term? Is it a configure step
                            because we read user's '-D' and create
                            cache file?  Is it a generate step
                            because native tools files generated
                            at
                            the end? May be there is a third name to
                            describe the fact that it's
                            configure+generate step?

                            Thanks, Ruslo
                            --

                            Powered by www.kitware.com
                            <http://www.kitware.com>

                            Please keep messages on-topic and check
                            the CMake FAQ at:
                            http://www.cmake.org/Wiki/CMake_FAQ

                            Kitware offers various services to
                            support the CMake community. For more
                            information on each offering, please visit:

                            CMake Support:
                            http://cmake.org/cmake/help/support.html
                            CMake Consulting:
                            http://cmake.org/cmake/help/consulting.html
                            CMake Training Courses:
                            http://cmake.org/cmake/help/training.html

                            Visit other Kitware open-source projects at
                            http://www.kitware.com/opensource/opensource.html

                            Follow this link to subscribe/unsubscribe:
                            http://public.kitware.com/mailman/listinfo/cmake




--
            Powered by www.kitware.com <http://www.kitware.com>

            Please keep messages on-topic and check the CMake FAQ at:
            http://www.cmake.org/Wiki/CMake_FAQ

            Kitware offers various services to support the CMake
            community. For more information on each offering, please
            visit:

            CMake Support: http://cmake.org/cmake/help/support.html
            CMake Consulting: http://cmake.org/cmake/help/consulting.html
            CMake Training Courses:
            http://cmake.org/cmake/help/training.html

            Visit other Kitware open-source projects at
            http://www.kitware.com/opensource/opensource.html

            Follow this link to subscribe/unsubscribe:
            http://public.kitware.com/mailman/listinfo/cmake



-- Craig Scott
        Melbourne, Australia
        http://crascit.com



        --

        Powered by www.kitware.com <http://www.kitware.com>

        Please keep messages on-topic and check the CMake FAQ at:
        http://www.cmake.org/Wiki/CMake_FAQ

        Kitware offers various services to support the CMake
        community. For more information on each offering, please visit:

        CMake Support: http://cmake.org/cmake/help/support.html
        CMake Consulting: http://cmake.org/cmake/help/consulting.html
        CMake Training Courses: http://cmake.org/cmake/help/training.html

        Visit other Kitware open-source projects at
        http://www.kitware.com/opensource/opensource.html

        Follow this link to subscribe/unsubscribe:
        http://public.kitware.com/mailman/listinfo/cmake




-- Eric




--
Craig Scott
Melbourne, Australia
http://crascit.com


-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to