Question

Is this variable always set to the directory containing the CMakeLists.txt file that I run cmake on?

For example, if I wish to run cmake on a CMakeLists.txt file that exists in the directory above my current directory, I would go: cmake ...

In this case, what is my CMAKE_SOURCE_DIR set to?

Was it helpful?

Solution

Assuming that you have 2 folders src and build where src contains your projects and build is the empty folder that you just created so you can deploy your out-of-tree build in it: CMAKE_SOURCE_DIR is the path to src where CMAKE_BINARY_DIR points to build.

Note that if you are doing an in-tree build, the 2 cache entries get the same value.

link: CMake Useful Variables .


EDIT

for further clarifications

<some location>/src/CMakeLists.txt ( so *src* is the root of your project )
<some location>/build

if you do something like

cd <some location>/build
cmake <some location>/src

you are making an out-of-tree build where CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR get different values

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top