I am just starting out with CMake. I\'ve successfully set up the most minimal Hello, World! C++ application possible for Visual Studio 2012 on Windows 7,
This probably just boils down to being a typo. In the last line of source/helloWorld/CMakeLists.txt I guess you meant PROJECT_BINARY_DIR
rather than PROJECT_BINARY_BIN
?
What's happening here is that ${PROJECT_BINARY_BIN}/bin
resolves to /bin
(dereferencing an undefined string in CMake unfortunately doesn't generate a warning) and /bin
is an absolute path. If your project is in the C: drive, I expect you'll find that C:\bin\helloWorld.exe actually does exist: Visual Studio hasn't been lying to you :-)
Just as an aside, it's usual to specify relative paths in the install
command to allow the user to select the install root. Likewise, it's not really user-friendly to hard code the CMAKE_INSTALL_PREFIX
(at least without a warning).
In this case, I'd change the install
command to:
install (TARGETS helloWorld RUNTIME DESTINATION bin)
and remove set(CMAKE_INSTALL_PREFIX ...)
from source/CMakeLists.txt.
Say your project's root is C:\myProject, then from a Visual Studio command prompt, you can do:
cd C:\myProject\build
cmake -DCMAKE_INSTALL_PREFIX="C:\myProject\build" ..\source
cmake --build . --config Release --target INSTALL
bin\helloWorld.exe