# FetchContent / CMAKE\_MAKE\_PROGRAM issue

**URL:** https://discourse.cmake.org/t/fetchcontent-cmake-make-program-issue/2522
**Category:** Usage
**Created:** [January 12, 2021, 5:48pm UTC](https://discourse.cmake.org/t/fetchcontent-cmake-make-program-issue/2522 "2021-01-12T17:48:21Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.cmake.org/u/ben.boeckel)
#### Post date: [January 13, 2021, 8:36pm UTC](https://discourse.cmake.org/t/fetchcontent-cmake-make-program-issue/2522/6 "2021-01-13T20:36:33Z")

</div>

I think writing a CMake script which downloads ninja an places it somewhere would be best. See [how CMake does it for CI](https://gitlab.kitware.com/cmake/cmake/blob/master/.gitlab/ci/ninja.ps1) (in powershell, but CMake code is just less verbose). You can then do:

```cmake
cmake_minimum_required(VERSION X.Y)
if (NOT EXISTS "${CMAKE_SOURCE_DIR}/.build-tools/ninja.exe")
  execute_process(COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_SOURCE_DIR}/.build-tools/get-ninja.cmake")
endif ()
if (NOT CMAKE_MAKE_COMMAND AND CMAKE_GENERATOR MATCHES "Ninja")
  set(CMAKE_MAKE_COMMAND "${CMAKE_SOURCE_DIR}/.build-tools/ninja.exe" CACHE FILEPATH "")
endif ()
project(myproject)

```

Some error checking may be warranted.

---

_[View the full topic](https://discourse.cmake.org/t/fetchcontent-cmake-make-program-issue/2522)._
