Browse Source

ENH: add a fix for VTK on the mac and a way to fix some projects with a single file in the cmake modules directory

Bill Hoffman 20 years ago
parent
commit
9c4bfe975a

+ 0 - 4
Modules/CMakeCInformation.cmake

@@ -96,10 +96,6 @@ IF(NOT CMAKE_C_LINK_EXECUTABLE)
     "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
 ENDIF(NOT CMAKE_C_LINK_EXECUTABLE)
 
-IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
-   INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE})
-ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE)
-
 MARK_AS_ADVANCED(
 CMAKE_C_FLAGS
 CMAKE_C_FLAGS_DEBUG

+ 0 - 5
Modules/CMakeCXXInformation.cmake

@@ -154,11 +154,6 @@ IF(NOT CMAKE_CXX_LINK_EXECUTABLE)
     "<CMAKE_CXX_COMPILER>  <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS>  -o <TARGET> <LINK_LIBRARIES>")
 ENDIF(NOT CMAKE_CXX_LINK_EXECUTABLE)
 
-IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
-   INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE})
-ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE)
-
-
 MARK_AS_ADVANCED(
 CMAKE_BUILD_TOOL
 CMAKE_VERBOSE_MAKEFILE 

+ 0 - 5
Modules/CMakeFortranInformation.cmake

@@ -114,11 +114,6 @@ IF(NOT CMAKE_Fortran_LINK_EXECUTABLE)
 ENDIF(NOT CMAKE_Fortran_LINK_EXECUTABLE)
 
 
-# Load the user define rules
-IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
-   INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE})
-ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE)
-
 
 MARK_AS_ADVANCED(
 CMAKE_Fortran_FLAGS

+ 7 - 0
Modules/VTKCompatibility.cmake

@@ -0,0 +1,7 @@
+MESSAGE("VTK specific hacks go here in VTKCompatibility")
+IF(APPLE)
+  SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_C_CREATE_SHARED_LIBRARY}")
+  SET(CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_C_CREATE_SHARED_MODULE}")
+  STRING( REGEX REPLACE "CMAKE_C_COMPILER" CMAKE_CXX_COMPILER CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}")
+  STRING( REGEX REPLACE "CMAKE_C_COMPILER" CMAKE_CXX_COMPILER CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
+ENDIF(APPLE)

+ 14 - 0
Source/cmGlobalGenerator.cxx

@@ -373,6 +373,20 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
           }
         }
       }
+    } // end for each language
+  std::string projectCompatibility = mf->GetDefinition("CMAKE_ROOT");
+  projectCompatibility += "/Modules/";
+  projectCompatibility += mf->GetDefinition("PROJECT_NAME");
+  projectCompatibility += "Compatibility.cmake";
+  if(cmSystemTools::FileExists(projectCompatibility.c_str()))
+    {
+    mf->ReadListFile(0,projectCompatibility.c_str()); 
+    }
+  std::string userMakeRules = 
+    mf->GetSafeDefinition("CMAKE_USER_MAKE_RULES_OVERRIDE");
+  if(userMakeRules.size())
+    {
+    mf->ReadListFile(0,userMakeRules.c_str());
     }
 }