On Tuesday 25 January 2011 03:32:36 luxInteg wrote: > On Sunday 28 November 2010 16:03:33 luxInteg wrote: > > I came across the useful wiki > > http://www.cmake.org/Wiki/CMake:How_To_Write_Platform_Checks > > I need '1's in config.g and I dont know how these are generated. > For gsl This the cmake output:- > > -- Looking for sys/types.h > -- Looking for sys/types.h - found > -- Looking for sys/stat.h > -- Looking for sys/stat.h - found > -- Looking for stdlib.h > -- Looking for stdlib.h - found > -- Looking for string.h > -- Looking for string.h - found > -- Looking for memory.h > -- Looking for memory.h - found > -- Looking for strings.h > -- Looking for strings.h - found > -- Looking for inttypes.h > -- Looking for inttypes.h - found > -- Looking for stdint.h > -- Looking for stdint.h - found > -- Looking for unistd.h > -- Looking for unistd.h - found > -- Looking for dlfcn.h > -- Looking for dlfcn.h - found > -- Looking for vprintf > -- Looking for vprintf - found > -- Looking for memcpy > -- Looking for memcpy - found > -- Looking for memmove > -- Looking for memmove - found > -- Looking for strdup > -- Looking for strdup - found > -- Looking for strtol > -- Looking for strtol - found > -- Looking for strtoul > -- Looking for strtoul - found > -- HAVE_EXIT_SUCCESS_AND_FAILURE > -- Looking for cos in m > -- Looking for cos in m - found > -- HAVE_DECL_FEENABLEEXCEPT > -- HAVE_DECL_HYPOT > -- HAVE_DECL_EXPM1 > -- HAVE_DECL_ACOSH > -- HAVE_DECL_ASINH > -- HAVE_DECL_ATANH > -- Looking for ldexp > -- Looking for ldexp - found > -- Looking for frexp > -- Looking for frexp - found > -- Looking for isinf > -- Looking for isinf - found > -- Looking for finite > -- Looking for finite - found > -- Looking for isnan > -- Looking for isnan - found > -- HAVE_DECL_ISFINITE > -- HAVE_DECL_LOG1P > -- HAVE_PRINTF_LONGDOUBLE > -- HAVE_EXTENDED_PRECISION_REGISTERS > -- HAVE_FPU_X86_SSE > -- Performing Test HAVE__FPU_SETCW > -- Performing Test HAVE__FPU_SETCW - Success > -- Performing Test HAVE_FPSETPREC > -- Performing Test HAVE_FPSETPREC - Failed > -- Performing Test HAVE__CONTROLFP > -- Performing Test HAVE__CONTROLFP - Failed > -- Performing Test HAVE__CONTROLFP_S > -- Performing Test HAVE__CONTROLFP_S - Failed > -- Performing Test HAVE_FPU_INLINE_ASM_X86 > -- Performing Test HAVE_FPU_INLINE_ASM_X86 - Success > -- HAVE_GNUX86_IEEE_INTERFACE > -- HAVE_IEEE_COMPARISONS > -- HAVE_IEEE_DENORMALS > -- Configuring done > -- Generating done > -- Build files have been written to: ~/S_TESTS/gsl-1.14/build > > > > > make fails like so > > ~/sys/infnan.c:98:3: error: #error "cannot define gsl_finite without > HAVE_DECL_FINITE or HAVE_IEEE_COMPARISONS" > ~/sys/infnan.c:115:3: error: #error "cannot define gsl_isnan without > HAVE_DECL_ISNAN or HAVE_IEEE_COMPARISONS" > > I thought I ensured that HAVE_IEEE_COMPARISONS and HAVE_DECL_FINITE > and HAVE_DECL_ISNAN etc were tested for and set to 1 in the config.h- > generating file (when these were not not generated by 'standard cmake > macros) and hoped that they would be with the latter. However there > were no '1's in the config.h file and the make failed. A quick/crude > substitute of appropriate '1's in the said file and the make > progressed. So how do I ensure that '1's are set in the generated > config.h file? > >
I still have not seen a reproducible way of generating a config.h.in to reflect results of 'platform' checks in cmake. Would a simple approach of generating )dynamically) such a config.h.in not be useful? Suppose we were start with an empty file -call this config.h.cmake (for instance) so to do a header file check for example check_include_file(somefile.h HAVE_SOMEFILE_H) if the above is true use the execute_process() to add a line (for example ) like so :- -------------- cat>>config.h.cmake<<"EOF" #define HAVE_SOMEFILE_H 1 EOF -------------- then repeat for other checks{and custom checks} adding compile definitions (to the appropriate CMakeLists,txt file) as required then in the end use configure_file() to transform this file in to the required config.h _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake