现在的位置: 首页 > 综合 > 正文

Xcode 利用宏定义区分iphone 模拟器和真机

2012年10月11日 ⁄ 综合 ⁄ 共 6720字 ⁄ 字号 评论关闭





 

#if TARGET_IPHONE_SIMULATOR


 

label
.
text
=
@"iphoneSimulator"
;

#elif TARGET_OS_IPHONE



label
.
text
=
@"iphoneDevice"
;

#endif

 

/*

    

File:      
TargetConditionals.h

 

    

Contains:  

Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone

    

                

Note: 
TargetConditionals.h
in 3.4 Universal Interfaces works

                       

with all compilers. 
This
header only recognizes compilers

                       

known to run on Mac OS X.

 

    

Copyright: 
(c) 2000-2008 by
Apple Inc., all rights reserved.

 

*/

 

#ifndef __TARGETCONDITIONALS__

#define __TARGETCONDITIONALS__

/****************************************************************************************************

 

   

TARGET_CPU_*   

   
These
conditionals specify which microprocessor instruction set is being

   

generated. 
At most one of
these is true, the rest are false.

 

       
TARGET_CPU_PPC         
- Compiler
is generating PowerPC instructions for 32-bit mode

       
TARGET_CPU_PPC64       
-
Compiler is generating PowerPC instructions for 64-bit mode

       
TARGET_CPU_68K         
- Compiler
is generating 680x0 instructions

       
TARGET_CPU_X86         
- Compiler
is generating x86 instructions

       
TARGET_CPU_ARM       
  
- Compiler is generating ARM
instructions

       
TARGET_CPU_MIPS        

- Compiler is generating MIPS instructions

       
TARGET_CPU_SPARC       
-
Compiler is generating Sparc instructions

       
TARGET_CPU_ALPHA       
-
Compiler is generating Dec Alpha instructions

 

 

   

TARGET_OS_*

   
These
conditionals specify in which Operating System the generated code will

   
run.
At most one of the these is true, the rest are false.

 

       
TARGET_OS_MAC          
-
Generate code will run under Mac OS

       
TARGET_OS_WIN32        

- Generate code will run under 32-bit Windows

       
TARGET_OS_UNIX         
- Generate
code will run under some non Mac OS X unix

       
TARGET_OS_EMBEDDED     
- Generate code
will run under an embedded OS variant

    
                             
of
one of the above OSes. Can be true at the same

                                 

time as TARGET_OS_MAC

       
TARGET_OS_IPHONE       
-
Generate code will run under iPhone OS

 

   

TARGET_RT_*

   
These
conditionals specify in which runtime the generated code will

   
run.
This is needed when the OS and CPU support more than one runtime

   
(e.g.
Mac OS X supports CFM and mach-o).

 

       
TARGET_RT_LITTLE_ENDIAN
- Generated code uses little endian format for integers

     

  
TARGET_RT_BIG_ENDIAN   
- Generated code uses big endian format for
integers   

       
TARGET_RT_64_BIT       
-
Generated code uses 64-bit pointers   

       
TARGET_RT_MAC_CFM      
-
TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used

       
TARGET_RT_MAC_MACHO    
- TARGET_OS_MAC is
true and Mach-O/dlyd runtime is used

 

 

   

TARGET_IPHONE_SIMULATOR    
- Generate code for running under iPhone
Simulator

       

 

****************************************************************************************************/

 

 

/*

 
*   
gcc based compiler used on
Mac OS X

 
*/

#if defined(__GNUC__) && ( defined(__APPLE_CPP__) ||
defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )

   

#define TARGET_OS_MAC              


1

   

#define TARGET_OS_WIN32            


0

   

#define TARGET_OS_UNIX             


0

   

#define TARGET_OS_EMBEDDED         

1

   

#define TARGET_OS_IPHONE           

1

   

#define TARGET_IPHONE_SIMULATOR    

0

   

#if defined(__ppc__)

       

#define TARGET_CPU_PPC         

1

       

#define TARGET_CPU_PPC64       

0

       

#define TARGET_CPU_68K         

0

       

#define TARGET_CPU_X86         

0

       

#define TARGET_CPU_X86_64      

0

       

#define TARGET_CPU_ARM         

0

       

#define TARGET_CPU_MIPS        

0

       

#define TARGET_CPU_SPARC       

0
  

       

#define TARGET_CPU_ALPHA       

0

       

#define TARGET_RT_LITTLE_ENDIAN
0

       

#define TARGET_RT_BIG_ENDIAN   

1

       

#define TARGET_RT_64_BIT       

0

       

#ifdef __MACOS_CLASSIC__

          

#define TARGET_RT_MAC_CFM   

1

          

#define TARGET_RT_MAC_MACHO 

0

       

#else

          

#define TARGET_RT_MAC_CFM   

0

          

#define TARGET_RT_MAC_MACHO 

1

      

#endif

   

#elif defined(__ppc64__)

       

#define TARGET_CPU_PPC         

0

       

#define TARGET_CPU_PPC64       

1

       

#define TARGET_CPU_68K         

0

       

#define TARGET_CPU_X86         

0

       

#define TARGET_CPU_X86_64      

0

       

#define TARGET_CPU_ARM         

0

       

#define TARGET_CPU_MIPS        

0

       

#define TARGET_CPU_SPARC       

0
  

       

#define TARGET_CPU_ALPHA       

0

       

#define TARGET_RT_LITTLE_ENDIAN
0

       

#define TARGET_RT_BIG_ENDIAN   

1

       

#define TARGET_RT_64_BIT       

1

       

#define TARGET_RT_MAC_CFM      

0

       

#define TARGET_RT_MAC_MACHO    

1

    

#elif defined(__i386__)

       

#define TARGET_CPU_PPC         

0

       

#define TARGET_CPU_PPC64       

0

       

#define TARGET_CPU_68K         

0

       

#define TARGET_CPU_X86         

1

       

#define TARGET_CPU_X86_64      

0

       

#define TARGET_CPU_ARM         

0

       

#define TARGET_CPU_MIPS        

0

       

#define TARGET_CPU_SPARC       

0

       

#define TARGET_CPU_ALPHA       

0

       

#define TARGET_RT_MAC_CFM      

0

       

#define TARGET_RT_MAC_MACHO    

1

       

#define TARGET_RT_LITTLE_ENDIAN
1

       

#define TARGET_RT_BIG_ENDIAN   

0

       

#define TARGET_RT_64_BIT       

0

    

#elif defined(__x86_64__)

       

#define TARGET_CPU_PPC         

0

       

#define TARGET_CPU_PPC64       

0

       

#define TARGET_CPU_68K         

0

       

#define TARGET_CPU_X86         

0

       

#define TARGET_CPU_X86_64      

1

       

#define TARGET_CPU_ARM         

0

       

#define TARGET_CPU_MIPS        

0

       

#define TARGET_CPU_SPARC       

0

       

#define TARGET_CPU_ALPHA       

0

       

#define TARGET_RT_MAC_CFM      

0

       

#define TARGET_RT_MAC_MACHO    

1

       

#define TARGET_RT_LITTLE_ENDIAN
1

       

#define TARGET_RT_BIG_ENDIAN   

0

       

#define TARGET_RT_64_BIT       

1

    

#elif defined(__arm__)

       

#define TARGET_CPU_PPC         

0

       

#define TARGET_CPU_PPC64       

0

       

#define TARGET_CPU_68K         

0

       

#define TARGET_CPU_X86         

0

       

#define TARGET_CPU_X86_64      

0

       

#define TARGET_CPU_ARM         

1

       

#define TARGET_CPU_MIPS        

0

       

#define TARGET_CPU_SPARC       

0

       

#define TARGET_CPU_ALPHA       

0

       

#define TARGET_RT_MAC_CFM      

0

       

#define TARGET_RT_MAC_MACHO    

1

       

#define TARGET_RT_LITTLE_ENDIAN
1

       

#define TARGET_RT_BIG_ENDIAN   

0

       

#define TARGET_RT_64_BIT       

0

   

#else

       

#error unrecognized GNU C compiler

   

#endif

 

 

/*

 
*  
CodeWarrior compiler from
Metrowerks/Motorola

 
*/

#elif defined(__MWERKS__)

   

#define TARGET_OS_MAC              


1

   

#define TARGET_OS_WIN32            


0

   

#define TARGET_OS_UNIX             


0

   

#define TARGET_OS_EMBEDDED         

0

   

#if defined(__POWERPC__)

       

#define TARGET_CPU_PPC         

1

       

#define TARGET_CPU_PPC64       

0

       

#define TARGET_CPU_68K         

0

       

#define TARGET_CPU_X86         

0

       

#define TARGET_CPU_MIPS        

0

       

#define TARGET_CPU_SPARC       

0

       

#define TARGET_CPU_ALPHA       

0

       

#define TARGET_RT_LITTLE_ENDIAN
0

       

#define TARGET_RT_BIG_ENDIAN   

1

   

#elif defined(__INTEL__)

       

#define TARGET_CPU_PPC         

0

       

#define TARGET_CPU_PPC64       

0

抱歉!评论已关闭.