1
0
mirror of synced 2024-11-10 06:58:54 +01:00
modern-cmake/chapters/projects/download.md

13 lines
991 B
Markdown
Raw Normal View History

2020-06-09 16:59:07 +02:00
# Downloading Projects
2018-03-29 19:30:00 +02:00
2018-03-30 15:15:37 +02:00
## Downloading Method: build time
2018-03-29 19:30:00 +02:00
2020-06-09 16:59:07 +02:00
Until CMake 3.11, the primary download method for packages was done at build time. This causes several issues; most important of which is that `add_subdirectory` doesn't work on a file that doesn't exist yet! The built-in tool for this, ExternalProject, has to work around this by doing the build itself. (It can, however, build non-CMake packages as well).[^1]
2018-03-29 19:30:00 +02:00
2018-03-30 15:15:37 +02:00
[^1]: Note that ExternalData is the tool for non-package data.
2018-03-29 19:30:00 +02:00
2018-03-30 15:15:37 +02:00
## Downloading Method: configure time
2018-03-29 19:30:00 +02:00
2018-03-30 15:15:37 +02:00
If you prefer configure time, see the [Crascit/DownloadProject](https://github.com/Crascit/DownloadProject) repository for a drop-in solution. Submodules work so well, though, that I've discontinued most of the downloads for things like GoogleTest and moved them to submodules. Auto downloads are harder to mimic if you
2020-08-04 00:16:52 +02:00
don't have internet access, and they are often implemented in the build directory, wasting time and space if you have multiple build directories.