Provided by: ycm-cmake-modules_0.13.0-3_all bug

NAME

       ycm-faq - YCM FAQ

YCM FAQ

Q      What does YCM means?

         A      Originally it was “YARP CMake Modules”, but the name this makes no longer sense, therefore it is
                now just YCM. See also YCM issue #40Q      How do I report a bug or request a feature?

         A      Open a new bug on our issue trackerQ      CMake  module  XXX  has  a  bug/missing feature in CMake version N and has been fixed/updated in
                CMake version N+1. Can you import the updated module in YCM and make it available  for  CMake  N
                and older?

         A      Yes, just open an issue or a merge request, but see the next question.

       •

         Q      Can you actually use any module from a newer version of CMake?

         A      No,  modules  using  features  that  have  been  added  in  CMake source code cannot be imported
                directly.  Nonetheless it is possible to supply a patched version of the module  that  does  not
                use these features.

       •

         Q      Why support CMake 3.12?

         A      YCM  was  historically  written  to support YARP, therefore the supported CMake versions are the
                same supported by YARP.  See YARP Supported Distributions for details.

       •

         Q      Can a YCM superbuild build the PackageName package?

         A      Probably it can, you will have to supply a BuildPackageName.cmake  file  with  the  instructions
                about  how  it  should  be  built.  You  can  use YCMEPHelper or ExternalProject to simplify the
                process. If PackageName is not written using CMake, writing  such  file  might  be  a  bit  more
                difficult, but it can be done.

       •

         Q      Why  using  ExternalProject  instead  of  using git submodules, git externals, svn externals, or
                similar?

         A      ExternalProject supports Git, Subversion, CVS, Mercurial, and zipped files, not just  git.  Also
                integrating  these  tools  in  a  CMake  build would require some work anyway, and would make is
                slower to create a new superbuild project, just writing a CMakeLists.txt file is a  lot  easier.
                Also  git  submodules  and  git  externals in an environment where users do not receive a proper
                training, introduce more issues than the ones they solve.

       •

         Q      The IncludeUrl module is just evil. It could be used to inject any code on your system.

         A      That’s why you can check the hash of the file included and why you don’t  usually  build  it  as
                root.  If  you don’t trust the source you shouldn’t even build the software without checking the
                source code, but that rarely happens. Also the IncludeUrl module is used only for the  bootstrap
                phase,  if  YCM  is  installed on your system, the bootstrap phase will just be skipped. In your
                code you can just use find_package(YCM REQUIRED) and avoid using it.

       •

         Q      Why is the bootstrap phases checking the hashes of the files included in my project?

       •

         A      The bootstrap phase also checks that the files used for the bootstrap phase itself are  updated,
                and warns the developer in order to make it easier to keep all the projects synchronized.

       •

         Q      How is YCM different from ECM (KDE extra cmake modules)?

         A      Conceptually  it’s  not much different except for support for older CMake releases and bootstrap
                phase. For some time YCM was also able to bootstrap ECM as well, in order to be able to use  ECM
                modules  without  installing  them.  This functionality has been removed for now, but might come
                back some time in the future.

       •

         Q      How is YCM different from catkin?

         A      catkin and  are very specific for working with ROS and add extra dependencies  to  your  project
                (i.e. python).  Also catkin does a lot of magic, and we didn’t like it when we tried it.

       •

         Q      How is YCM different from rosbuild ?

         A      rosbuild is deprecated, you should eventually consider using catkin instead.

       •

         Q      How is YCM different from qibuild?

         A      qibuild requires python. Also TODO

       •

         Q      How is YCM different from Buildyard

         A      We  were  not aware of Buildyard when we started writing YCM.  Some of the goals of the projects
                are very similar, but TODO

       •

         Q      How is YCM different from biicode

         A      TODO.

       •

         Q      How is YCM different from hunter

         A      TODO.

       •

         Q      How is YCM different from XXX

       •

         A      Probably we don’t know about it.

       •

         Q      I don’t get it, I don’t like YCM, I hate you.

       •

         A      Sorry.

COPYRIGHT

       Copyright 2012-2021 Istituto Italiano di Tecnologia (IIT)

0.13.                                             Nov 05, 2023                                        YCM-FAQ(7)