How do I list the defined make targets from the command line?

后端 未结 3 1254
后悔当初
后悔当初 2021-02-02 06:49

I feel almost silly for asking this but I couldn\'t find anything on this...

Suppose I have a cmake project containing a number of targets: libraries, executables, exter

相关标签:
3条回答
  • 2021-02-02 07:38

    For Makefile generator build environments you could use

    cmake --build . --target help
    

    And there is the graphical output solution (example found here):

    cmake --graphviz=test.graph 
    dotty test.graph
    

    See also Generating Dependency Graphs with CMake and CMake Graphviz Output Cleaner.

    If you don't have dotty installed, you can still make the target dependencies visible with enabling GLOBAL_DEPENDS_DEBUG_MODE in your CMakeLists.txt:

    set_property(GLOBAL PROPERTY GLOBAL_DEPENDS_DEBUG_MODE 1)
    

    The disadavantage here is that you can't trigger it from the command line. It will always show on stderr when generating the make environment.

    References

    • How can I get the list of dependencies of cmake target?
    • Internet Archive: "CMake: list of targets"
    0 讨论(0)
  • 2021-02-02 07:44

    We may get all targets of the generated Makefile, as @Florian and @Olivia Stork answered.

    However, people may just looking for explicitly declared targets in CMakeLists.txt . Targets like "all" and "clean" may not be what people is interested in.

    Thus, they can simply query "Built target" in the output of make.

    i.e.

    cd ~/work/my_project
    mkdir build && cd build && cmake ..
    make -j4 > log.txt 2>&1
    grep 'Built target' log.txt | awk '{print $4}'
    
    0 讨论(0)
  • 2021-02-02 07:50

    I think you might be looking for the command make help.

    When I run make help (after running cmake ..) I get the following output:

    The following are some of the valid targets for this Makefile:
    ... all (the default if no target is provided)
    ... clean
    ... depend
    etc
    

    You could also read the Makefile that cmake auto-generates for you.

    0 讨论(0)
提交回复
热议问题