diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-04-29 01:08:46 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-04-29 01:08:46 (GMT) |
commit | aae914bdd21af81739594bb94e935181925872a1 (patch) | |
tree | f1f72205bad16d3fbde0b51861a81a2f221829ca /Source/CTest | |
parent | 6b22b8c556d2f507f504f8a3e37d3b27a5ea3b19 (diff) | |
download | CMake-aae914bdd21af81739594bb94e935181925872a1.zip CMake-aae914bdd21af81739594bb94e935181925872a1.tar.gz CMake-aae914bdd21af81739594bb94e935181925872a1.tar.bz2 |
BUG: Need to use the new CheckSymbolExists because the one in CMake 1.6 can be broken
Diffstat (limited to 'Source/CTest')
-rw-r--r-- | Source/CTest/Curl/CMake/CheckSymbolExists.cmake | 58 | ||||
-rw-r--r-- | Source/CTest/Curl/CMakeLists.txt | 2 |
2 files changed, 59 insertions, 1 deletions
diff --git a/Source/CTest/Curl/CMake/CheckSymbolExists.cmake b/Source/CTest/Curl/CMake/CheckSymbolExists.cmake new file mode 100644 index 0000000..0ec34a1 --- /dev/null +++ b/Source/CTest/Curl/CMake/CheckSymbolExists.cmake @@ -0,0 +1,58 @@ +# +# Check if the symbol exists in include files +# +# CHECK_SYMBOL_EXISTS - macro which checks the symbol exists in include files. +# SYMBOL - symbol +# FILES - include files to check +# VARIABLE - variable to return result +# + +MACRO(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CHECK_SYMBOL_EXISTS_CONTENT "/* */\n") + SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS}) + STRING(ASCII 35 POUND) + STRING(ASCII 40 OPEN_PARENT) + STRING(ASCII 41 CLOSE_PARENT) + SET(PARENTS "${OPEN_PARENT}${CLOSE_PARENT}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_SYMBOL_EXISTS_LIBS + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ENDIF(CMAKE_REQUIRED_LIBRARIES) + FOREACH(FILE ${FILES}) + SET(CHECK_SYMBOL_EXISTS_CONTENT + "${CHECK_SYMBOL_EXISTS_CONTENT}${POUND}include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CHECK_SYMBOL_EXISTS_CONTENT + "${CHECK_SYMBOL_EXISTS_CONTENT}\nvoid cmakeRequireSymbol${OPEN_PARENT}int dummy,...${CLOSE_PARENT}{${OPEN_PARENT}void${CLOSE_PARENT}dummy;}\nint main${PARENTS}\n{\n${POUND}ifndef ${SYMBOL}\n cmakeRequireSymbol${OPEN_PARENT}0,&${SYMBOL}${CLOSE_PARENT};\n${POUND}endif\n return 0;\n}\n") + + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c + "${CHECK_SYMBOL_EXISTS_CONTENT}") + + MESSAGE(STATUS "Looking for ${SYMBOL}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS} + "${CHECK_SYMBOL_EXISTS_LIBS}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining if the ${SYMBOL} " + "exist passed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n" + "${CHECK_SYMBOL_EXISTS_CONTENT}" APPEND) + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log + "Determining if the ${SYMBOL} " + "exist failed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n" + "${CHECK_SYMBOL_EXISTS_CONTENT}" APPEND) + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_SYMBOL_EXISTS) diff --git a/Source/CTest/Curl/CMakeLists.txt b/Source/CTest/Curl/CMakeLists.txt index 1241639..8a03bd2 100644 --- a/Source/CTest/Curl/CMakeLists.txt +++ b/Source/CTest/Curl/CMakeLists.txt @@ -25,7 +25,7 @@ INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake) -INCLUDE (${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake) +INCLUDE (${LIBCURL_SOURCE_DIR}/CMake/CheckSymbolExists.cmake) INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake) SET(libCurl_SRCS |