CMake putting build files in source directory

cmake

I am very new to CMake. A friend wrote a simple CMakeLists.txt for the project I am coding myself. I am using svn and have just checked out an old version on the same machine into a different folder. Now, in the original source directory (where CMakeLists.txt is located) I create the directory 'build', cd into there, and for the time being run the code

cmake -DCMAKE_BUILD_TYPE=Debug ..

This nicely puts all of the files in the build directory

-- Build files have been written to: ~/MixedFEMultigrid/build

Now when I check out to another directory, create another 'build' directory in that one and then run the CMake command I get the following

-- Build files have been written to: ~/oldCode

where oldCode is actually the parent directory. I have no idea why this is happening. Can someone explain this to me? The full CMakeLists.txt file is given below,

cmake_minimum_required (VERSION 2.6)
project (MixedFEMultigrid)
FIND_PACKAGE(LAPACK REQUIRED)
set( SRC_FILES  multigrid.c 
  gridHandling.c
  interpolation.c
  linApprox.c
  params.c
  sparseMatrix.c
  testing.c
  richardsFunctions.c
  definitions.c
  newtonIteration.c
  )

#Adds the executable with all the dependencies
add_executable (multigrid ${SRC_FILES})

#Specifies the libraries to link to the target
TARGET_LINK_LIBRARIES(multigrid ${LAPACK_LIBRARIES} m)

# Update if necessary
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic -fstrict-aliasing -std=c99 -O3")

As per the comment by escrafford I am updating to show what I do on the command line.

cd ~
mkdir oldCode
cd oldCode
svn co <repository>
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..

The build files are then put into the directory 'oldCode' instead of the 'build' directory. The following, on the other hand, puts the build files into the 'build' directory

cd ~
mkdir MixedFEMultigrid
cd MixedFEMultigrid
svn co <repository>
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..

Best Answer

That comes from a in-source cmake execution

Remember to remove cmake cache:

$ rm CMakeCache.txt
$ mkdir debug
$ cd debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ..

That has another benefit, given that cmake do not provide a clean target

$ cd ..
$ rm -rf debug

is the equivalent of make clean or more precisely make distclean