Revision: 41254
          http://brlcad.svn.sourceforge.net/brlcad/?rev=41254&view=rev
Author:   starseeker
Date:     2010-11-05 19:52:31 +0000 (Fri, 05 Nov 2010)

Log Message:
-----------
Start trying to make a more generic version of the CMake functionality for 
checking things.  This one will hopefully cover both the config.h case and the 
CFLAGS case, although a lot of rewiring is needed to test it properly.

Modified Paths:
--------------
    brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake

Modified: 
brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
===================================================================
--- brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake    
2010-11-05 17:47:40 UTC (rev 41253)
+++ brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake    
2010-11-05 19:52:31 UTC (rev 41254)
@@ -12,7 +12,7 @@
                IF(NOT ${ARGV1})
                        CHECK_C_COMPILER_FLAG(-${flag} 
${UPPER_FLAG}_COMPILER_FLAG)
                        IF(${UPPER_FLAG}_COMPILER_FLAG)
-                               MESSAGE("Found ${ARGV1} - setting to -${flag}")
+                               MESSAGE("- Found ${ARGV1} - setting to 
-${flag}")
                                SET(${ARGV1} "-${flag}" CACHE STRING "${ARGV1}" 
FORCE)
                        ENDIF(${UPPER_FLAG}_COMPILER_FLAG)
                ENDIF(NOT ${ARGV1})
@@ -34,6 +34,11 @@
 
 # Automate putting variables from tests into CFLAGS,
 # and otherwise wrap check macros in extra logic as needed
+# These functions will do either of two jobs - if a
+# CONFIG_H_FILE is defined, they will append cmakedefine
+# (or occasionally straight define) statements to that file.
+# If a CONFIG_CFLAGS variable is defined, they will append
+# an appropriate definition to that variable.
 
 INCLUDE(CheckFunctionExists)
 INCLUDE(CheckIncludeFile)
@@ -45,22 +50,32 @@
 INCLUDE(CheckCSourceCompiles)
 INCLUDE(ResolveCompilerPaths)
 
-MACRO(CHECK_FUNCTION_EXISTS_D function var)
-  CHECK_FUNCTION_EXISTS(${function} ${var})
-  if(${var})
-                        SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-D${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
-  endif(${var})
-ENDMACRO(CHECK_FUNCTION_EXISTS_D)
+MACRO(CONFIG_CHECK_FUNCTION_EXISTS function var)
+       CHECK_FUNCTION_EXISTS(${function} ${var})
+       IF(${var})
+               IF(CONFIG_H_FILE)
+                       FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+               ENDIF(CONFIG_H_FILE)
+               IF(CONFIG_CFLAGS)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} -D${var}=1" 
CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+               ENDIF(CONFIG_CFLAGS)
+       ENDIF(${var})
+ENDMACRO(CONFIG_CHECK_FUNCTION_EXISTS)
 
-MACRO(CHECK_INCLUDE_FILE_D filename var)
-  CHECK_INCLUDE_FILE(${filename} ${var})
-  if(${var})
-                        SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-D${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
-  endif(${var})
-ENDMACRO(CHECK_INCLUDE_FILE_D)
+MACRO(CONFIG_CHECK_INCLUDE_FILE filename var)
+       CHECK_INCLUDE_FILE(${filename} ${var})
+       IF(${var})
+               IF(CONFIG_H_FILE)
+                       FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+               ENDIF(CONFIG_H_FILE)
+               IF(CONFIG_CFLAGS)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} -D${var}=1" 
CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+               ENDIF(CONFIG_CFLAGS)
+       ENDIF(${var})
+ENDMACRO(CONFIG_CHECK_INCLUDE_FILE)
 
-MACRO(CHECK_INCLUDE_FILE_USABILITY_D filename var)
-       CHECK_INCLUDE_FILE_D(${filename} HAVE_${var})
+MACRO(CONFIG_CHECK_INCLUDE_FILE_USABILITY filename var)
+       CHECK_INCLUDE_FILE(${filename} HAVE_${var})
        IF(HAVE_${var})
                SET(HEADER_SRC "
                #include <${filename}>
@@ -69,44 +84,65 @@
                CHECK_C_SOURCE_COMPILES("${HEADER_SRC}" ${var}_USABLE)
        ENDIF(HAVE_${var})
        IF(NOT HAVE_${var} OR NOT ${var}_USABLE)
-               SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DNO_${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
+               IF(CONFIG_H_FILE)
+                       FILE(APPEND ${CONFIG_H_FILE} "#define NO_${var} 1\n")
+               ENDIF(CONFIG_H_FILE)
+               IF(CONFIG_CFLAGS)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DNO_${var}=1" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+               ENDIF(CONFIG_CFLAGS)
        ENDIF(NOT HAVE_${var} OR NOT ${var}_USABLE)
-ENDMACRO(CHECK_INCLUDE_FILE_USABILITY_D filename var)
+ENDMACRO(CONFIG_CHECK_INCLUDE_FILE_USABILITY filename var)
 
-MACRO(CHECK_INCLUDE_FILE_CXX_D filename var)
-  CHECK_INCLUDE_FILE_CXX(${filename} ${var})
-  if(${var})
-        SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} -D${var}=1" CACHE 
STRING "TCL CFLAGS" FORCE)
-  endif(${var})
-ENDMACRO(CHECK_INCLUDE_FILE_CXX_D)
+MACRO(CONFIG_CHECK_INCLUDE_FILE_CXX filename var)
+       CHECK_INCLUDE_FILE_CXX(${filename} ${var})
+       IF(${var})
+               IF(CONFIG_H_FILE)
+                       FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+               ENDIF(CONFIG_H_FILE)
+               IF(CONFIG_CFLAGS)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} -D${var}=1" 
CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+               ENDIF(CONFIG_CFLAGS)
+       ENDIF(${var})
+ENDMACRO(CONFIG_CHECK_INCLUDE_FILE_CXX)
 
-MACRO(CHECK_TYPE_SIZE_D typename var)
+MACRO(CONFIG_CHECK_TYPE_SIZE typename var)
        FOREACH(arg ${ARGN})
                SET(headers ${headers} ${arg})
        ENDFOREACH(arg ${ARGN})
        SET(CHECK_EXTRA_INCLUDE_FILES ${headers})
        CHECK_TYPE_SIZE(${typename} HAVE_${var}_T)
        SET(CHECK_EXTRA_INCLUDE_FILES)
-       if(HAVE_${var}_T)
-          SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DHAVE_${var}_T=1" CACHE STRING "TCL CFLAGS" FORCE)
-               SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DSIZEOF_${var}=${HAVE_${var}_T}" CACHE STRING "TCL CFLAGS" FORCE)
-       endif(HAVE_${var}_T)
-ENDMACRO(CHECK_TYPE_SIZE_D)
+       IF(HAVE_${var}_T)
+               IF(CONFIG_H_FILE)
+                       FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_${var}_T 
1\n")
+                       FILE(APPEND ${CONFIG_H_FILE} "#define SIZEOF_${var} 
${HAVE_${var}_T}\n")
+               ENDIF(CONFIG_H_FILE)
+               IF(CONFIG_CFLAGS)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DHAVE_${var}_T=1" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DSIZEOF${var}=${HAVE_${var}_T}" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+               ENDIF(CONFIG_CFLAGS)
+       ENDIF(HAVE_${var}_T)
+ENDMACRO(CONFIG_CHECK_TYPE_SIZE)
 
-MACRO(CHECK_STRUCT_HAS_MEMBER_D structname member header var)
+MACRO(CONFIG_CHECK_STRUCT_HAS_MEMBER structname member header var)
        CHECK_STRUCT_HAS_MEMBER(${structname} ${member} ${header} HAVE_${var})
-       if(HAVE_${var})
-               SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DHAVE_${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
-       endif(HAVE_${var})
-ENDMACRO(CHECK_STRUCT_HAS_MEMBER_D)
+       IF(HAVE_${var})
+               IF(CONFIG_H_FILE)
+                       FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_${var} 
1\n")
+               ENDIF(CONFIG_H_FILE)
+               IF(CONFIG_CFLAGS)
+                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DHAVE_${var}=1" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
+               ENDIF(CONFIG_CFLAGS)
+       ENDIF(HAVE_${var})
+ENDMACRO(CONFIG_CHECK_STRUCT_HAS_MEMBER)
 
-MACRO(CHECK_LIBRARY targetname lname func)
+MACRO(CONFIG_CHECK_LIBRARY targetname lname func)
        IF(NOT ${targetname}_LIBRARY)
                CHECK_LIBRARY_EXISTS(${lname} ${func} "" 
HAVE_${targetname}_${lname})
                IF(HAVE_${targetname}_${lname})
-                       RESOLVE_LIBRARIES (${targetname}_LIBRARY "-l${lname}")
+                       RESOLVE_LIBRARIES(${targetname}_LIBRARY "-l${lname}")
                        SET(${targetname}_LINKOPT "-l${lname}")
                ENDIF(HAVE_${targetname}_${lname})
        ENDIF(NOT ${targetname}_LIBRARY)
-ENDMACRO(CHECK_LIBRARY lname func)
+ENDMACRO(CONFIG_CHECK_LIBRARY lname func)
 


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

------------------------------------------------------------------------------
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to