Commit Graph

1085 Commits

Author SHA1 Message Date
Grant Paul
9fbec89b04 Use type rather than character contents for specification types.
Simplifies the code significantly and abstracts the type values.
2016-12-14 17:01:15 -08:00
Grant Paul
9df693c86e Include shared specification domains in platform domain list.
Shared domains can include relevant specifications for platforms
and should be searched as well as platform-specific domains.
2016-12-14 17:01:15 -08:00
Onha Choe
0e7eaa08f9 ignore non-directory path in dependency-info-tool 2016-12-12 14:42:53 -08:00
Onha Choe
44c0681afb fix recursive path searching 2016-12-10 01:20:58 -08:00
Grant Paul
2329c45373 Pass correct environment to tools.
- Include all necessary paths in tool search paths.
 - Set `PATH` to match the paths searched for tools.
 - Set `DEVELOPER_DIR` for all invocations to stay self-contained.
 - Pass along process environment to tools rather than clearing.
2016-12-08 20:14:52 -08:00
Onha Choe
80ebf67b1f ibtool storyboard linker xcspec typo fix 2016-12-08 20:14:14 -08:00
Onha Choe
4ad09cc710 add xcspecs for ibtool operations 2016-12-08 10:25:42 -08:00
Onha Choe
b9b6be30cb add include for stdlib.h for abort() 2016-12-08 10:23:40 -08:00
Martin Storsjö
be01a77afc Fix recursive createDirectory for relative paths
A path like "foo/bar/baz" will end up looking for a directory
named "" unless any of the earlier directories already exist.
2016-12-06 22:30:38 -08:00
Onha Choe
5b7615d197 deployment target version env name fix 2016-12-06 21:25:53 -08:00
Grant Paul
f5e6efbba7 Add support for printing specific information with version option.
Implements missing feature from #204.
2016-12-06 21:24:53 -08:00
Martin Storsjö
a869e6746f Resolve the dsymutil tool invocation in the right way
This fixes expanding OutputPath properly for dsymutil, fixing
issue #208.
2016-12-06 21:22:44 -08:00
Martin Storsjö
325247d927 Make fileNameDisambiguator optional in File::ResolveBuildFiles
Previously it was by default always set, but to an empty string.

This avoids having an empty outputBaseName later in ClangResolver,
which caused the output object files be named ".o" for all input
source files.
2016-12-04 20:26:03 -08:00
Grant Paul
bf3c57a44e Support short options in lsbom.
Short options can be combined and used as a single flag. For split
short options, the value can follow in a combined option or in the
next option.
2016-11-28 11:01:52 -08:00
Grant Paul
0dce61fb1b Rename unit test to match name of code being tested. 2016-11-19 02:42:10 -08:00
Grant Paul
ad15b53241 Separate auxiliary files from invocations.
Auxiliary files were attached to invocations but had no relation to
the containing invocation. Collect them separately from invocations.
2016-11-19 02:42:10 -08:00
Grant Paul
f5aad6f42a Separate tool resolution from remainder of build implementation.
- Pass in lower-level types rather than larger wrappers.
 - Make header imports (almost) entirely self-contained.
2016-11-19 02:42:10 -08:00
Grant Paul
9f6e29e627 Always pass in inputs as tool inputs, rather than path strings.
This allows for easily specifying additional information as available.
2016-11-19 02:42:10 -08:00
Grant Paul
dc9e6c725d Remove reference to project objects from tool input.
This allows the tool resolution to be isolated from the project.
2016-11-19 02:42:10 -08:00
Grant Paul
ead6234652 Move tool inputs alongside the rest of the tool code.
Removes the reverse dependency on the phase handling.
2016-11-19 02:42:10 -08:00
Grant Paul
1d20089aa3 Use optionals for potentially missing properties of resolved files. 2016-11-19 02:42:10 -08:00
Stephane Sezer
8d2b9879b7 Fix a typo (copy-paste error?) in xcrun 2016-11-18 00:31:35 -08:00
Matthew Bauer
f94aa30b75 Prevent infinite loop in createDirectory.
createDirectory entered an infinite loop breaking xcbuild.

TODO: add tests for DefaultFilesystem.cpp (only MemoryFilesystem right
now)
2016-11-18 00:31:26 -08:00
Grant Paul
71940e8445 Partially update asset catalog compiler specification and resolver.
Asset catalog compilation now uses a custom variable to pass inputs
to the specification, and a custom grouping method to group inputs.

Does not pass sticker pack translations to asset catalog compiler,
as this seems to require parsing the asset catalog just to determine
which strings files should be used. Left as a future task.
2016-11-17 16:24:58 -08:00
Grant Paul
edf7f0de6c Complete newly added specifications. 2016-11-17 16:23:54 -08:00
Grant Paul
1f9b3c2592 Support loading specifications from a directory symlink. 2016-11-16 11:36:08 -08:00
Grant Paul
88c9f2c55b Use filesystem additions to replace ad-hoc implementations.
This removes the last unsafe use of the process context and launcher
since it was only used to copy files and change file permissions.

Includes a unit test for the copy tool, now that it's self-contained.
2016-11-15 14:56:28 -08:00
Grant Paul
7de697533d Add support for reading and writing filesystem permissions. 2016-11-15 14:56:28 -08:00
Grant Paul
2dd92c6038 Switch to type check filesystem entry types.
Rather than checking booleans, switch on an enumeration.
2016-11-15 14:56:28 -08:00
Grant Paul
5dc60c8c3b Add additional filesystem functionality.
- Creating directories is optionally recursive.
 - Copy files, symlinks, and directories, optionally recursive.
 - Remove files, symlinks, and directories, optionally recursive.
 - Simplify directory traversal API, make recurively optional.
2016-11-15 14:56:28 -08:00
Grant Paul
0ab861abcc Support reading JSON (as well as writing) in property list utility.
Also, fix default output format when performing modifications without
conversion. It would always fail due to not having a target format.
2016-11-15 11:47:26 -08:00
Matthew Bauer
dc2bb1c379 Add more xcspecs.
Adds:

- com.apple.build-tools.nmedit
- com.apple.compilers.lex
- com.apple.compilers.resource-copier
- com.apple.compilers.yacc
2016-11-11 12:35:52 -08:00
Onha Choe
0e9140921a fix builtin pbxcp 2016-11-09 17:20:36 -08:00
Grant Paul
6b73b95757 Fix specification to pass in preprocessor defines. 2016-11-08 23:14:05 -08:00
Grant Paul
70b7e25b0e Add unit test for property list copy built-in utility.
Tests basic functionality of copying multiple property lists while
converting them to a standard format.
2016-11-07 15:55:41 -08:00
Grant Paul
b892b152e1 Improve JSON parsing to handle more edge cases.
Using a JSON parser test suite, refine number and key parsing to match
the JSON specification. Remaining issues are related to Unicode support,
escape sequences, and trailing commas.

The last of those is intentionally non-conforming for compatibility.
2016-11-07 14:32:19 -08:00
Grant Paul
3f4520da4b Fix builtin tool execution in simple executor. Add unit test.
The success check was inverted for builtin tools. The correct behavior
can be tested using a series of in-memory resource implementations.
2016-11-07 13:06:49 -08:00
Grant Paul
234c1761aa Add null output formatter to print no additional output.
This is useful for quiet builds or for unit tests of execution.
2016-11-07 13:06:49 -08:00
Matthew Justin Bauer
0095088227 Add copy-{tiff,png}-file.xcspec to CMakeFiles.txt 2016-11-07 11:33:14 -08:00
brtsai
4357d4dccf made default usage print size and checksum for files 2016-11-04 18:58:35 -07:00
brtsai
82e641471f renamed octConvertingStream to stream 2016-11-04 18:58:35 -07:00
brtsai
2a401e275c made lsbom default usage print correct info
default usage prints mode(oct) and UID/GID now
2016-11-04 18:58:35 -07:00
Grant Paul
9ccf7c40ae Store order of print options in BOM list options. 2016-11-04 18:58:35 -07:00
Grant Paul
ef95e55f47 Delay resolving executable paths until execution time.
Rather than looking at the filesystem to find an executable path at
configuration time, find the executable at execution time. This allows
different executors to handle searching for paths differently (for
example, using internal or external builtin tools), and avoids using
the filesystem during configuration.
2016-10-28 21:06:03 -07:00
Grant Paul
fd3a151699 Add JSON support to property list utility. Fixes #160. 2016-10-28 14:29:10 -07:00
Grant Paul
e4f4b6b6ce Adjust loaded platform specifications for additional domains. 2016-10-27 17:11:27 -07:00
Onha Choe
ff45fb5f4b Put linker option "-dependency_info $(dependency_info_file)" only on darwin
linkers in other platforms won't have this option
2016-10-27 12:18:50 -07:00
Onha Choe
b680eb1fc5 address comments from https://github.com/facebook/xcbuild/pull/168 2016-10-25 17:02:06 -07:00
Onha Choe
cb78bce065 Be safe when putting -mininum-deployment-target option
if the option is not found and resolves to empty string,
it will have dangling -mininum-deployment-target option without value
and fail
2016-10-25 17:02:06 -07:00
Grant Paul
bcaed07eca Minor specification additions & cleanups.
- Complete strip and product validation specification options.
 - Fix typo in specification property and file type listing.
 - Minor formatting adjustments to a few specifications.
2016-10-24 14:05:35 -07:00