# DEPFILEs generation for GHS compiler

**URL:** https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601
**Category:** Usage
**Created:** [September 6, 2024, 6:34pm UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601 "2024-09-06T18:34:03Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![mykhayloscherbak](https://discourse.cmake.org/user_avatar/discourse.cmake.org/mykhayloscherbak/32/5003_2.png) [@mykhayloscherbak](https://discourse.cmake.org/u/mykhayloscherbak)
#### Post date: [September 6, 2024, 6:34pm UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601/1 "2024-09-06T18:34:03Z")

</div>

Hi!

I’m trying to convert a makefile GHS project to a Cmake one and get issues with .h files dependencies. As far as I understand GHS(201355) does not support .d files generation. Existing makefile project uses gcc as a workaround to generate .d files. How can I do such a trick (or some other workaround) in Cmake? I do not want to add .h files manually.

BR,  
Mike

---

<div class="post-metadata">

### Author: ![ClausKlein](https://discourse.cmake.org/user_avatar/discourse.cmake.org/clausklein/32/352_2.png) [@ClausKlein](https://discourse.cmake.org/u/ClausKlein)
#### Post date: [September 6, 2024, 7:31pm UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601/2 "2024-09-06T19:31:42Z")

</div>

### We used this workaround for ninja generator:

```cmake
# ---------------------------------------------------------------------------
# general user options for ninja and ghs compiler
# ---------------------------------------------------------------------------
option(CMAKE_C_DEPFILE_EXTENSION_REPLACE "name depend files as main.d instead of main.c.d" YES)
option(CMAKE_C_OUTPUT_EXTENSION_REPLACE "name object files as main.o instead of main.c.o" YES)
option(CMAKE_CXX_DEPFILE_EXTENSION_REPLACE "name depend files as main.d instead of main.cpp.d" YES)
option(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE "name object files as main.o instead of main.cpp.o" YES)

option(CMAKE_DEPENDS_IN_PROJECT_ONLY "do not use system header files" YES)
if(CMAKE_DEPENDS_IN_PROJECT_ONLY)
  set(CMAKE_DEPFILE_FLAGS_C "-MMD" CACHE STRING "dependency flag" FORCE)
  set(CMAKE_DEPFILE_FLAGS_CXX "-MMD" CACHE STRING "dependency flag" FORCE)
else()
  set(CMAKE_DEPFILE_FLAGS_C "-MD" CACHE STRING "dependency flag" FORCE)
  set(CMAKE_DEPFILE_FLAGS_CXX "-MD" CACHE STRING "dependency flag" FORCE)
endif()

```

---

<div class="post-metadata">

### Author: ![marc.chevrier](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/m/ecb155/32.png) [@marc.chevrier](https://discourse.cmake.org/u/marc.chevrier)
#### Post date: [September 6, 2024, 9:34pm UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601/3 "2024-09-06T21:34:10Z")

</div>

You can try to define variable `CMAKE_<LANG>_DEPENDS_EXTRA_COMMANDS` for the dependencies generation.

Take a look at the file `Compiler/CUDA.cmake` for a practical example.

---

<div class="post-metadata">

### Author: ![marc.chevrier](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/m/ecb155/32.png) [@marc.chevrier](https://discourse.cmake.org/u/marc.chevrier)
#### Post date: [September 6, 2024, 9:35pm UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601/4 "2024-09-06T21:35:27Z")

</div>

This suggestion does not solve the problem exposed.

---

<div class="post-metadata">

### Author: ![ClausKlein](https://discourse.cmake.org/user_avatar/discourse.cmake.org/clausklein/32/352_2.png) [@ClausKlein](https://discourse.cmake.org/u/ClausKlein)
#### Post date: [September 7, 2024, 7:36am UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601/5 "2024-09-07T07:36:42Z")

</div>

May be, with our **GHS** compiler we had only the problem with the dependency file name generated : `file.c -> file.d` was generated from compiler and not used from `ninja`.

---

<div class="post-metadata">

### Author: ![mykhayloscherbak](https://discourse.cmake.org/user_avatar/discourse.cmake.org/mykhayloscherbak/32/5003_2.png) [@mykhayloscherbak](https://discourse.cmake.org/u/mykhayloscherbak)
#### Post date: [October 8, 2024, 9:00am UTC](https://discourse.cmake.org/t/depfiles-generation-for-ghs-compiler/11601/6 "2024-10-08T09:00:01Z")

</div>

Thanks. This helped.
