DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Link: http://www.fltk.org/str.php?L2297
Version: 1.3-current


The CMake files delivered with FLTK already contain a means of running 
platform specific tests. It is currently being accomplished via the 
PERFORM_CMAKE_TEST macro, which is basically a wrapper for try_compile. 
A new test needs to be added for the new POSIX scandir. Three files
need to be modified: 

fltk-1.1.10/CMake/PlatformTests.cxx
fltk-1.1.10/CMakeLists.txt
fltk-1.1.10/configh.cmake.in

Included below is one possible solution:


diff -rupN fltk-1.1.10-orig/CMake/PlatformTests.cxx
fltk-1.1.10/CMake/PlatformTests.cxx
--- fltk-1.1.10-orig/CMake/PlatformTests.cxx    2005-02-24 16:55:12.000000000
-0500
+++ fltk-1.1.10/CMake/PlatformTests.cxx 2010-01-13 15:22:35.000000000
-0500
@@ -79,3 +79,15 @@ int main()
        return 0;
 }
 #endif
+
+#ifdef HAVE_SCANDIR_POSIX
+#include <dirent.h>
+int func (const char *d, dirent ***list, void *sort) {
+    int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent
**))sort);
+}
+
+int main()
+{
+   return 0;
+}
+#endif
diff -rupN fltk-1.1.10-orig/CMakeLists.txt fltk-1.1.10/CMakeLists.txt
--- fltk-1.1.10-orig/CMakeLists.txt     2009-07-02 05:42:17.000000000 -0400
+++ fltk-1.1.10/CMakeLists.txt  2010-01-13 15:22:22.000000000 -0500
@@ -245,6 +245,8 @@ ELSE(FLTK_USE_SYSTEM_PNG)
   INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/png")
 ENDIF(FLTK_USE_SYSTEM_PNG)
 
+PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_SCANDIR_POSIX)
+
 SET(FLTK_DATADIR "${CMAKE_INSTALL_PREFIX}/share/FLTK")
 SET(FLTK_DOCDIR  "${CMAKE_INSTALL_PREFIX}/share/doc/FLTK")

diff -rupN fltk-1.1.10-orig/configh.cmake.in fltk-1.1.10/configh.cmake.in
--- fltk-1.1.10-orig/configh.cmake.in   2008-04-21 17:10:47.000000000 -0400
+++ fltk-1.1.10/configh.cmake.in        2010-01-13 15:26:13.000000000 -0500
@@ -162,7 +162,8 @@
 #cmakedefine U64 @U64@
 
 /*
- * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H,
HAVE_SCANDIR:
+ * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H,
HAVE_SCANDIR,
+ * HAVE_SCANDIR_POSIX:
  *
  * Where is <dirent.h> (used only by fl_file_chooser and scandir).
  */
@@ -172,6 +173,8 @@
 #cmakedefine HAVE_SYS_DIR_H @HAVE_SYS_DIR_H@
 #cmakedefine HAVE_NDIR_H @HAVE_NDIR_H@
 #cmakedefine HAVE_SCANDIR @HAVE_SCANDIR@
+#cmakedefine HAVE_SCANDIR_POSIX @HAVE_SCANDIR_POSIX@
+
 
 /*
  * Possibly missing sprintf-style functions:


Link: http://www.fltk.org/str.php?L2297
Version: 1.3-current

_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs

Reply via email to