Difference between revisions of "Documentation/DevGuide/Extensions/Target Platform"

From Apache OpenOffice Wiki
Jump to: navigation, search
(clarification)
m (Add Platform Token for MacOSX x86-64)
(10 intermediate revisions by 6 users not shown)
Line 4: Line 4:
 
|NextPage=Documentation/DevGuide/Extensions/Simple License
 
|NextPage=Documentation/DevGuide/Extensions/Simple License
 
}}
 
}}
 +
{{Documentation/DevGuideLanguages|Documentation/DevGuide/Extensions/{{SUBPAGENAME}}}}
 
{{DISPLAYTITLE:Target Platform}}
 
{{DISPLAYTITLE:Target Platform}}
 
[Since OOo 3.0]
 
[Since OOo 3.0]
Line 90: Line 91:
 
|<code>macosx_x86</code>
 
|<code>macosx_x86</code>
 
|Mac X operating system running on a x86 CPU.
 
|Mac X operating system running on a x86 CPU.
 +
|-
 +
|<code>macosx_x86_64</code>
 +
|Mac X operating system running on a x86-64 CPU.
 
|-
 
|-
 
|<code>os2_x86</code>
 
|<code>os2_x86</code>
Line 106: Line 110:
  
 
The tokens with the description 'Not yet supported' will be supported at a later time (see [http://qa.openoffice.org/issues/show_bug.cgi?id=88578 issue 88578]).
 
The tokens with the description 'Not yet supported' will be supported at a later time (see [http://qa.openoffice.org/issues/show_bug.cgi?id=88578 issue 88578]).
 +
 +
===Backward Compatibility of Platforms===
 +
Often an OOo built for 32bit platform will run on the respective 64bit platform as well. In this case the platform element would only need the value of the 32bit platform. The reason is, that the extension manager compares the platform of the extension with the platform for which OOo was built. Here are some examples:
 +
 +
{|border="1" cellpadding=4 style="border-collapse:collapse;"
 +
|-bgcolor=#EDEDED
 +
 +
!Extension platform
 +
!OOo build for platform
 +
!Platform where OOo runs
 +
!Result
 +
|-
 +
|Linux_x86
 +
|Linux_x86
 +
|Linux_x86
 +
|ok
 +
|-
 +
|Linux_x86
 +
|Linux_x86
 +
|Linux_x86_64
 +
|ok
 +
|-
 +
|Linux_x86
 +
|Linux_x86_64
 +
|Linux_x86_64
 +
|fails
 +
|-
 +
|Linux_x86_64
 +
|Linux_x86
 +
|Linux_x86_64
 +
|fails
 +
|-
 +
|}
 +
 +
 +
===Generating the Platform String in the Build Environment===
 +
When it is necessary to generate the description.xml and the platform string during in the build process one can utilize the rtlbootstrap.mk which is contained in the inc folder. rtlbootstrap.mk is build in module sal and contains values for the operating system and processor. For example:
 +
 +
<source lang="ini">
 +
RTL_OS:=Linux
 +
RTL_ARCH:=x86
 +
</source>
 +
 +
These values correspond to the values of the bootstrap variable ${_OS} and ${_ARCH}.
 +
The file can be included in the makefile which generates the description.xml and use
 +
<source lang="ini">
 +
PLATFORMSTRING = $(RTL_OS:l)_$(RTL_ARCH:l)
 +
</source>
 +
to form the string.
 +
 +
 +
 +
'''See also'''
 +
*[[Documentation/DevGuide/Extensions/Description of XML Elements#Element /description/platform|XML description for description.xml]]
 +
*[[Documentation/DevGuide/Extensions/Example|Example of description.xml]]
 +
  
  
 
{{PDL1}}
 
{{PDL1}}
[[Category: Extensions]]
+
 
 +
[[Category:Documentation/Developer's Guide/Extensions]]

Revision as of 15:41, 30 April 2014



[Since OOo 3.0] It is possible to determine a target platform for an extension by providing a platform tag in the platform tag in the description.xml.

Please notice that this platform tag is ONLY used during installation in order to see if the user's platform is usable. It is NOT used for identifying an extension. Please read the identifier documentation for details.

If the platform is not present then it is assumed that all platforms are suitable. This corresponds to explicitly specifying all platforms:

<platform value="all" />

The attribute value may contain one to many platform tokens separated by commas:

<platform value="windows_x86,linux_x86,solaris_sparc" />

An extension can only be installed if one of the provided platform tokens matches the user's platform. The special 'all' platform represents all platforms. That is, the extension can be installed everywhere. Whereas

<platform value=" " />

would prevent installation on all platforms.

The tokens need to be defined by OOo. Every token can represent a particular platform constellation. The currently defined tokens are listed in the paragraph Platform Tokens

Do not confuse these tokens with those used to specify a native library in the manifest.xml. We will unify the use of the tokens in one of the future releases.

Platform Tokens

Token Description
all Represents all platforms.
freebsd_x86 FreeBSD operating system running on x86 compatible CPU.
freebsd_x86_64 FreeBSD operating system running on x86 compatible 64bit CPU.
linux_arm_eabi (Not yet supported) Linux operating system running on ARM CPU using 'EABI'.
linux_arm_oabi (Not yet supported) Linux operating system running on ARM CPU using 'OABI'.
linux_ia64 Linux operating system running on a ia64 CPU.
linux_mips_eb (Not yet supported) Linux operating system running on a MIPS CPU using 'EB' ABI.
linux_mips_el (Not yet supported) Linux operating system running on a MIPS CPU using 'EL' ABI.
linux_powerpc Linux operating system running on a POWERPC CPU.
linux_powerpc64 (Not yet supported) Linux operating system running on a POWERPC 64bit CPU.
linux_s390 Linux operating system running on a s390 CPU.
linux_s390x (Not yet supported) Linux operating system running on a s390x CPU.
linux_sparc Linux operating system running on a SPARC CPU.
linux_x86 Linux operating system running on a x86 CPU.
linux_x86_64 Linux operating system running on a x86 64 bit CPU.
macosx_powerpc Mac X operating system running on a POWERPC CPU.
macosx_x86 Mac X operating system running on a x86 CPU.
macosx_x86_64 Mac X operating system running on a x86-64 CPU.
os2_x86 OS/2 operating system running on a x86 CPU.
solaris_sparc Solaris operating system running on a SPARC CPU.
solaris_x86 Solaris operating system running on a x86 CPU.
windows_x86 Windows operating system running on a x86 CPU.

The tokens with the description 'Not yet supported' will be supported at a later time (see issue 88578).

Backward Compatibility of Platforms

Often an OOo built for 32bit platform will run on the respective 64bit platform as well. In this case the platform element would only need the value of the 32bit platform. The reason is, that the extension manager compares the platform of the extension with the platform for which OOo was built. Here are some examples:

Extension platform OOo build for platform Platform where OOo runs Result
Linux_x86 Linux_x86 Linux_x86 ok
Linux_x86 Linux_x86 Linux_x86_64 ok
Linux_x86 Linux_x86_64 Linux_x86_64 fails
Linux_x86_64 Linux_x86 Linux_x86_64 fails


Generating the Platform String in the Build Environment

When it is necessary to generate the description.xml and the platform string during in the build process one can utilize the rtlbootstrap.mk which is contained in the inc folder. rtlbootstrap.mk is build in module sal and contains values for the operating system and processor. For example:

RTL_OS:=Linux
RTL_ARCH:=x86

These values correspond to the values of the bootstrap variable ${_OS} and ${_ARCH}. The file can be included in the makefile which generates the description.xml and use

PLATFORMSTRING = $(RTL_OS:l)_$(RTL_ARCH:l)

to form the string.


See also


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages