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)