]> granicus.if.org Git - libevent/commitdiff
Make cmake's check_const_exists() rely on cache
authorAzat Khuzhin <a3at.mail@gmail.com>
Thu, 18 Oct 2018 20:16:05 +0000 (23:16 +0300)
committerAzat Khuzhin <a3at.mail@gmail.com>
Thu, 18 Oct 2018 20:16:05 +0000 (23:16 +0300)
cmake/CheckConstExists.cmake

index 56b49882457936fea462a48e2c7bb6a782430133..de074581df4cb60da1885d9f5f973e5197231778 100644 (file)
@@ -1,23 +1,25 @@
 include(CheckCSourceCompiles)
 
 macro(check_const_exists CONST FILES VARIABLE)
-  set(check_const_exists_source "")
-  foreach(file ${FILES})
+  if (NOT DEFINED ${VARIABLE})
+    set(check_const_exists_source "")
+    foreach(file ${FILES})
+      set(check_const_exists_source
+          "${check_const_exists_source}
+          #include <${file}>")
+    endforeach()
     set(check_const_exists_source
         "${check_const_exists_source}
-        #include <${file}>")
-  endforeach()
-  set(check_const_exists_source
-      "${check_const_exists_source}
-      int main() { (void)${CONST}; return 0; }")
+        int main() { (void)${CONST}; return 0; }")
 
-  check_c_source_compiles("${check_const_exists_source}" ${VARIABLE})
+    check_c_source_compiles("${check_const_exists_source}" ${VARIABLE})
 
-  if (${${VARIABLE}})
-    set(${VARIABLE} 1 CACHE INTERNAL "Have const ${CONST}")
-    message(STATUS "Looking for ${CONST} - found")
-  else()
-    set(${VARIABLE} 0 CACHE INTERNAL "Have const ${CONST}")
-    message(STATUS "Looking for ${CONST} - not found")
+    if (${${VARIABLE}})
+      set(${VARIABLE} 1 CACHE INTERNAL "Have const ${CONST}")
+      message(STATUS "Looking for ${CONST} - found")
+    else()
+      set(${VARIABLE} 0 CACHE INTERNAL "Have const ${CONST}")
+      message(STATUS "Looking for ${CONST} - not found")
+    endif()
   endif()
 endmacro(check_const_exists)