4a135b9425b99aa067b4345fca7db4339e322143
[blender.git] / extern / carve / include / carve / win32.h
1 // Copyright 2006 Tobias Sargeant (toby@permuted.net)
2 // All rights reserved.
3 #pragma once
4
5 #pragma warning (disable : 4996)
6 #pragma warning (disable : 4786)
7
8 #include <string.h>
9 #include <stdlib.h>
10
11 #if !defined(__MINGW32__)
12 inline int strcasecmp(const char *a, const char *b) {
13   return _stricmp(a,b);
14 }
15 #endif
16
17 inline void srandom(unsigned long input) {
18   srand(input);
19 }
20
21 inline long random() {
22   return rand();
23 }
24
25 #if defined(_MSC_VER)
26 #  include <carve/cbrt.h>
27
28 #if _MSC_VER < 1300
29 // intptr_t is an integer type that is big enough to hold a pointer
30 // It is not defined in VC6 so include a definition here for the older compiler
31 typedef long intptr_t;
32 typedef unsigned long uintptr_t;
33 #endif
34
35 #  if _MSC_VER < 1600
36 // stdint.h is not available before VS2010
37 #if defined(_WIN32) && !defined(__MINGW32__)
38 /* The __intXX are built-in types of the visual complier! So we don't
39    need to include anything else here.
40    This typedefs should be in sync with types from MEM_sys_types.h */
41
42 typedef signed __int8  int8_t;
43 typedef signed __int16 int16_t;
44 typedef signed __int32 int32_t;
45
46 typedef unsigned __int8  uint8_t;
47 typedef unsigned __int16 uint16_t;
48 typedef unsigned __int32 uint32_t;
49
50 #  include <BaseTsd.h>
51 typedef SSIZE_T ssize_t;
52 #endif
53 typedef __int64 int64_t;
54 typedef unsigned __int64 uint64_t;
55 #  else
56 #    include <stdint.h>
57 #  endif
58 #endif