]> granicus.if.org Git - libexpat/commitdiff
CMake: Resolve code duplication by use of a macro
authorSebastian Pipping <sebastian@pipping.org>
Tue, 9 Jul 2019 21:09:51 +0000 (23:09 +0200)
committerSebastian Pipping <sebastian@pipping.org>
Tue, 9 Jul 2019 21:14:05 +0000 (23:14 +0200)
expat/CMakeLists.txt

index 65592cf916fa59cb53e5aeecad963fce00f987f3..e45e324695f5d8d17581f8a2f7426d12ca35bf2b 100644 (file)
@@ -109,23 +109,19 @@ endif(BUILD_tests)
 \r
 include(${CMAKE_CURRENT_LIST_DIR}/ConfigureChecks.cmake)\r
 \r
-if(NOT WIN32)\r
-    if(USE_GETRANDOM AND NOT (USE_GETRANDOM STREQUAL "AUTO") AND NOT HAVE_GETRANDOM)\r
+macro(evaluate_detection_results use_ref have_ref thing_lower thing_title)\r
+    if(${use_ref} AND NOT (${use_ref} STREQUAL "AUTO") AND NOT ${have_ref})\r
         message(SEND_ERROR\r
-                "Use of function getrandom was enforced by USE_GETRANDOM=ON but it could not be found.")\r
-    elseif(NOT USE_GETRANDOM AND HAVE_GETRANDOM)\r
-        message("Function getrandom was found but it will not be used due to USE_GETRANDOM=OFF.")\r
-        set(HAVE_GETRANDOM 0)\r
+                "Use of ${thing_lower} was enforced by ${use_ref}=ON but it could not be found.")\r
+    elseif(NOT ${use_ref} AND ${have_ref})\r
+        message("${thing_title} was found but it will not be used due to ${use_ref}=OFF.")\r
+        set(${have_ref} 0)\r
     endif()\r
+endmacro()\r
 \r
-\r
-    if(USE_SYS_GETRANDOM AND NOT (USE_SYS_GETRANDOM STREQUAL "AUTO") AND NOT HAVE_SYSCALL_GETRANDOM)\r
-        message(SEND_ERROR\r
-                "Use of syscall SYS_getrandom was enforced by USE_SYS_GETRANDOM=ON but it could not be found.")\r
-    elseif(NOT USE_SYS_GETRANDOM AND HAVE_SYSCALL_GETRANDOM)\r
-        message("Syscall SYS_getrandom was found but it will not be used due to USE_SYS_GETRANDOM=OFF.")\r
-        set(HAVE_SYSCALL_GETRANDOM 0)\r
-    endif()\r
+if(NOT WIN32)\r
+    evaluate_detection_results(USE_GETRANDOM HAVE_GETRANDOM "function getrandom" "Function getrandom")\r
+    evaluate_detection_results(USE_SYS_GETRANDOM HAVE_SYSCALL_GETRANDOM "syscall SYS_getrandom" "Syscall SYS_getrandom")\r
 endif()\r
 \r
 \r