[cmake-developers] [CMake 0014481]: Unable to support a new language using CMAKE_MODULE_PATH within an outside project.
Mantis Bug Tracker
mantis at public.kitware.com
Sun Oct 13 19:44:08 EDT 2013
The following issue has been SUBMITTED.
======================================================================
http://public.kitware.com/Bug/view.php?id=14481
======================================================================
Reported By: Dragos Carp
Assigned To:
======================================================================
Project: CMake
Issue ID: 14481
Category: CMake
Reproducibility: always
Severity: major
Priority: normal
Status: new
======================================================================
Date Submitted: 2013-10-13 19:44 EDT
Last Modified: 2013-10-13 19:44 EDT
======================================================================
Summary: Unable to support a new language using
CMAKE_MODULE_PATH within an outside project.
Description:
As described in Modules/CMakeAddNewLanguage.txt it should be possible to add
support for a new language (D in my case) by including the language modules
using the CMAKE_MODULE_PATH variable.
This works very nicely with the exception of the compiler identification, when
Modules/CMakeDetermineCompilerId.cmake contains hardcoded the path to the source
configuration file in line 88:
file(READ ${CMAKE_ROOT}/Modules/${src}.in ID_CONTENT_IN)
Additional Information:
Following patch will correct the problem:
--- install-cmake-ref/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake
2013-10-07 17:31:00.000000000 +0200
+++ install-cmake/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake
2013-10-14 00:45:00.000000000 +0200
@@ -85,7 +85,8 @@
#-----------------------------------------------------------------------------
# Function to write the compiler id source file.
function(CMAKE_DETERMINE_COMPILER_ID_WRITE lang src)
- file(READ ${CMAKE_ROOT}/Modules/${src}.in ID_CONTENT_IN)
+ find_file(src_in ${src}.in PATHS ${CMAKE_ROOT}/Modules ${CMAKE_MODULE_PATH})
+ file(READ ${src_in} ID_CONTENT_IN)
string(CONFIGURE "${ID_CONTENT_IN}" ID_CONTENT_OUT @ONLY)
file(WRITE ${CMAKE_${lang}_COMPILER_ID_DIR}/${src} "${ID_CONTENT_OUT}")
endfunction()
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2013-10-13 19:44 Dragos Carp New Issue
======================================================================
More information about the cmake-developers
mailing list