summaryrefslogtreecommitdiff
path: root/Modules/CMakeExportBuildSettings.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-09-08 15:55:41 -0400
committerBrad King <brad.king@kitware.com>2009-09-08 15:55:41 -0400
commitfd47a2ae966c3ac1fac1ee699728c55862fb23a2 (patch)
treeaebe4b91f0fd4b906c7f0d1361ed8d2d9385cff4 /Modules/CMakeExportBuildSettings.cmake
parent002ae925c31fc3f041ac462919000535d221c93f (diff)
downloadcmake-fd47a2ae966c3ac1fac1ee699728c55862fb23a2.tar.gz
Drop old CMake "build settings" export/import
The CMakeExportBuildSettings and CMakeImportBuildSettings modules used to export compiler paths and flags from one project and import them into another. The import process would force the settings on the including project. Forcing settings helped long ago when compiler ABIs changed frequently but is now just a nuisance. We've deemed the behavior harmful so this commit simply removes it. The modules and macros now error out if included or called from a project that requires CMake 2.8 or higher.
Diffstat (limited to 'Modules/CMakeExportBuildSettings.cmake')
-rw-r--r--Modules/CMakeExportBuildSettings.cmake19
1 files changed, 15 insertions, 4 deletions
diff --git a/Modules/CMakeExportBuildSettings.cmake b/Modules/CMakeExportBuildSettings.cmake
index 0c71efa03f..b14455bbbc 100644
--- a/Modules/CMakeExportBuildSettings.cmake
+++ b/Modules/CMakeExportBuildSettings.cmake
@@ -1,7 +1,18 @@
-# - export build settings from a project.
-# CMAKE_EXPORT_BUILD_SETTINGS(SETTINGS_FILE)
-# macro defined to export the build settings for use by another project.
-# SETTINGS_FILE - the file into which the settings are to be stored.
+
+# This module is purposely no longer documented. It does nothing useful.
+IF(NOT "${CMAKE_MINIMUM_REQUIRED_VERSION}" VERSION_LESS 2.7)
+ MESSAGE(FATAL_ERROR
+ "The functionality of this module has been dropped as of CMake 2.8. "
+ "It was deemed harmful (confusing users by changing their compiler). "
+ "Please remove calls to the CMAKE_EXPORT_BUILD_SETTINGS macro and "
+ "stop including this module. "
+ "If this project generates any files for use by external projects, "
+ "remove any use of the CMakeImportBuildSettings module from them.")
+ENDIF()
+
+# This macro used to store build settings of a project in a file to be
+# loaded by another project using CMAKE_IMPORT_BUILD_SETTINGS. Now it
+# creates a file that refuses to load (with comment explaining why).
MACRO(CMAKE_EXPORT_BUILD_SETTINGS SETTINGS_FILE)
IF(${SETTINGS_FILE} MATCHES ".+")
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeBuildSettings.cmake.in