[aseprite] 06/196: Check dl library existence (fix #990)

Tobias Hansen thansen at moszumanska.debian.org
Wed Apr 20 18:49:54 UTC 2016


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit a22039cd16193b29b0ab165e92b434398e5da605
Author: David Capello <davidcapello at gmail.com>
Date:   Tue Mar 1 09:16:19 2016 -0300

    Check dl library existence (fix #990)
    
    As FreeBSD includes dl functions in libc, dl library doesn't exist.
    (dlfcn.h header file must exist anyway.)
---
 src/base/CMakeLists.txt   | 12 +++++++++++-
 src/base/config.h.cmakein |  3 ++-
 src/base/dll_unix.h       |  7 ++++++-
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt
index 77c1424..dbd6b13 100644
--- a/src/base/CMakeLists.txt
+++ b/src/base/CMakeLists.txt
@@ -20,6 +20,13 @@ int main() {
 }
 " HAVE_SCHED_YIELD)
 
+check_c_source_compiles("
+#include <dlfcn.h>
+int main() {
+  return 0;
+}
+" HAVE_DLFCN_H)
+
 check_c_source_runs("
 int main() {
   unsigned long value = 0x40302010ul;
@@ -85,5 +92,8 @@ target_link_libraries(base-lib modp_b64)
 if(WIN32)
   target_link_libraries(base-lib dbghelp shlwapi)
 else()
-  target_link_libraries(base-lib dl)
+  find_library(DL_LIBRARY NAMES dl)
+  if(DL_LIBRARY_FOUND)
+    target_link_libraries(base-lib ${DL_LIBRARY})
+  endif()
 endif()
diff --git a/src/base/config.h.cmakein b/src/base/config.h.cmakein
index ef43fb0..2684d7c 100644
--- a/src/base/config.h.cmakein
+++ b/src/base/config.h.cmakein
@@ -1,5 +1,5 @@
 // Aseprite Base Library                                      -*- C++ -*-
-// Copyright (c) 2001-2015 David Capello
+// Copyright (c) 2001-2016 David Capello
 //
 // This file is released under the terms of the MIT license.
 // Read LICENSE.txt for more information.
@@ -10,6 +10,7 @@
 
 #cmakedefine HAVE_STDINT_H
 #cmakedefine HAVE_SCHED_YIELD
+#cmakedefine HAVE_DLFCN_H
 
 #cmakedefine ASEPRITE_LITTLE_ENDIAN
 #cmakedefine ASEPRITE_BIG_ENDIAN
diff --git a/src/base/dll_unix.h b/src/base/dll_unix.h
index 127b283..8ea4294 100644
--- a/src/base/dll_unix.h
+++ b/src/base/dll_unix.h
@@ -5,7 +5,12 @@
 // Read LICENSE.txt for more information.
 
 #include "base/string.h"
-#include <dlfcn.h>
+
+#ifdef HAVE_DLFCN_H
+  #include <dlfcn.h>
+#else
+  #error dlfcn.h is needed or include a file that defines dlopen/dlclose
+#endif
 
 namespace base {
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list