Skip to content

fatal error: config.h: No such file or directory #17

@samvv

Description

@samvv

I'm using the latest version of CMake on Arch Linux and I'm getting the following error:

$ cmake -B build -S . -G Ninja
[output omitted]
$ ninja -C build
ninja: Entering directory `build/'
[0/1] Re-running CMake...
-- Checking for module 'mpv'
--   Package 'mpv' not found
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/samvv/Projects/dvd_info/build
[2/9] Building C object CMakeFiles/dvd_info.dir/dvd_info.c.o
FAILED: CMakeFiles/dvd_info.dir/dvd_info.c.o 
/usr/bin/cc    -MD -MT CMakeFiles/dvd_info.dir/dvd_info.c.o -MF CMakeFiles/dvd_info.dir/dvd_info.c.o.d -o CMakeFiles/dvd_info.dir/dvd_info.c.o -c /home/samvv/Projects/dvd_info/dvd_info.c
/home/samvv/Projects/dvd_info/dvd_info.c:9:10: fatal error: config.h: No such file or directory
    9 | #include "config.h"
      |          ^~~~~~~~~~
compilation terminated.
[3/9] Building C object CMakeFiles/dvd_backup.dir/dvd_backup.c.o
FAILED: CMakeFiles/dvd_backup.dir/dvd_backup.c.o 
/usr/bin/cc    -MD -MT CMakeFiles/dvd_backup.dir/dvd_backup.c.o -MF CMakeFiles/dvd_backup.dir/dvd_backup.c.o.d -o CMakeFiles/dvd_backup.dir/dvd_backup.c.o -c /home/samvv/Projects/dvd_info/dvd_backup.c
/home/samvv/Projects/dvd_info/dvd_backup.c:22:10: fatal error: config.h: No such file or directory
   22 | #include "config.h"
      |          ^~~~~~~~~~
compilation terminated.
[4/9] Building C object CMakeFiles/dvd_copy.dir/dvd_copy.c.o
FAILED: CMakeFiles/dvd_copy.dir/dvd_copy.c.o 
/usr/bin/cc    -MD -MT CMakeFiles/dvd_copy.dir/dvd_copy.c.o -MF CMakeFiles/dvd_copy.dir/dvd_copy.c.o.d -o CMakeFiles/dvd_copy.dir/dvd_copy.c.o -c /home/samvv/Projects/dvd_info/dvd_copy.c
/home/samvv/Projects/dvd_info/dvd_copy.c:21:10: fatal error: config.h: No such file or directory
   21 | #include "config.h"
      |          ^~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.

I'm guessing that something changed again in CMake, requiring (according to the example in the docs):

configure_file("config.h.in" "config.h")
+include_directories("${CMAKE_CURRENT_BINARY_DIR}")

Alternatively one must use target_include_directories on every target.

If you want I can fire up a pull request to fix it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions