What is the meaning of the File() command in CMake?

CMake is a build system generator that allows us to configure, build, and test projects. Among its many commands and functions, the file() command plays a crucial role in file-related operations within scripts. In this Answer, we’ll delve into the meaning and usage of the file() command in CMake.

Note: To learn more about CMake, visit the Modern CMake for C++ course on Educative.

Use cases

The CMake’s file() command is a versatile tool for manipulating files, directories, and file properties within CMake scripts. It provides a wide range of functionalities, which are listed below:

  • Reading file contents

  • Writing to files

  • Creating directories

  • Setting file permissions

  • Retrieving file size

  • Manipulating file properties

Let’s explore some common use cases of the file() command with some coding examples.

Reading and writing

Consider the code below:

file(READ "example.txt" content)
message("File contents: ${content}")

This can be explained as follows:

  • Line 1: We use the file() method to read the example.txt file’s content.

  • Line 2: We display the contents of the file.

This illustrates how files can be read. To write to files, replace the code in the script with the following and run again:

file(WRITE "output.txt" "Hello, World!")
file(READ "output.txt" content)
message("File contents: ${content}")

The first line writes to a new file output.txt with the file() method, which we then read and display.

Creating directories

We can also create directories using this method. Replace the code in the script above with the following code:

file(MAKE_DIRECTORY "my_dir")

Now enter ls in the terminal, and we can see the new directory my_dir created.

File size

Similarly, we can also display the size of a specific file with the use of SIZE. Replace the code in the script to the one below:

file(SIZE "example.txt" size)
message("File size: ${content}")

Conclusion

To conclude, the file() command in CMake is used for performing file-related operations within CMake scripts. By mastering the usage of the file() command, we can streamline our build processes and ensure smooth configurations in CMake.


Free Resources

Copyright ©2025 Educative, Inc. All rights reserved