# ISPC Language support

**URL:** https://discourse.cmake.org/t/ispc-language-support/673
**Category:** Development
**Created:** [February 21, 2020, 12:56am UTC](https://discourse.cmake.org/t/ispc-language-support/673 "2020-02-21T00:56:34Z")
**Posts on this page:** 1
**Showing post:** 8

<div class="post-metadata">

### Author: ![brad.king](https://discourse.cmake.org/user_avatar/discourse.cmake.org/brad.king/32/11_2.png) [@brad.king](https://discourse.cmake.org/u/brad.king)
#### Post date: [February 26, 2020, 12:01pm UTC](https://discourse.cmake.org/t/ispc-language-support/673/8 "2020-02-26T12:01:16Z")

</div>

This is touching on the general idea of domain-specific languages that produce C sources or headers. Lexer and parser generators like flex and bison are other examples. We do not currently have a first-class way to model that, so we typically go with the `add_custom_command`/`add_custom_target` approach.

I suggest using the custom command/target approach for ISPC for now. The custom commands can even be part of regular C or C++ targets because we already support generated header files in custom commands where the headers are then used to compile the C or C++ sources.

The headers generated by ISPC do not need to be explicitly considered private or public and do not need to be implicitly added to the `PUBLIC_HEADER` or `PRIVATE_HEADER` target properties at all. We don’t do that for normal C headers either. Projects can specify those explicitly or handle installation themselves via `install(FILES)`.

---

_[View the full topic](https://discourse.cmake.org/t/ispc-language-support/673)._
