瀏覽代碼

Add a way to add custom libraries to the mix

Andy Cedilnik 23 年之前
父節點
當前提交
6d5c437045
共有 3 個文件被更改,包括 16 次插入1 次删除
  1. 5 0
      Modules/CheckFunctionExists.cmake
  2. 6 1
      Modules/CheckLibraryExists.cmake
  3. 5 0
      Modules/CheckTypeSize.cmake

+ 5 - 0
Modules/CheckFunctionExists.cmake

@@ -10,10 +10,15 @@ MACRO(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
   IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
     SET(MACRO_CHECK_FUNCTION_DEFINITIONS -DCHECK_FUNCTION_EXISTS=${FUNCTION})
     MESSAGE(STATUS "Looking for ${FUNCTION}")
+    IF(CMAKE_REQUIRED_LIBRARIES)
+      SET(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES 
+          "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+    ENDIF(CMAKE_REQUIRED_LIBRARIES)
     TRY_COMPILE(${VARIABLE}
             ${CMAKE_BINARY_DIR}
             ${CMAKE_ROOT}/Modules/CheckFunctionExists.c
             CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+                        ${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}
             OUTPUT_VARIABLE OUTPUT)
     IF(${VARIABLE})
       SET(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION}")

+ 6 - 1
Modules/CheckLibraryExists.cmake

@@ -10,13 +10,18 @@ MACRO(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
   IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
     SET(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION -DCHECK_FUNCTION_EXISTS=${FUNCTION})
     MESSAGE(STATUS "Looking for ${FUNCTION} in ${LIBRARY}")
+    SET(CHECK_LIBRARY_EXISTS_LIBRARIES ${LIBRARY})
+    IF(CMAKE_REQUIRED_LIBRARIES)
+      SET(CHECK_LIBRARY_EXISTS_LIBRARIES 
+          ${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES})
+    ENDIF(CMAKE_REQUIRED_LIBRARIES)
     TRY_COMPILE(${VARIABLE}
                ${CMAKE_BINARY_DIR}
                ${CMAKE_ROOT}/Modules/CheckFunctionExists.c
                CMAKE_FLAGS 
                  -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_LIBRARY_EXISTS_DEFINITION}
                  -DLINK_DIRECTORIES:STRING=${LOCATION}
-                 -DLINK_LIBRARIES:STRING=${LIBRARY}
+                 -DLINK_LIBRARIES:STRING=${CHECK_LIBRARY_EXISTS_LIBRARIES}
                OUTPUT_VARIABLE OUTPUT)
 
     IF(${VARIABLE})

+ 5 - 0
Modules/CheckTypeSize.cmake

@@ -17,10 +17,15 @@ MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
       SET(MACRO_CHECK_TYPE_SIZE_FLAGS "${MACRO_CHECK_TYPE_SIZE_FLAGS} -DHAVE_STDINT_H")
     ENDIF(HAVE_STDINT_H)
     MESSAGE(STATUS "Check size of ${TYPE}")
+    IF(CMAKE_REQUIRED_LIBRARIES)
+      SET(CHECK_TYPE_SIZE_ADD_LIBRARIES 
+          "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+    ENDIF(CMAKE_REQUIRED_LIBRARIES)
     TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
             ${CMAKE_BINARY_DIR}
             ${CMAKE_ROOT}/Modules/CheckTypeSize.c
             CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS}
+                        ${CHECK_TYPE_SIZE_ADD_LIBRARIES}
             OUTPUT_VARIABLE OUTPUT)
     IF(HAVE_${VARIABLE})
       MESSAGE(STATUS "Check size of ${TYPE} - done")