Panda3D
dtool_platform.h
Go to the documentation of this file.
1 /**
2  * PANDA 3D SOFTWARE
3  * Copyright (c) Carnegie Mellon University. All rights reserved.
4  *
5  * All use of this software is subject to the terms of the revised BSD
6  * license. You should have received a copy of this license along
7  * with this source code in a file named "LICENSE."
8  *
9  * @file dtool_platform.h
10  * @author drose
11  * @date 2009-08-03
12  */
13 
14 #ifndef DTOOL_PLATFORM_H
15 #define DTOOL_PLATFORM_H
16 
17 /* This file defines the macro DTOOL_PLATFORM, which is used in
18  PandaSystem and a few other places to report the current platform
19  string. In practice, this string is primarily useful for the
20  packaged runtime system. */
21 
22 #include "dtool_config.h"
23 
24 #if defined(DTOOL_PLATFORM)
25 // This has already been defined explicitly by the Config.pp file.
26 
27 #elif defined(_WIN64)
28 #define DTOOL_PLATFORM "win_amd64"
29 
30 #elif defined(_WIN32)
31 #define DTOOL_PLATFORM "win_i386"
32 
33 #elif defined(__APPLE__)
34 #if defined(BUILD_IPHONE)
35 #define DTOOL_PLATFORM "iphone"
36 #elif defined(__ppc__)
37 #define DTOOL_PLATFORM "osx_ppc"
38 #elif defined(__i386__)
39 #define DTOOL_PLATFORM "osx_i386"
40 #elif defined(__x86_64)
41 #define DTOOL_PLATFORM "osx_amd64"
42 #elif defined(__aarch64__)
43 #define DTOOL_PLATFORM "osx_aarch64"
44 #endif
45 
46 #elif defined(__FreeBSD__)
47 #if defined(__x86_64)
48 #define DTOOL_PLATFORM "freebsd_amd64"
49 #elif defined(__i386__)
50 #define DTOOL_PLATFORM "freebsd_i386"
51 #endif
52 
53 #elif defined(__ANDROID__)
54 #if defined(__ARM_ARCH_7A__)
55 #define DTOOL_PLATFORM "android_armv7a"
56 #elif defined(__aarch64__)
57 #define DTOOL_PLATFORM "android_aarch64"
58 #elif defined(__arm__)
59 #define DTOOL_PLATFORM "android_arm"
60 #elif defined(__mips__)
61 #define DTOOL_PLATFORM "android_mips"
62 #elif defined(__x86_64)
63 #define DTOOL_PLATFORM "android_amd64"
64 #elif defined(__i386__)
65 #define DTOOL_PLATFORM "android_i386"
66 #endif
67 
68 #elif defined(__aarch64__)
69 #define DTOOL_PLATFORM "linux_aarch64"
70 
71 #elif defined(__x86_64)
72 #define DTOOL_PLATFORM "linux_amd64"
73 
74 #elif defined(__i386)
75 #define DTOOL_PLATFORM "linux_i386"
76 
77 #elif defined(__arm__)
78 #define DTOOL_PLATFORM "linux_arm"
79 
80 #elif defined(__ppc__)
81 #define DTOOL_PLATFORM "linux_ppc"
82 #endif
83 
84 #if !defined(DTOOL_PLATFORM) && !defined(CPPPARSER)
85 #error "Can't determine platform; please define DTOOL_PLATFORM in Config.pp file."
86 #endif
87 
88 #endif