I'd like to reiterate my request for the attached patch. CMake 2.6.0
has become even more picky about the choice of compiler and now
completely delete the cache during a make rebuild_cache stage.
Step to reproduce:
- debian oldstable (where all package are build gcc 3.3, aliased to c++)
- default c++ executable pointing to g++-4.2
When importing any of the official debian package (build with
configuration CXX=c++, which at the time was aliased to g++-3.3),
there is no way to actually say use g++-3.3 to link against the
imported package. CMake will always force to use 'c++' which is wrong.
Patch is totally non-intrusive.
Thanks
-Mathieu
Ps: of course on debian, c++ can be re-alias to anything you want, but
require root/sudo power.
On Thu, Mar 27, 2008 at 7:26 PM, Bill Hoffman <[EMAIL PROTECTED]> wrote:
> I am happy to announce that CMake 2.6.0 has entered the beta stage! You
> can find the source and binaries here: http://www.cmake.org/files/v2.6/.
>
> I am sure I am leaving something out, but here is the list of changes
> that I came up with. (If you notice something missing please let me
> know and I will add it to the official release when 2.6.0 is finalized.)
>
> Changes in CMake 2.6.0
>
> - Documentation for all variables
> - Direct CDash submit support
> - Bullseye coverage support
> - Use full paths for linking to libraries on all platforms. No longer
> separate into -L and -l.
> - Enhance the install command
> - export command and ability to have imported targets
> - CPack support for rpm and deb
> - Cross compile support
> - Introduction of the cmake_policy command
> - Much better Fortran support
> - Lots of bug fixes ( and most likely a few new bugs... :) )
>
> Please try this version of CMake on your projects and report any issues
> to the list or the bug tracker ( I have added a CMake-2-6 version ).
> The biggest change by far is the new new cmake policies. For more
> information about policies see http://www.cmake.org/Wiki/CMake_Policies.
>
> Happy, building!
>
> -Bill
>
> _______________________________________________
> CMake mailing list
> [email protected]
> http://www.cmake.org/mailman/listinfo/cmake
>
--
Mathieu
Index: CMakeImportBuildSettings.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeImportBuildSettings.cmake,v
retrieving revision 1.8
diff -u -r1.8 CMakeImportBuildSettings.cmake
--- CMakeImportBuildSettings.cmake 24 Jul 2006 20:58:05 -0000 1.8
+++ CMakeImportBuildSettings.cmake 28 Mar 2008 10:12:30 -0000
@@ -119,7 +119,7 @@
ENDIF(WIN32)
# Enforce the C++ compiler setting.
- IF(CMAKE_CXX_COMPILER_MISMATCH)
+ IF(CMAKE_CXX_COMPILER_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_CXX_COMPILER to "
"\"${CMAKE_BUILD_SETTING_CXX_COMPILER}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. This is required "
@@ -129,10 +129,10 @@
"re-build one of those projects. Was set to ${CMAKE_CXX_COMPILER}")
SET(CMAKE_CXX_COMPILER ${CMAKE_BUILD_SETTING_CXX_COMPILER}
CACHE STRING "C++ compiler imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_CXX_COMPILER_MISMATCH)
+ ENDIF(CMAKE_CXX_COMPILER_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
# Enforce the build type.
- IF(CMAKE_BUILD_TYPE_MISMATCH)
+ IF(CMAKE_BUILD_TYPE_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_BUILD_TYPE to "
"\"${CMAKE_BUILD_SETTING_BUILD_TYPE}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. This is required "
@@ -142,11 +142,11 @@
"re-build one of those projects.")
SET(CMAKE_BUILD_TYPE ${CMAKE_BUILD_SETTING_BUILD_TYPE}
CACHE STRING "Build type imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_BUILD_TYPE_MISMATCH)
+ ENDIF(CMAKE_BUILD_TYPE_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
# Enforce the C build variation flags.
- IF(CMAKE_C_FLAGS_DEBUG_MISMATCH)
+ IF(CMAKE_C_FLAGS_DEBUG_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_DEBUG to "
"\"${CMAKE_BUILD_SETTING_C_FLAGS_DEBUG}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -155,9 +155,9 @@
"re-build one of those projects.")
SET(CMAKE_C_FLAGS_DEBUG ${CMAKE_BUILD_SETTING_C_FLAGS_DEBUG}
CACHE STRING "C DEBUG flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_C_FLAGS_DEBUG_MISMATCH)
+ ENDIF(CMAKE_C_FLAGS_DEBUG_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
- IF(CMAKE_C_FLAGS_RELEASE_MISMATCH)
+ IF(CMAKE_C_FLAGS_RELEASE_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_RELEASE to "
"\"${CMAKE_BUILD_SETTING_C_FLAGS_RELEASE}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -166,9 +166,9 @@
"re-build one of those projects.")
SET(CMAKE_C_FLAGS_RELEASE ${CMAKE_BUILD_SETTING_C_FLAGS_RELEASE}
CACHE STRING "C RELEASE flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_C_FLAGS_RELEASE_MISMATCH)
+ ENDIF(CMAKE_C_FLAGS_RELEASE_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
- IF(CMAKE_C_FLAGS_MINSIZEREL_MISMATCH)
+ IF(CMAKE_C_FLAGS_MINSIZEREL_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_MINSIZEREL to "
"\"${CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -177,9 +177,9 @@
"re-build one of those projects.")
SET(CMAKE_C_FLAGS_MINSIZEREL ${CMAKE_BUILD_SETTING_C_FLAGS_MINSIZEREL}
CACHE STRING "C MINSIZEREL flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_C_FLAGS_MINSIZEREL_MISMATCH)
+ ENDIF(CMAKE_C_FLAGS_MINSIZEREL_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
- IF(CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH)
+ IF(CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_C_FLAGS_RELWITHDEBINFO to "
"\"${CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -188,11 +188,11 @@
"re-build one of those projects.")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_BUILD_SETTING_C_FLAGS_RELWITHDEBINFO}
CACHE STRING "C RELWITHDEBINFO flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH)
+ ENDIF(CMAKE_C_FLAGS_RELWITHDEBINFO_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
# Enforce the C++ build variation flags.
- IF(CMAKE_CXX_FLAGS_DEBUG_MISMATCH)
+ IF(CMAKE_CXX_FLAGS_DEBUG_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_DEBUG to "
"\"${CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -201,9 +201,9 @@
"re-build one of those projects.")
SET(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_BUILD_SETTING_CXX_FLAGS_DEBUG}
CACHE STRING "C++ DEBUG flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_CXX_FLAGS_DEBUG_MISMATCH)
+ ENDIF(CMAKE_CXX_FLAGS_DEBUG_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
- IF(CMAKE_CXX_FLAGS_RELEASE_MISMATCH)
+ IF(CMAKE_CXX_FLAGS_RELEASE_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_RELEASE to "
"\"${CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -212,9 +212,9 @@
"re-build one of those projects.")
SET(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_BUILD_SETTING_CXX_FLAGS_RELEASE}
CACHE STRING "C++ RELEASE flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_CXX_FLAGS_RELEASE_MISMATCH)
+ ENDIF(CMAKE_CXX_FLAGS_RELEASE_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
- IF(CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH)
+ IF(CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_MINSIZEREL to "
"\"${CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -223,9 +223,9 @@
"re-build one of those projects.")
SET(CMAKE_CXX_FLAGS_MINSIZEREL ${CMAKE_BUILD_SETTING_CXX_FLAGS_MINSIZEREL}
CACHE STRING "C++ MINSIZEREL flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH)
+ ENDIF(CMAKE_CXX_FLAGS_MINSIZEREL_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
- IF(CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH)
+ IF(CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
MESSAGE("Warning: CMake is forcing CMAKE_CXX_FLAGS_RELWITHDEBINFO to "
"\"${CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO}\" to match that imported "
"from ${CMAKE_BUILD_SETTING_PROJECT_NAME}. "
@@ -234,7 +234,7 @@
"re-build one of those projects.")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_BUILD_SETTING_CXX_FLAGS_RELWITHDEBINFO}
CACHE STRING "C++ RELWITHDEBINFO flags imported from ${CMAKE_BUILD_SETTING_PROJECT_NAME}." FORCE)
- ENDIF(CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH)
+ ENDIF(CMAKE_CXX_FLAGS_RELWITHDEBINFO_MISMATCH AND NOT CMAKE_OVERRIDE_COMPILER_MISMATCH)
ELSE(${SETTINGS_FILE} MATCHES ".+")
MESSAGE(SEND_ERROR "CMAKE_IMPORT_BUILD_SETTINGS called with no argument.")
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake