summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmake.cxx40
1 files changed, 23 insertions, 17 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 8d782af..6b67ef0 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -134,20 +134,7 @@ void cmake::AddCMakePaths(const std::vector<std::string>& args)
cmSystemTools::ConvertToUnixSlashes(cMakeSelf);
cMakeSelf = cmSystemTools::FindProgram(cMakeSelf.c_str());
- if(!cmCacheManager::GetInstance()->GetCacheValue("LIBRARY_OUTPUT_PATH"))
- {
- cmCacheManager::GetInstance()->AddCacheEntry("LIBRARY_OUTPUT_PATH", "",
- "Single output directory for building all libraries.",
- cmCacheManager::PATH);
- }
- if(!cmCacheManager::GetInstance()->GetCacheValue("EXECUTABLE_OUTPUT_PATH"))
- {
- cmCacheManager::GetInstance()->AddCacheEntry("EXECUTABLE_OUTPUT_PATH", "",
- "Single output directory for building all executables.",
- cmCacheManager::PATH);
- }
-
- // Save the value in the cache
+ // Save the value in the cache
cmCacheManager::GetInstance()->AddCacheEntry
("CMAKE_COMMAND",
cmSystemTools::EscapeSpaces(cMakeSelf.c_str()).c_str(),
@@ -238,12 +225,31 @@ int cmake::Generate(const std::vector<std::string>& args)
lf += "/CMakeLists.txt";
if(!mf.ReadListFile(lf.c_str()))
{
- this->Usage(args[0].c_str());
- return -1;
+ this->Usage(args[0].c_str());
+ return -1;
}
mf.GenerateMakefile();
+
+ // Before saving the cache
+ // if the project did not define LIBRARY_OUTPUT_PATH and
+ // EXECUTABLE_OUTPUT_PATH, add them now, so users
+ // can edit the values in the cache.
+ if(!cmCacheManager::GetInstance()->GetCacheValue("LIBRARY_OUTPUT_PATH"))
+ {
+ cmCacheManager::GetInstance()->AddCacheEntry("LIBRARY_OUTPUT_PATH", "",
+ "Single output directory for building all libraries.",
+ cmCacheManager::PATH);
+ }
+ if(!cmCacheManager::GetInstance()->GetCacheValue("EXECUTABLE_OUTPUT_PATH"))
+ {
+ cmCacheManager::GetInstance()->AddCacheEntry("EXECUTABLE_OUTPUT_PATH", "",
+ "Single output directory for building all executables.",
+ cmCacheManager::PATH);
+ }
+
+
cmCacheManager::GetInstance()->SaveCache(&mf);
-
+
if(m_Verbose)
{
cmCacheManager::GetInstance()->PrintCache(std::cout);