Revision: 69971
          http://sourceforge.net/p/brlcad/code/69971
Author:   starseeker
Date:     2017-07-18 21:02:19 +0000 (Tue, 18 Jul 2017)
Log Message:
-----------
Make a stab at folding termlib.c.in into the FindTERMLIB cmake file (needs 
testing)

Modified Paths:
--------------
    brlcad/trunk/misc/CMake/FindTERMLIB.cmake

Removed Paths:
-------------
    brlcad/trunk/misc/CMake/test_srcs/

Modified: brlcad/trunk/misc/CMake/FindTERMLIB.cmake
===================================================================
--- brlcad/trunk/misc/CMake/FindTERMLIB.cmake   2017-07-18 19:25:51 UTC (rev 
69970)
+++ brlcad/trunk/misc/CMake/FindTERMLIB.cmake   2017-07-18 21:02:19 UTC (rev 
69971)
@@ -45,6 +45,40 @@
 include(CheckIncludeFiles)
 include(CheckCSourceRuns)
 
+set(termlib_src "
+#ifdef HAVE_TERMLIB_H
+#  include <termlib.h>
+#else
+#  ifdef HAVE_NCURSES_H
+#    include <ncurses.h>
+#  else
+#    ifdef HAVE_CURSES_H
+#      include <curses.h>
+#    else
+#      ifdef HAVE_TERMCAP_H
+#        include <termcap.h>
+#      else
+#        ifdef HAVE_TERMINFO_H
+#          include <terminfo.h>
+#        else
+#          ifdef HAVE_TINFO_H
+#            include <tinfo.h>
+#          endif
+#        endif
+#      endif
+#    endif
+#  endif
+#  ifdef HAVE_TERM_H
+#    include <term.h>
+#  endif
+#endif
+int main () {
+        char buffer[2048] = {0};
+        (void)tgetent(buffer, \"vt100\");
+        return 0;
+}
+")
+
 macro(TERMLIB_CHECK_LIBRARY lname func headers)
   if(NOT TERMLIB_LIBRARY OR "${TERMLIB_LIBRARY}" MATCHES "NOTFOUND")
     CHECK_LIBRARY_EXISTS(${lname} ${func} "" HAVE_TERMLIB_${lname})
@@ -59,13 +93,20 @@
          if(NOT "${TERMLIB_INCLUDE_DIR}" MATCHES "NOTFOUND")
            set(LIBTERM_RESULT)
            set(TERMLIB_LIBRARY "${lname}")
-           configure_file("${BRLCAD_CMAKE_DIR}/test_srcs/termlib.c.in" 
"${CMAKE_BINARY_DIR}/CMakeTmp/termlib.c")
+           file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/termlib.c")
            set(CMAKE_REQUIRED_LIBRARIES_BAK ${CMAKE_REQUIRED_LIBRARIES})
            set(CMAKE_REQUIRED_LIBRARIES ${TERMLIB_LIBRARY})
-           if(NOT DEFINED LIBTERM_RESULT)
-             CHECK_C_SOURCE_RUNS("${CMAKE_BINARY_DIR}/CMakeTmp/termlib.c" 
LIBTERM_RESULT)
-           endif(NOT DEFINED LIBTERM_RESULT)
            if(NOT LIBTERM_RESULT)
+              try_run(LIBTERM_RESULT LIBTERM_COMPILE
+               "${CMAKE_BINARY_DIR}/CMakeTmp/termlib.c"
+               COMPILE_DEFINITIONS "-DHAVE_${HDR}"
+               COMPILE_OUTPUT_VARIABLE CTERM_OUT
+               RUN_OUTPUT_VARIABLE RTERM_OUT)
+             #message("CTERM: ${CTERM_OUT}")
+             #message("RTERM: ${RTERM_OUT}")
+           endif(NOT LIBTERM_RESULT)
+           file(REMOVE "${CMAKE_BINARY_DIR}/CMakeTmp/termlib.c")
+           if(NOT LIBTERM_RESULT)
              set(TERMLIB_LIBRARY "NOTFOUND" CACHE STRING "TERMLIB" FORCE)
            else(NOT LIBTERM_RESULT)
              set(TERMLIB_LIBRARY ${TERMLIB_LIBRARY} CACHE STRING "TERMLIB" 
FORCE)

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to