Am Dienstag, 31. Januar 2012, 19:27:22 schrieb Clifford Yapp: > We currently have a minor local enhancement to CHECK_C_RUNS_SOURCE > that I would like to contribute back to the main module, if it is > acceptable to the developers of CMake: > > We often have our own .c file stored in our tree for TRY_RUN testing, > and it is convenient to be able to use CHECK_C_RUNS_SOURCE for testing > those .c files. At the moment, CHECK_C_RUNS_SOURCE assumes the > incoming SOURCE variable actually holds the source code - our > enhancement checks to see if SOURCE holds a valid file path first. If > it DOES hold a valid file path, TRY_RUN then trys that .c file, > otherwise the existing CHECK_C_RUNS_SOURCE is preserved. I don't know > of any sane pathname that would be valid C code or vice versa, so > there should be no danger of passing in a C source snippit and having > it mistaken for a file path. > > The diff is below - would this be of interest for main-line CMake? > > Thanks, > CY > > --- ../../CheckCSourceRuns.cmake 2012-01-31 19:19:58.000000000 -0500 > +++ misc/CMake/CheckCSourceRuns.cmake 2012-01-31 19:16:05.000000000 -0500 > @@ -86,13 +86,18 @@ > ELSE(CMAKE_REQUIRED_INCLUDES) > SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES) > ENDIF(CMAKE_REQUIRED_INCLUDES) > - FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" > - "${SOURCE}\n") > - > + IF(EXISTS "${SOURCE}") > + SET(CHECK_SRC "${SOURCE}") > + ELSE(EXISTS "${SOURCE}") > + FILE(WRITE > "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c" + > "${SOURCE}\n") > + SET(CHECK_SRC > "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c") > + ENDIF(EXISTS "${SOURCE}") > + > MESSAGE(STATUS "Performing Test ${VAR}") > TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED > ${CMAKE_BINARY_DIR} > - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c > + ${CHECK_SRC} > COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} > CMAKE_FLAGS > -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} > -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
This is at least missing documentation ;) Eike
signature.asc
Description: This is a digitally signed message part.
-- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake