Software build extensibility
First Claim
1. One or more processor-accessible storage media comprising processor-executable instructions that, when executed, direct a device to perform file compilation actions, comprising:
- accepting a plurality of files, each file of the plurality of files corresponding to a respective file type and including source code, wherein at least two files have different file types;
instantiating a plurality of build providers, wherein each of the plurality of build providers is exclusively associated with one file type;
instantiating a single instance of a build provider host, wherein the build provider host includes a plurality of interfaces, wherein each of the plurality of interfaces is associated with one of the plurality of build providers during file compilation actions;
calling a file path interface of each of the plurality of build providers, wherein a path to each associated file is received at the respective build providers from the build provider host;
invoking a usable code language interface of each of the plurality of build providers, wherein each of the plurality of build providers provides a code language to be used during file compilation actions;
sequentially calling a generate code interface of each build provider, wherein each build provider contributes at least a portion of the source code of the build provider'"'"'s associated file to be compiled via one or more of;
writing the source code to a code file object by calling a create code file object interface of the build provider host;
writing the source code to a stipulated path by calling a get code file path interface of the build provider host; and
generating a code compile unit by calling a get code object model provider interface and an add code compile unit interface of the build provider host;
ascertaining one or more resources of each file of the plurality of files via the associated build provider;
accessing a configuration file including a data structure that exclusively maps respective file types of the plurality of files to a respective build provider, wherein a new build provider is registered by updating the data structure of the configuration file to include a new entry that maps a new file type to the new build provider;
launching a compiler to compile the source code and the one or more resources of each file of the plurality of files into a single target assembly; and
using a build provider manager to control the plurality of build providers and the build provider host during file compilation actions.
2 Assignments
0 Petitions
Accused Products
Abstract
In a first exemplary media implementation, one or more processor-accessible media include a build provider that is tailored for a particular file type, the build provider adapted to generate code from files corresponding to the particular file type and to contribute the generated code to a compilation. In a second exemplary media implementation, one or more processor-accessible media include processor-executable instructions that, when executed, direct a device to perform actions including: accepting multiple files, each file of the multiple files corresponding to a respective file type and including source code; associating a build provider with each file of the multiple files in accordance with the corresponding respective file type; ascertaining the source code of each file of the multiple files via the associated build provider; and compiling the ascertained source code of each file of the multiple files into an assembly.
-
Citations
12 Claims
-
1. One or more processor-accessible storage media comprising processor-executable instructions that, when executed, direct a device to perform file compilation actions, comprising:
-
accepting a plurality of files, each file of the plurality of files corresponding to a respective file type and including source code, wherein at least two files have different file types; instantiating a plurality of build providers, wherein each of the plurality of build providers is exclusively associated with one file type; instantiating a single instance of a build provider host, wherein the build provider host includes a plurality of interfaces, wherein each of the plurality of interfaces is associated with one of the plurality of build providers during file compilation actions; calling a file path interface of each of the plurality of build providers, wherein a path to each associated file is received at the respective build providers from the build provider host; invoking a usable code language interface of each of the plurality of build providers, wherein each of the plurality of build providers provides a code language to be used during file compilation actions; sequentially calling a generate code interface of each build provider, wherein each build provider contributes at least a portion of the source code of the build provider'"'"'s associated file to be compiled via one or more of; writing the source code to a code file object by calling a create code file object interface of the build provider host; writing the source code to a stipulated path by calling a get code file path interface of the build provider host; and generating a code compile unit by calling a get code object model provider interface and an add code compile unit interface of the build provider host; ascertaining one or more resources of each file of the plurality of files via the associated build provider; accessing a configuration file including a data structure that exclusively maps respective file types of the plurality of files to a respective build provider, wherein a new build provider is registered by updating the data structure of the configuration file to include a new entry that maps a new file type to the new build provider; launching a compiler to compile the source code and the one or more resources of each file of the plurality of files into a single target assembly; and using a build provider manager to control the plurality of build providers and the build provider host during file compilation actions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
Specification