]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Revert "Refactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY"
authorRalf Habacker <ralf.habacker@freenet.de>
Thu, 25 Oct 2018 18:13:17 +0000 (20:13 +0200)
committerRalf Habacker <ralf.habacker@freenet.de>
Thu, 25 Oct 2018 18:13:17 +0000 (20:13 +0200)
This reverts commit bd6ece893a45e8103a696ee64adc1baa2096c422,
which was added without a final review.

cmake/ConfigureChecks.cmake
cmake/config.h.cmake

index 9f2008a16599608643e2b796abee02b0582b4fe9..4afa5bd0df019ee2be2e246285c60dd5be1be922 100644 (file)
@@ -78,69 +78,6 @@ int main() {
 epoll_create1 (EPOLL_CLOEXEC);
 }" DBUS_HAVE_LINUX_EPOLL)
 
-CHECK_C_SOURCE_COMPILES("
-#include <stdarg.h>
-#include <stdlib.h>
-static void f (int i, ...) {
-    va_list args1, args2;
-    va_start (args1, i);
-    va_copy (args2, args1);
-    if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-      exit (1);
-    va_end (args1); va_end (args2);
-}
-int main() {
-    f (0, 42);
-    return 0;
-}
-"  HAVE_VA_COPY)
-
-CHECK_C_SOURCE_COMPILES("
-#include <stdarg.h>
-#include <stdlib.h>
-static void f (int i, ...) {
-    va_list args1, args2;
-    va_start (args1, i);
-    __va_copy (args2, args1);
-    if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-      exit (1);
-    va_end (args1); va_end (args2);
-}
-int main() {
-    f (0, 42);
-    return 0;
-}
-"  HAVE___VA_COPY)
-
-if(HAVE_VA_COPY)
-    set(DBUS_VA_COPY va_copy CACHE STRING "va_copy function")
-elseif(HAVE___VA_COPY)
-    set(DBUS_VA_COPY __va_copy CACHE STRING "va_copy function")
-else()
-    # this is used for msvc < 2013
-    set(DBUS_VA_COPY _DBUS_VA_COPY_ASSIGN)
-endif()
-
-CHECK_C_SOURCE_COMPILES("
-#include <stdarg.h>
-#include <stdlib.h>
-static void f (int i, ...) {
-    va_list args1, args2;
-    va_start (args1, i);
-    args2 = args1;
-    if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
-    exit (1);
-    va_end (args1); va_end (args2);
-}
-int main() {
-    f (0, 42);
-    return 0;
-}
-" VA_COPY_AS_ARRAY)
-if (NOT VA_COPY_AS_ARRAY)
-    set(DBUS_VA_COPY_AS_ARRAY 1 CACHE STRING "'va_lists' cannot be copies as values")
-endif()
-
 CHECK_C_SOURCE_COMPILES("
 int main() {
     int a = 4;
@@ -245,3 +182,54 @@ endif(SIZEOF_INT EQUAL 2)
 
 find_program(DOXYGEN doxygen)
 find_program(XMLTO xmlto)
+
+if(MSVC)
+   SET(DBUS_VA_COPY_FUNC "_DBUS_VA_COPY_ASSIGN")
+else(MSVC)
+write_file("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cmake_try_compile.c" "#include <stdarg.h>
+       #include <stdlib.h>
+        static void f (int i, ...) {
+       va_list args1, args2;
+       va_start (args1, i);
+       va_copy (args2, args1);
+       if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+         exit (1);
+       va_end (args1); va_end (args2);
+       }
+       int main() {
+         f (0, 42);
+         return 0;
+       }
+")
+try_compile(DBUS_HAVE_VA_COPY
+            ${CMAKE_BINARY_DIR}
+            ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cmake_try_compile.c)
+
+if(DBUS_HAVE_VA_COPY)
+  SET(DBUS_VA_COPY_FUNC va_copy CACHE STRING "va_copy function")
+else(DBUS_HAVE_VA_COPY)
+  write_file("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cmake_try_compile.c" "#include <stdarg.h>
+          #include <stdlib.h>
+         static void f (int i, ...) {
+         va_list args1, args2;
+         va_start (args1, i);
+         __va_copy (args2, args1);
+         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
+           exit (1);
+         va_end (args1); va_end (args2);
+         }
+         int main() {
+           f (0, 42);
+           return 0;
+         }
+  ")
+  try_compile(DBUS_HAVE___VA_COPY
+              ${CMAKE_BINARY_DIR}
+              ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cmake_try_compile.c)
+  if(DBUS_HAVE___VA_COPY)
+    SET(DBUS_VA_COPY_FUNC __va_copy CACHE STRING "va_copy function")
+  else(DBUS_HAVE___VA_COPY)
+    SET(DBUS_VA_COPY_AS_ARRAY "1" CACHE STRING "'va_lists' cannot be copies as values")
+  endif(DBUS_HAVE___VA_COPY)
+endif(DBUS_HAVE_VA_COPY)
+endif(MSVC) # _not_ MSVC
index af19a8050e148a96201fe679eb06939f9f7d013e..1c66118e588c03d9a16681fff3022f0fff9d1e1a 100644 (file)
 # define DBUS_ENABLE_X11_AUTOLAUNCH 1
 #endif
 
-/* A 'va_copy' style function */
-#cmakedefine DBUS_VA_COPY @DBUS_VA_COPY@
-
-/* for msvc */
 #define _DBUS_VA_COPY_ASSIGN(a1,a2) { a1 = a2; }
 
-/* 'va_lists' cannot be copies as values */
-#cmakedefine DBUS_VA_COPY_AS_ARRAY 1
+#cmakedefine DBUS_VA_COPY_FUNC
+#if (defined DBUS_VA_COPY_FUNC)
+# define DBUS_VA_COPY @DBUS_VA_COPY_FUNC@
+#endif
+
+#ifdef DBUS_VA_COPY_FUNC
+#undef DBUS_VA_COPY_FUNC
+#endif
+
+#cmakedefine DBUS_VA_COPY_AS_ARRAY @DBUS_VA_COPY_AS_ARRAY@
 
 #cmakedefine DBUS_WITH_GLIB 1
 #cmakedefine GLIB_VERSION_MIN_REQUIRED @GLIB_VERSION_MIN_REQUIRED@