From: Alan W. I. <ai...@us...> - 2006-07-26 21:47:29
|
Update of /cvsroot/plplot/plplot/cmake/modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19929/cmake/modules Modified Files: plplot.cmake Added Files: TestNaNAware.c csiro.cmake Log Message: Properly configure the csiro libraries. --- NEW FILE: csiro.cmake --- # cmake/modules/csiro.cmake # # Copyright (C) 2006 Alan W. Irwin # # This file is part of PLplot. # # PLplot is free software; you can redistribute it and/or modify # it under the terms of the GNU Library General Public License as published # by the Free Software Foundation; version 2 of the License. # # PLplot is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Library General Public License for more details. # # You should have received a copy of the GNU Library General Public License # along with the file PLplot; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # Module for determining all configuration variables for the CSIRO libraries. option(HAVE_QHULL "Enable use of the Qhull library" ON) option(WITH_CSA "Enable use of the csa library" ON) # This logic copied verbatim from csiro.ac for ix86 systems and alpha systems # with two possible compilers. In future, this logic will need to be # expanded to a lot more cases as we gain platform experience. set(NAN_CFLAGS ${CMAKE_C_FLAGS}) if(HAVE_QHULL OR WITH_CSA) if(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86") set(NAN_CFLAGS "${NAN_CFLAGS} -mieee-fp") else(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86") if(CMAKE_SYSTEM_PROCESSOR MATCHES "alpha.*") if(CMAKE_C_COMPILER MATCHES "gcc") set(NAN_CFLAGS "${NAN_CFLAGS} -mieee") else(CMAKE_C_COMPILER MATCHES "gcc") set(NAN_CFLAGS "${NAN_CFLAGS} -ieee") endif(CMAKE_C_COMPILER MATCHES "gcc") endif(CMAKE_SYSTEM_PROCESSOR MATCHES "alpha.*") endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i[0-9]86") if("NaNAwareCCompiler" MATCHES "^NaNAwareCCompiler$") message(STATUS "Check for NaN awareness in C compiler") try_run(NaNAwareCCompiler COMPILE_RESULT ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/cmake/modules/TestNaNAware.c CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${NAN_CFLAGS} OUTPUT_VARIABLE OUTPUT ) if(NOT COMPILE_RESULT) set(NaNAwareCCompiler ${COMPILE_RESULT}) endif(NOT COMPILE_RESULT) if(NaNAwareCCompiler) message(STATUS "Check for NaN awareness in C compiler - found") file(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log "Determining whether C compiler is NaN aware succeeded with " "the following output:\n${OUTPUT}\n\n" ) else(NaNAwareCCompiler) message(STATUS "Check for NaN awareness in C compiler - not found") message(STATUS "WARNING: Setting HAVE_QHULL and WITH_CSA to OFF.") set(HAVE_QHULL OFF CACHE BOOL "Enable use of the Qhull library" FORCE) set(WITH_CSA OFF CACHE BOOL "Enable use of the csa library" FORCE) file(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log "Determining whether C compiler is NaN aware failed with " "the following output:\n${OUTPUT}\n\n" ) endif(NaNAwareCCompiler) endif("NaNAwareCCompiler" MATCHES "^NaNAwareCCompiler$") endif(HAVE_QHULL OR WITH_CSA) if(HAVE_QHULL) find_library(QHULL_LIB qhull /usr/local/lib /usr/lib) if(QHULL_LIB) include(CheckFunctionExists) set(CMAKE_REQUIRED_LIBRARIES ${QHULL_LIB}) check_function_exists(qh_new_qhull QH_NEW_VARIABLE) set(CMAKE_REQUIRED_LIBRARIES) if(NOT QH_NEW_VARIABLE) message(STATUS "WARNING: Setting HAVE_QHULL to OFF.") set(HAVE_QHULL OFF CACHE BOOL "Enable use of the Qhull library" FORCE) endif(NOT QH_NEW_VARIABLE) else(QHULL_LIB) message(STATUS "WARNING: qhull library not found. Setting HAVE_QHULL to OFF." ) set(HAVE_QHULL OFF CACHE BOOL "Enable use of the Qhull library" FORCE) endif(QHULL_LIB) endif(HAVE_QHULL) --- NEW FILE: TestNaNAware.c --- /* Test for NaN awareness. */ #include <stdio.h> #if defined(__GNUC__) static const double NaN = 0.0 / 0.0; #elif defined(BIG_ENDIAN) || defined(_BIG_ENDIAN) static const long long lNaN = 0x7fffffffffffffff; # define NaN (*(double*)&lNaN) #else static const long long lNaN = 0xfff8000000000000; # define NaN (*(double*)&lNaN) #endif int main() { double x = NaN; /* N.B. CMake run-time tests need return of true (1) or false (0) not * the usual status code of 0 for success. */ if (x != x) return 1; else return 0; } Index: plplot.cmake =================================================================== RCS file: /cvsroot/plplot/plplot/cmake/modules/plplot.cmake,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- plplot.cmake 25 Jul 2006 03:25:18 -0000 1.16 +++ plplot.cmake 26 Jul 2006 21:47:22 -0000 1.17 @@ -1,7 +1,5 @@ # cmake/modules/plplot.cmake # -# Start driver initializations -# # Copyright (C) 2006 Alan W. Irwin # # This file is part of PLplot. @@ -94,6 +92,7 @@ # additional library support # ======================================================================= include(freetype) +include(csiro) # ======================================================================= # pkg-config support |