Fix relative CMAKE_USER_MAKE_RULES_OVERRIDE (#11725)

In commit 295b5b60 (Honor CMAKE_USER_MAKE_RULES_OVERRIDE in try_compile,
2010-06-29) we started passing the value of this variable when building
a try_compile project.  If the variable contains a relative path it must
be treated with respect to the file where it is first used.  Ensure that
the value is converted to a full path so that it is correctly referenced
in the try_compile projects.
This commit is contained in:
Brad King 2011-01-19 18:05:46 -05:00
parent 295b5b60df
commit a146e03422
4 changed files with 37 additions and 21 deletions

View File

@ -1,6 +1,6 @@
#============================================================================= #=============================================================================
# Copyright 2004-2009 Kitware, Inc. # Copyright 2004-2011 Kitware, Inc.
# #
# Distributed under the OSI-approved BSD License (the "License"); # Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details. # see accompanying file Copyright.txt for details.
@ -74,12 +74,16 @@ ENDIF (NOT _INCLUDED_FILE)
# be made to those values. # be made to those values.
IF(CMAKE_USER_MAKE_RULES_OVERRIDE) IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
ENDIF()
IF(CMAKE_USER_MAKE_RULES_OVERRIDE_C) IF(CMAKE_USER_MAKE_RULES_OVERRIDE_C)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_C}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_C) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_C} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE_C "${_override}")
ENDIF()
# for most systems a module is the same as a shared library # for most systems a module is the same as a shared library

View File

@ -1,6 +1,6 @@
#============================================================================= #=============================================================================
# Copyright 2004-2009 Kitware, Inc. # Copyright 2004-2011 Kitware, Inc.
# #
# Distributed under the OSI-approved BSD License (the "License"); # Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details. # see accompanying file Copyright.txt for details.
@ -73,12 +73,16 @@ ENDIF (NOT _INCLUDED_FILE)
# be made to those values. # be made to those values.
IF(CMAKE_USER_MAKE_RULES_OVERRIDE) IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
ENDIF()
IF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) IF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX "${_override}")
ENDIF()
# for most systems a module is the same as a shared library # for most systems a module is the same as a shared library

View File

@ -1,6 +1,6 @@
#============================================================================= #=============================================================================
# Copyright 2004-2009 Kitware, Inc. # Copyright 2004-2011 Kitware, Inc.
# #
# Distributed under the OSI-approved BSD License (the "License"); # Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details. # see accompanying file Copyright.txt for details.
@ -50,12 +50,16 @@ ENDIF (NOT _INCLUDED_FILE)
# be made to those values. # be made to those values.
IF(CMAKE_USER_MAKE_RULES_OVERRIDE) IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
ENDIF()
IF(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran) IF(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran "${_override}")
ENDIF()
# Fortran needs cmake to do a requires step during its build process to # Fortran needs cmake to do a requires step during its build process to

View File

@ -1,6 +1,6 @@
#============================================================================= #=============================================================================
# Copyright 2004-2009 Kitware, Inc. # Copyright 2004-2011 Kitware, Inc.
# #
# Distributed under the OSI-approved BSD License (the "License"); # Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details. # see accompanying file Copyright.txt for details.
@ -19,12 +19,16 @@
# be made to those values. # be made to those values.
IF(CMAKE_USER_MAKE_RULES_OVERRIDE) IF(CMAKE_USER_MAKE_RULES_OVERRIDE)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
ENDIF()
IF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) IF(CMAKE_USER_MAKE_RULES_OVERRIDE_Java)
INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}) # Save the full path of the file so try_compile can use it.
ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_Java} RESULT_VARIABLE _override)
SET(CMAKE_USER_MAKE_RULES_OVERRIDE_Java "${_override}")
ENDIF()
# this is a place holder if java needed flags for javac they would go here. # this is a place holder if java needed flags for javac they would go here.
IF(NOT CMAKE_Java_CREATE_STATIC_LIBRARY) IF(NOT CMAKE_Java_CREATE_STATIC_LIBRARY)