YCM-FAQ(7) | YCM | YCM-FAQ(7) |
NAME¶
ycm-faq - YCM FAQ
YCM FAQ¶
- •
- •
- •
- •
- •
- 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.
- •
- •
- •
COPYRIGHT¶
Copyright 2012-2021 Istituto Italiano di Tecnologia (IIT)
November 5, 2023 | 0.13. |