Przeglądaj źródła

added watches for access of bw compat vars

Ken Martin 23 lat temu
rodzic
commit
26bc729933
1 zmienionych plików z 20 dodań i 0 usunięć
  1. 20 0
      Source/cmake.cxx

+ 20 - 0
Source/cmake.cxx

@@ -42,6 +42,19 @@
 #include <sys/resource.h>
 #include <sys/resource.h>
 #endif
 #endif
 
 
+
+void cmNeedBackwardsCompatibility(const std::string& variable, 
+                                  int access_type, void* client_data)
+{
+  if (access_type == cmVariableWatch::UNKNOWN_VARIABLE_READ_ACCESS)
+    {
+    std::string message = "Error: An atttempt was made to access a variable: ";
+    message += variable;
+    message += " that has not been defined. Some variables were always defined by CMake in versions prior to 1.6. To fix this you might need to set the cache value of CMAKE_BACKWARDS_COMPATIBILITY to 1.4 or less. If you are writing a CMakeList file, (or have already set CMAKE_BACKWARDS_COMPATABILITY to 1.4 or less) then you probably need to include a CMake module to test for the feature this variable defines.";
+    cmSystemTools::Error(message.c_str());
+    }
+}
+
 cmake::cmake()
 cmake::cmake()
 {
 {
 #ifdef __APPLE__
 #ifdef __APPLE__
@@ -66,6 +79,13 @@ cmake::cmake()
   m_VariableWatch = new cmVariableWatch;
   m_VariableWatch = new cmVariableWatch;
 
 
   this->AddDefaultCommands();
   this->AddDefaultCommands();
+
+  m_VariableWatch->AddWatch("CMAKE_WORDS_BIGENDIAN",
+                            cmNeedBackwardsCompatibility);
+  m_VariableWatch->AddWatch("CMAKE_SIZEOF_INT",
+                            cmNeedBackwardsCompatibility);
+  m_VariableWatch->AddWatch("CMAKE_X_LIBS",
+                            cmNeedBackwardsCompatibility);
 }
 }
 
 
 cmake::~cmake()
 cmake::~cmake()