File: CompilerChecks.cmake

package info (click to toggle)
nexus 4.4.3-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 26,864 kB
  • sloc: cpp: 34,928; ansic: 17,317; f90: 2,326; xml: 2,071; java: 1,953; fortran: 1,529; python: 766; makefile: 532; sh: 460; tcl: 173; lisp: 169
file content (90 lines) | stat: -rw-r--r-- 3,602 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
## Process this file with cmake
#==============================================================================
#  NeXus - Neutron & X-ray Common Data Format
#  
#  CMakeLists for building the NeXus library and applications.
#
#  Copyright (C) 2011 Stephen Rankin
#  
#  This library is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by the
#  Free Software Foundation; either version 2 of the License, or (at your
#  option) any later version.
# 
#  This library 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 Lesser General Public License
#  for more details.
# 
#  You should have received a copy of the GNU Lesser General Public License
#  along with this library; if not, write to the Free Software Foundation,
#  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#             
#  For further information, see <http://www.nexusformat.org>
#
#
#==============================================================================


include(CheckCCompilerFlag)
include(CheckFunctionExists)
include(CheckTypeSize)
include(CheckIncludeFile)
include(CheckIncludeFiles)
include(CheckLibraryExists)

#------------------------------------------------------------------------------
# need this only in the case of C++ bindings
#------------------------------------------------------------------------------
if(ENABLE_CXX)
    include(CheckCXXCompilerFlag)
endif(ENABLE_CXX)

#------------------------------------------------------------------------------
# Check type sizes 
#------------------------------------------------------------------------------
CHECK_TYPE_SIZE("int" SIZEOF_INT)
set(HAVE_INT ${HAVE_SIZEOF_INT})
CHECK_TYPE_SIZE("long int" SIZEOF_LONG_INT)
set(HAVE_LONG_INT ${HAVE_SIZEOF_LONG_INT})
CHECK_TYPE_SIZE("long long int" SIZEOF_LONG_LONG_INT)
set(HAVE_LONG_LONG_INT ${HAVE_SIZEOF_LONG_LONG_INT})
CHECK_TYPE_SIZE("unsigned long long int" SIZEOF_UNSIGNED_LONG_LONG_INT)
set(HAVE_UNSIGNED_LONG_LONG_INT ${HAVE_SIZEOF_UNSIGNED_LONG_LONG_INT})
CHECK_TYPE_SIZE("size_t" SIZEOF_SIZE_T)
set(HAVE_SIZE_T ${HAVE_SIZEOF_SIZE_T})

#------------------------------------------------------------------------------
# Check for required functions
#------------------------------------------------------------------------------
CHECK_FUNCTION_EXISTS(ftime HAVE_FTIME)
CHECK_FUNCTION_EXISTS(tzset HAVE_TZSET)
CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP)

#------------------------------------------------------------------------------
# Check for required header files
#------------------------------------------------------------------------------
CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)

if (SIZEOF_LONG_LONG_INT EQUAL 8)
	set(PRINTF_INT64 "lld")
	set(PRINTF_UINT64 "llu")
else()
	message(SEND_ERROR "Cannot printf int64 and uint64")
endif()

#------------------------------------------------------------------------------
# Check and add compiler flags on Unix systems
#------------------------------------------------------------------------------
if (UNIX)
    check_add_c_compiler_flags("-Wall -Wno-unused-variable -Wno-sign-compare "
                               "-Wno-comment")

    if(ENABLE_CXX)
        check_add_cxx_compiler_flags("-Wall -Wno-unused-variable "
                                     "-Wno-sign-compare -Wno-comment")
    endif(ENABLE_CXX)
        
endif(UNIX)