[Cmake-commits] [cmake-commits] king committed CheckCSourceCompiles.cmake 1.3 NONE CheckCSourceRuns.cmake 1.4 NONE CurlCheckCSourceCompiles.cmake NONE 1.1 CurlCheckCSourceRuns.cmake NONE 1.1 OtherTests.cmake 1.4 1.5

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Jul 17 15:19:18 EDT 2008


Update of /cvsroot/CMake/CMake/Utilities/cmcurl/CMake
In directory public:/mounts/ram/cvs-serv12357/Utilities/cmcurl/CMake

Modified Files:
	OtherTests.cmake 
Added Files:
	CurlCheckCSourceCompiles.cmake CurlCheckCSourceRuns.cmake 
Removed Files:
	CheckCSourceCompiles.cmake CheckCSourceRuns.cmake 
Log Message:
ENH: Avoid cmcurl CMake macro name conflicts

Utilities/cmcurl/CMake provides macros with the same file names and
macro names as others in Modules, but with different interfaces.  We
rename the curl ones to avoid conflict.


--- NEW FILE: CurlCheckCSourceCompiles.cmake ---
# - Check if the source code provided in the SOURCE argument compiles.
# CURL_CHECK_C_SOURCE_COMPILES(SOURCE VAR)
# - macro which checks if the source code compiles
#  SOURCE   - source code to try to compile
#  VAR      - variable to store whether the source code compiled
#
# The following variables may be set before calling this macro to
# modify the way the check is run:
#
#  CMAKE_REQUIRED_FLAGS = string of compile command line flags
#  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
#  CMAKE_REQUIRED_INCLUDES = list of include directories
#  CMAKE_REQUIRED_LIBRARIES = list of libraries to link

MACRO(CURL_CHECK_C_SOURCE_COMPILES SOURCE VAR)
  IF("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN")
    SET(message "${VAR}")
    # If the number of arguments is greater than 2 (SOURCE VAR)
    IF(${ARGC} GREATER 2)
      # then add the third argument as a message
      SET(message "${ARGV2} (${VAR})")
    ENDIF(${ARGC} GREATER 2)
    SET(MACRO_CHECK_FUNCTION_DEFINITIONS
      "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
    IF(CMAKE_REQUIRED_LIBRARIES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
        "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
    ELSE(CMAKE_REQUIRED_LIBRARIES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
    ENDIF(CMAKE_REQUIRED_LIBRARIES)
    IF(CMAKE_REQUIRED_INCLUDES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
        "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
    ELSE(CMAKE_REQUIRED_INCLUDES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
    ENDIF(CMAKE_REQUIRED_INCLUDES)
    SET(src "")
    FOREACH(def ${EXTRA_DEFINES})
      SET(src "${src}#define ${def} 1\n")
    ENDFOREACH(def)
    FOREACH(inc ${HEADER_INCLUDES})
      SET(src "${src}#include <${inc}>\n")
    ENDFOREACH(inc)

    SET(src "${src}\nint main() { ${SOURCE} ; return 0; }")
    SET(CMAKE_CONFIGURABLE_FILE_CONTENT "${src}")
    CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeConfigurableFile.in
      "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
      IMMEDIATE)
    MESSAGE(STATUS "Performing Test ${message}")
    TRY_COMPILE(${VAR}
      ${CMAKE_BINARY_DIR}
      ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
      COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
      "${CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
      "${CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
      OUTPUT_VARIABLE OUTPUT)
    IF(${VAR})
      SET(${VAR} 1 CACHE INTERNAL "Test ${message}")
      MESSAGE(STATUS "Performing Test ${message} - Success")
      FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
        "Performing C SOURCE FILE Test ${message} succeded with the following output:\n"
        "${OUTPUT}\n"
        "Source file was:\n${src}\n")
    ELSE(${VAR})
      MESSAGE(STATUS "Performing Test ${message} - Failed")
      SET(${VAR} "" CACHE INTERNAL "Test ${message}")
      FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
        "Performing C SOURCE FILE Test ${message} failed with the following output:\n"
        "${OUTPUT}\n"
        "Source file was:\n${src}\n")
    ENDIF(${VAR})
  ENDIF("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN")
ENDMACRO(CURL_CHECK_C_SOURCE_COMPILES)

Index: OtherTests.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Utilities/cmcurl/CMake/OtherTests.cmake,v
retrieving revision 1.4
retrieving revision 1.5
diff -C 2 -d -r1.4 -r1.5
*** OtherTests.cmake	9 Aug 2007 18:55:18 -0000	1.4
--- OtherTests.cmake	17 Jul 2008 19:19:16 -0000	1.5
***************
*** 1,3 ****
! INCLUDE(CheckCSourceCompiles)
  SET(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2")
  SET(HEADER_INCLUDES)
--- 1,3 ----
! INCLUDE(CurlCheckCSourceCompiles)
  SET(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2")
  SET(HEADER_INCLUDES)
***************
*** 29,33 ****
  SET(EXTRA_DEFINES_BACKUP "${EXTRA_DEFINES}")
  SET(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5")
! CHECK_C_SOURCE_COMPILES("recv(0, 0, 0, 0)" curl_cv_recv)
  IF(curl_cv_recv)
    #    AC_CACHE_CHECK([types of arguments and return type for recv],
--- 29,33 ----
  SET(EXTRA_DEFINES_BACKUP "${EXTRA_DEFINES}")
  SET(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5")
! CURL_CHECK_C_SOURCE_COMPILES("recv(0, 0, 0, 0)" curl_cv_recv)
  IF(curl_cv_recv)
    #    AC_CACHE_CHECK([types of arguments and return type for recv],
***************
*** 45,49 ****
                  SET(extern_line "extern ${recv_retv} ${signature_call_conv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})\;")
                  SET(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5")
!                 CHECK_C_SOURCE_COMPILES("
                      ${recv_arg1} s=0;
                      ${recv_arg2} buf=0;
--- 45,49 ----
                  SET(extern_line "extern ${recv_retv} ${signature_call_conv} recv(${recv_arg1}, ${recv_arg2}, ${recv_arg3}, ${recv_arg4})\;")
                  SET(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5")
!                 CURL_CHECK_C_SOURCE_COMPILES("
                      ${recv_arg1} s=0;
                      ${recv_arg2} buf=0;
***************
*** 92,96 ****
  SET(HAVE_RECV 1)
  
! CHECK_C_SOURCE_COMPILES("send(0, 0, 0, 0)" curl_cv_send)
  IF(curl_cv_send)
    #    AC_CACHE_CHECK([types of arguments and return type for send],
--- 92,96 ----
  SET(HAVE_RECV 1)
  
! CURL_CHECK_C_SOURCE_COMPILES("send(0, 0, 0, 0)" curl_cv_send)
  IF(curl_cv_send)
    #    AC_CACHE_CHECK([types of arguments and return type for send],
***************
*** 108,112 ****
                  SET(extern_line "extern ${send_retv} ${signature_call_conv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})\;")
                  SET(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5")
!                 CHECK_C_SOURCE_COMPILES("
                      ${send_arg1} s=0;
                      ${send_arg2} buf=0;
--- 108,112 ----
                  SET(extern_line "extern ${send_retv} ${signature_call_conv} send(${send_arg1}, ${send_arg2}, ${send_arg3}, ${send_arg4})\;")
                  SET(EXTRA_DEFINES "${EXTRA_DEFINES_BACKUP}\n${headers_hack}\n${extern_line}\n#define __unused5")
!                 CURL_CHECK_C_SOURCE_COMPILES("
                      ${send_arg1} s=0;
                      ${send_arg2} buf=0;
***************
*** 162,166 ****
  
  SET(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5")
! CHECK_C_SOURCE_COMPILES("int flag = MSG_NOSIGNAL" HAVE_MSG_NOSIGNAL)
  
  SET(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2")
--- 162,166 ----
  
  SET(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5")
! CURL_CHECK_C_SOURCE_COMPILES("int flag = MSG_NOSIGNAL" HAVE_MSG_NOSIGNAL)
  
  SET(EXTRA_DEFINES "__unused1\n#undef inline\n#define __unused2")
***************
*** 191,198 ****
  ENDIF(HAVE_WINDOWS_H)
  SET(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5")
! CHECK_C_SOURCE_COMPILES("struct timeval ts;\nts.tv_sec  = 0;\nts.tv_usec = 0" HAVE_STRUCT_TIMEVAL)
  
  
! INCLUDE(CheckCSourceRuns)
  SET(EXTRA_DEFINES)
  SET(HEADER_INCLUDES)
--- 191,198 ----
  ENDIF(HAVE_WINDOWS_H)
  SET(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5")
! CURL_CHECK_C_SOURCE_COMPILES("struct timeval ts;\nts.tv_sec  = 0;\nts.tv_usec = 0" HAVE_STRUCT_TIMEVAL)
  
  
! INCLUDE(CurlCheckCSourceRuns)
  SET(EXTRA_DEFINES)
  SET(HEADER_INCLUDES)
***************
*** 200,204 ****
    SET(HEADER_INCLUDES "sys/poll.h")
  ENDIF(HAVE_SYS_POLL_H)
! CHECK_C_SOURCE_RUNS("return poll((void *)0, 0, 10 /*ms*/)" HAVE_POLL_FINE)
  
  SET(HAVE_SIG_ATOMIC_T 1)
--- 200,204 ----
    SET(HEADER_INCLUDES "sys/poll.h")
  ENDIF(HAVE_SYS_POLL_H)
! CURL_CHECK_C_SOURCE_RUNS("return poll((void *)0, 0, 10 /*ms*/)" HAVE_POLL_FINE)
  
  SET(HAVE_SIG_ATOMIC_T 1)
***************
*** 211,215 ****
  CHECK_TYPE_SIZE("sig_atomic_t" SIZEOF_SIG_ATOMIC_T)
  IF(HAVE_SIZEOF_SIG_ATOMIC_T)
!   CHECK_C_SOURCE_COMPILES("static volatile sig_atomic_t dummy = 0" HAVE_SIG_ATOMIC_T_NOT_VOLATILE)
    IF(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE)
      SET(HAVE_SIG_ATOMIC_T_VOLATILE 1)
--- 211,215 ----
  CHECK_TYPE_SIZE("sig_atomic_t" SIZEOF_SIG_ATOMIC_T)
  IF(HAVE_SIZEOF_SIG_ATOMIC_T)
!   CURL_CHECK_C_SOURCE_COMPILES("static volatile sig_atomic_t dummy = 0" HAVE_SIG_ATOMIC_T_NOT_VOLATILE)
    IF(NOT HAVE_SIG_ATOMIC_T_NOT_VOLATILE)
      SET(HAVE_SIG_ATOMIC_T_VOLATILE 1)

--- CheckCSourceCompiles.cmake DELETED ---

--- NEW FILE: CurlCheckCSourceRuns.cmake ---
# - Check if the source code provided in the SOURCE argument compiles and runs.
# CURL_CHECK_C_SOURCE_RUNS(SOURCE VAR)
# - macro which checks if the source code runs
#  SOURCE   - source code to try to compile
#  VAR - variable to store size if the type exists.
#
# The following variables may be set before calling this macro to
# modify the way the check is run:
#
#  CMAKE_REQUIRED_FLAGS = string of compile command line flags
#  CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
#  CMAKE_REQUIRED_INCLUDES = list of include directories
#  CMAKE_REQUIRED_LIBRARIES = list of libraries to link

MACRO(CURL_CHECK_C_SOURCE_RUNS SOURCE VAR)
  IF("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN")
    SET(message "${VAR}")
    # If the number of arguments is greater than 2 (SOURCE VAR)
    IF(${ARGC} GREATER 2)
      # then add the third argument as a message
      SET(message "${ARGV2} (${VAR})")
    ENDIF(${ARGC} GREATER 2)
    SET(MACRO_CHECK_FUNCTION_DEFINITIONS
      "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
    IF(CMAKE_REQUIRED_LIBRARIES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
        "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
    ELSE(CMAKE_REQUIRED_LIBRARIES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
    ENDIF(CMAKE_REQUIRED_LIBRARIES)
    IF(CMAKE_REQUIRED_INCLUDES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
        "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
    ELSE(CMAKE_REQUIRED_INCLUDES)
      SET(CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
    ENDIF(CMAKE_REQUIRED_INCLUDES)
    SET(src "")
    FOREACH(def ${EXTRA_DEFINES})
      SET(src "${src}#define ${def} 1\n")
    ENDFOREACH(def)
    FOREACH(inc ${HEADER_INCLUDES})
      SET(src "${src}#include <${inc}>\n")
    ENDFOREACH(inc)

    SET(src "${src}\nint main() { ${SOURCE} ; return 0; }")
    SET(CMAKE_CONFIGURABLE_FILE_CONTENT "${src}")
    CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/CMake/CMakeConfigurableFile.in
      "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c"
      IMMEDIATE)
    MESSAGE(STATUS "Performing Test ${message}")
    TRY_RUN(${VAR} ${VAR}_COMPILED
      ${CMAKE_BINARY_DIR}
      ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
      COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
      "${CURL_CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
      "${CURL_CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
      OUTPUT_VARIABLE OUTPUT)
    # if it did not compile make the return value fail code of 1
    IF(NOT ${VAR}_COMPILED)
      SET(${VAR} 1)
    ENDIF(NOT ${VAR}_COMPILED)
    # if the return value was 0 then it worked
    SET(result_var ${${VAR}})
    IF("${result_var}" EQUAL 0)
      SET(${VAR} 1 CACHE INTERNAL "Test ${message}")
      MESSAGE(STATUS "Performing Test ${message} - Success")
      FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
        "Performing C SOURCE FILE Test ${message} succeded with the following output:\n"
        "${OUTPUT}\n"
        "Return value: ${${VAR}}\n"
        "Source file was:\n${src}\n")
    ELSE("${result_var}" EQUAL 0)
      MESSAGE(STATUS "Performing Test ${message} - Failed")
      SET(${VAR} "" CACHE INTERNAL "Test ${message}")
      FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
        "Performing C SOURCE FILE Test ${message} failed with the following output:\n"
        "${OUTPUT}\n"
        "Return value: ${result_var}\n"
        "Source file was:\n${src}\n")
    ENDIF("${result_var}" EQUAL 0)
  ENDIF("${VAR}" MATCHES "^${VAR}$" OR "${VAR}" MATCHES "UNKNOWN")
ENDMACRO(CURL_CHECK_C_SOURCE_RUNS)

--- CheckCSourceRuns.cmake DELETED ---



More information about the Cmake-commits mailing list