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

Attachment: 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

Reply via email to