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