Commit Graph

354 Commits

Author SHA1 Message Date
Yonas Kolb
839bfa13c1 change generated versions to xcode 10 and swift 4.2 2018-10-18 23:20:00 +11:00
Yonas Kolb
c8ce6a52a5 fix cross platform targets 2018-10-15 22:55:59 +11:00
Yonas Kolb
b1b7901f1e don't generate duplicate product file references for cross platform targets 2018-10-14 21:58:19 +11:00
Yonas Kolb
32a36b0e7f update to xcodeproj 6.1.0 2018-10-10 20:26:25 +11:00
Yonas Kolb
9464f5f925 fix scheme order 2018-10-09 23:13:30 +11:00
Yonas Kolb
39079dd801 Merge origin/master into xcodeproj_5 2018-10-09 23:11:36 +11:00
Yonas Kolb
4b0169e42a sorted command line arguments 2018-10-09 23:08:18 +11:00
Yonas Kolb
8d6a70bdd0 Merge branch 'master' into xcodeproj_5
# Conflicts:
#	.circleci/config.yml
#	Sources/XcodeGenKit/PBXProjGenerator.swift
#	Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj
#	Tests/XcodeGenKitTests/ProjectFixtureTests.swift
#	Tests/XcodeGenKitTests/ProjectGeneratorTests.swift
2018-10-08 22:00:45 +11:00
Yonas Kolb
590128e156 Remove header build files that aren’t in a build phase 2018-10-08 17:29:09 +11:00
Yonas Kolb
010487ec35 use xcodeproj scheme blueprint 2018-10-04 20:25:18 +10:00
Yonas Kolb
74eb683f2b
Merge pull request #411 from alvarhansen/weak-link
Add framework weak linking setting
2018-10-02 20:47:50 +10:00
Alvar Hansen
ab0d71d96f Add framework weak linking setting 2018-10-02 11:07:58 +03:00
Yonas Kolb
e921c10902 remove iOS codesigning sdk restriction 2018-09-29 22:29:04 +10:00
Yonas Kolb
aa37eb0538 fix warning in TestProject 2018-09-29 21:57:51 +10:00
Yonas Kolb
ab8f43f587 build TestProject macOS app 2018-09-29 20:29:50 +10:00
Yonas Kolb
7f7b3d3d94 add xcpretty to output 2018-09-29 20:08:48 +10:00
Yonas Kolb
f5bebf57de swap Alamofire dependency for faster building Result 2018-09-29 18:31:47 +10:00
Yonas Kolb
3262fc8562 build test project on circleCI 2018-09-29 18:16:44 +10:00
Yonas Kolb
82755f8920 get watchOS app building 2018-09-29 18:05:10 +10:00
Yonas Kolb
baafa7cffd add scheme variants 2018-09-29 18:03:35 +10:00
Yonas Kolb
84f1c65632 update to xcodeproj 6 2018-09-25 23:38:38 +10:00
Yonas Kolb
e97b002655 upgrade to xcodeproj 5 2018-09-25 21:08:11 +10:00
Brentley Jones
aff1ae20d7 Move Carthage copy-frameworks script earlier
With Xcode 10 run scripts will prevent dependent targets from starting to compile. The Carthage copy-frameworks script should be right after compilation to speed up compilation.
2018-09-19 09:02:52 -05:00
Brentley Jones
e6a0af79a8 Allow specifying phase order for copy files phases
Copy Files phases don't stop dependent targets from starting to compile. If some of the files being copied are needed for the dependent target to compile then they need to happen before the Compile Sources phase. This change allows specifying that.
2018-09-19 09:00:59 -05:00
Brentley Jones
f46490fcc0 Move Copy Headers phase to be before Compile Sources
Fixes a cyclic dependency issue with the new Xcode 10 build system.
2018-09-14 10:29:25 -05:00
Brentley Jones
3ff16ddc53 Quote framework search paths 2018-08-20 09:14:55 -05:00
Brentley Jones
341e0214ed Automatically copy XPC Services to correct location 2018-08-15 08:30:55 -05:00
Brentley Jones
0921bd440e Add framework for test project 2018-08-14 09:26:35 -05:00
Brentley Jones
e519af6b79 Fix compiler error in test project 2018-08-14 09:26:21 -05:00
Brentley Jones
8f15a2bbdb Fix duplicated build file IDs for frameworks 2018-08-14 09:05:31 -05:00
Brentley Jones
c7d0af1cab Add to FRAMEWORK_SEARCH_PATHS for framework dependencies 2018-08-14 08:51:59 -05:00
Brentley Jones
461de39f8e
Merge pull request #366 from brentleyjones/static-library-swift-objc-interface-header
Automatically copy Swift.h header for static libraries
2018-08-09 09:58:39 -05:00
Brentley Jones
5f2b4074a6 Automatically copy Swift.h header for static libraries 2018-08-09 09:52:18 -05:00
Yonas Kolb
907e276394
Merge pull request #364 from rpassis/bugfix/CoreDataVersioning
Improvements to determining the current version of a versioned CoreData model
2018-08-02 22:37:35 +10:00
Brentley Jones
a784a0d2b9 Automatically copy public headers for static libraries 2018-07-31 08:26:40 -05:00
Brentley Jones
b1c8fb1db6 Automatically copy modulemap files correctly 2018-07-31 08:13:30 -05:00
Brentley Jones
717c899179
Merge pull request #345 from brentleyjones/modulemap
Add support for Copy Files build phase
2018-07-31 08:01:58 -05:00
Rogerio de Paula Assis
9831711c2c Adds parsing of .xccurrentversion inside a CoreData versioned model to determine its current active version 2018-07-31 08:01:39 +10:00
Brentley Jones
5e96eedd78 Add support for Copy Files build phase 2018-07-30 08:14:06 -05:00
Brentley Jones
0ec3b1d278 Make directlyEmbedCarthageDependencies work for downstream depenedenies
If using `transitivelyLinkDependencies` this already worked. In the future `getAllDependenciesPlusTransitiveNeedingEmbedding` and `getAllCarthageDependencies` should really be the same mechanism.
2018-07-24 19:56:52 -05:00
Brentley Jones
b18cd551cb Default directlyEmbedCarthageDependencies to true for tests 2018-07-24 19:56:08 -05:00
Brentley Jones
452310d464 Add names to non-generic Copy Files phases 2018-07-24 19:13:21 -05:00
Yonas Kolb
b8058827c1
Merge pull request #356 from yonaskolb/sorting
Change group sorting
2018-07-24 23:34:15 +10:00
Brentley Jones
15af4fd1d9 Add requiresObjCLinking to Target
Allows a Target to indicate that any target that links to it needs to set `-ObjC` in `OTHER_LDFLAGS`.
2018-07-24 08:03:03 -05:00
Yonas Kolb
f51280485d added options.groupSortPosition 2018-07-24 22:59:24 +10:00
Yonas Kolb
91d2177f84 sort groups under files 2018-07-24 22:45:52 +10:00
Yonas Kolb
2be5aabaff sort Projects and Frameworks groups at the end 2018-07-24 22:44:35 +10:00
Yonas Kolb
38e9a89c09 add aggregate targets to project 2018-07-24 22:06:31 +10:00
Yonas Kolb
884490f955 add attributes to AggregateTarget 2018-07-24 22:05:29 +10:00
Yonas Kolb
3b17164bbf add aggregate targets 2018-07-24 22:05:29 +10:00
Yonas Kolb
31c3f1de0f
Merge pull request #355 from yonaskolb/target_template
Add target templates
2018-07-24 22:03:10 +10:00
Brentley Jones
2e53422f82 Transitively link library.static dependencies 2018-07-23 09:23:14 -05:00
Brentley Jones
0afd7058bb Only link static libraries to executables 2018-07-23 09:23:14 -05:00
Yonas Kolb
c9ab3af76e merge target onto templates 2018-07-23 20:27:50 +10:00
Yonas Kolb
c50d1dd157 add target templates 2018-07-22 21:49:39 +10:00
Brentley Jones
92ec7a8e63 Fix compilerFlags incorrectly being set on non-sources build phases 2018-07-18 08:16:27 -05:00
Yonas Kolb
4d74986799 default transitivelyLinkDependencies to false 2018-07-06 00:08:33 +10:00
Yonas Kolb
b1497e2f8c Code sign all depencencies except executables 2018-07-04 09:50:00 +10:00
Yonas Kolb
01815e7e4e Update to 1.10.0 2018-07-03 21:45:00 +10:00
Yonas Kolb
be3a4dd1f6
Merge pull request #327 from brentleyjones/transitively-embed
Transitively embed dependencies
2018-07-02 12:01:29 +10:00
Brentley Jones
dd4f2e437a Transitively embed dependencies
If a target embeds dependencies (i.e. App and Test bundles) and a dependency has dependencies that can be embedded, then we should embed those dependencies as long as they weren't embedded along the way.
2018-06-29 13:17:02 -05:00
Brentley Jones
cc4674c6b8 Fix launch action to not run frameworks
Currently generated schemes incorrectly are launchable for frameworks. This change implements them in the same way that Xcode naturally does.
2018-06-29 12:39:57 -05:00
Yonas Kolb
c79a205339 don't code sign target dependencies by default 2018-06-27 22:44:19 +10:00
Yonas Kolb
c223084edf add iMessage app 2018-06-27 22:44:19 +10:00
Yonas Kolb
c8bedc81b5 add dependency name to PBXContainerItemProxy deterministic reference 2018-06-27 22:43:25 +10:00
Yonas Kolb
d9f5744ca3 add build rule unit tests 2018-06-27 22:41:14 +10:00
Yonas Kolb
bf61995f72 fix decoding dictionaries with dot keys 2018-06-26 21:29:44 +10:00
Yonas Kolb
27032fce1d
Merge pull request #296 from sascha/feature/legacy-target-fix
Remove file/product reference for legacy targets
2018-06-03 18:48:09 +10:00
Yonas Kolb
5d611e008a test excluding .xcodeproj 2018-06-03 16:49:09 +10:00
Yonas Kolb
701df1c915
Merge pull request #306 from yonaskolb/build_rule
Add build rules
2018-05-24 16:22:06 +10:00
Yonas Kolb
5f99d0c82d always generate Sources build phase 2018-05-14 10:38:43 +10:00
Yonas Kolb
542668d9f0 add build rules 2018-05-13 17:13:48 +10:00
Yonas Kolb
6305f31c83 get test fixture running 2018-05-03 12:17:36 +10:00
Alvar Hansen
06b82065b7 Remove testability flag from framework template
Currently this flag enables testability to all configurations. Correct
behaviour is to use default, project, value.
2018-04-23 11:32:05 +03:00
Sascha Schwabbauer
29ca91c3a2 Remove file/product reference for legacy targets
Apparently legacy targets created by Xcode do not have a file or product reference. Xodeproj is unable to parse legacy targets generated with XcodeGen with the following error message:

`Xcodeproj doesn't know about the following attributes {"productReference"=>"FR_184465694726"} for the 'PBXLegacyTarget' isa.`

This commit removes file and product references for legacy targets.
2018-04-13 18:06:05 +02:00
Yonas Kolb
29f4fa2123 Rename uses of spec to project 2018-04-12 23:17:07 +10:00
Yonas Kolb
81b8734dfc support files in fileGroups 2018-04-12 00:02:35 +10:00
Yonas Kolb
c0df295366 fix files not being added to root properly 2018-04-12 00:02:31 +10:00
Yonas Kolb
11bf00da2b added nested folders to test project 2018-04-10 20:22:38 +10:00
Yonas Kolb
9369ce3d63 commit fixture workspace check 2018-04-10 20:22:12 +10:00
Yonas Kolb
2d9e937df5 update to xcproj 4.3.0 2018-04-10 19:53:23 +10:00
Linus Unnebäck
3d98a48637
Target Xcode 9.3 2018-04-04 17:08:26 +01:00
Yonas Kolb
e9ec34cace update Yams to fix quoted values 2018-03-30 19:24:19 +11:00
Yonas Kolb
ebde9de151 Add target.attributes 2018-03-27 14:21:15 +11:00
Yonas Kolb
6e36e483b5 add quoted float parsing test 2018-03-26 23:15:17 +11:00
Yonas Kolb
0c39b28c08 upgrade to xcproj 4.2.0 2018-03-21 11:02:45 +11:00
Yonas Kolb
cc76e37d35
Merge pull request #238 from yonaskolb/ts-exclude-dsstore-bug
sources.excludes wasn't applied for localisedDirectory such as Base.lproj
2018-03-03 09:15:14 +11:00
Yonas Kolb
579d5ccb39
Merge pull request #252 from yonaskolb/header_visibility
Add TargetSource headerVisibility
2018-03-02 20:37:22 +11:00
Yonas Kolb
0c2b7dc718 change headerVisibility default back to public 2018-03-02 20:34:47 +11:00
Yonas Kolb
9e02dbd420 add yaml tests 2018-03-02 09:18:43 +11:00
Yonas Kolb
205c2e9711 embed carthage dependences into test targets 2018-03-01 23:09:52 +11:00
Yonas Kolb
59a2f4116d add headerVisibility 2018-02-27 09:28:17 +11:00
Yonas Kolb
1e6aef042e
Merge pull request #249 from yonaskolb/generate_code_data_models
Generate code data models properly
2018-02-26 18:29:25 +11:00
Yonas Kolb
ee89c01f05 get test fixture compiling again 2018-02-26 17:13:35 +11:00
Yonas Kolb
5e2f427c6f fix XCVersionGroup reference id stability 2018-02-26 17:11:25 +11:00
Yonas Kolb
b97261db36 generate code data models properly 2018-02-26 17:11:25 +11:00
Yonas Kolb
475b3810e4 add a folder of headers to Test fixture 2018-02-26 17:05:56 +11:00
Akio Yasui
58b2419bac
Add carthageExecutablePath option to specify where Carhtage executable is 2018-02-25 02:47:36 +09:00
Rahul Malik
4b9dac0ae8 Update tests 2018-02-13 20:02:18 -05:00
toshi0383
3ad9270f1e improve test coverage 2018-02-09 05:30:03 +09:00
toshi0383
8220a891b2 Add additional .DS_Store fixtures 2018-02-09 05:28:43 +09:00
toshi0383
53cf0faa21 Update .gitignore and spec fixtures 2018-02-09 05:16:41 +09:00
Yonas Kolb
af9104bb91 generate explicitFileType not lastKnownFileType for watchOS targets 2018-01-30 19:13:28 +11:00
Yonas Kolb
1edf5e02dc set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES to true in watch apps 2018-01-30 17:57:58 +11:00
Yonas Kolb
f9c621d19a format code 2018-01-30 17:47:04 +11:00
Yonas Kolb
2f8fc400d3 add watchOS app to fixture 2018-01-30 17:37:15 +11:00
Yonas Kolb
e10f3346af set lastKnownFileType on folder 2018-01-30 15:54:09 +11:00
Yonas Kolb
52c7316ce7 fix scheme buildable reference 2018-01-30 15:25:42 +11:00
Yonas Kolb
920767be1f add default test action language 2018-01-30 15:25:39 +11:00
Yonas Kolb
472e05193a update test fixture 2018-01-30 14:28:12 +11:00
Yonas Kolb
fe8c6cff00 commit test fixture scheme 2018-01-30 12:33:51 +11:00
Dave Lee
d72b5d810a Test scheme execution actions via test fixture 2018-01-29 16:43:50 -08:00
Yonas Kolb
7efe9c17f6 update to xcproj 4.0 2018-01-28 19:31:47 +10:30
Yonas Kolb
a176f85875 xcproj 4.0 2018-01-25 20:59:28 +10:30
Yonas Kolb
228aa18f42 Define lastKnownFileType for PBXFileReference explicitly 2018-01-21 23:06:34 +10:30
Yonas Kolb
fbfc138fc3 generate target FileReference lastKnownFileType 2018-01-21 22:42:26 +10:30
Yonas Kolb
a7380e106d generate target product name for file reference path 2018-01-21 22:41:23 +10:30
Yonas Kolb
e66c0e1c66 generate lastKnownFileType 2018-01-21 22:02:40 +10:30
Yonas Kolb
baa6133695 don't generate FileElement name if it's the same as path 2018-01-21 22:02:29 +10:30
Yonas Kolb
a9c56960fb
Merge pull request #221 from anreitersimon/feature/target-attributes
Generate UI Test Target Attributes
2018-01-10 12:44:08 +08:00
SMN
7b50a1fc3b renames TestCases file 2018-01-06 16:46:09 +01:00
SMN
8ced6daa81 removes TEST_HOST setting 2018-01-06 14:59:56 +01:00
SMN
77588aac5d adds App_iOS_UITests to test Project 2018-01-06 14:57:20 +01:00
Keith Smiley
b6ef82b3df
Add new option for disabling validations
This gives us an entry point for disabling specific project.yml
validations that sometimes shouldn't apply. The first example is
missingConfigs, which, if you use your .yml file in multiple projects,
can be too strict if the projects have different top level
configurations.
2018-01-05 11:41:33 -08:00
Alvar Hansen
8a45121a6f Change default LD_RUNPATH_SEARCH_PATHS to string
XCode will convert them to space separated string anyway.
This way we avoid generating unnecessary difference in file.
2018-01-03 13:43:08 +02:00
Yonas Kolb
2315dc89b2 fix Target reference generation 2017-12-27 17:41:06 +08:00
Yonas Kolb
99a1313064 write target product name 2017-12-27 16:41:50 +08:00
Yonas Kolb
da5993d07e update dependencies 2017-12-26 22:49:17 +08:00
Yonas Kolb
e3a6739b2a rename deploymentTargets to deploymentTarget 2017-12-26 17:48:01 +08:00
Yonas Kolb
cd6d179325 rename platformVersion to deploymentTarget 2017-12-26 17:36:41 +08:00
Yonas Kolb
f0486c644e add options.platformVersions and target.platformVersion 2017-12-26 17:36:22 +08:00
Yonas Kolb
4d1f3ee41a move icon preset settings 2017-12-22 13:28:59 +08:00
Yonas Kolb
ea6b927515 generate changed fixture scheme 2017-12-21 19:02:29 +08:00
Yonas Kolb
d7cb06b7b0 update xcode version 2017-12-20 23:14:06 +08:00
Brandon Kase
4c96dbb323 Support indentation options from xcproj (#190) 2017-12-18 13:28:33 -08:00
Brandon Kase
69b1368013 Support Legacy Targets (#175)
XcodeGen now supports "External Build Tool" target type (internally called
PBXLegacyTarget in Xcode). This is implied when the target provides a
`LegacyTarget` field in its spec.

PBXLegacyTargets are just like normal targets but the `isa` is different
and they have a notion of a buildTool. Most of the target logic doesn't
have to change.
2017-12-18 13:26:49 -08:00
Yonas Kolb
d43a9c030a update xcproj to 1.6.1 2017-12-09 14:27:10 +01:00
Alvar Hansen
5bd8e9f47c Remove unnecessary quote escaping. 2017-12-07 16:53:47 +02:00
Yonas Kolb
9676d1340b update to xcproj 1.6.0 2017-12-05 20:57:31 +01:00
Rahul Malik
8a46cde0b1
Add commandlineArguments to XcodeGenKit Scheme specifications (#172)
* Add commandlineArguments to XcodeGenKit Scheme specifications

* Update xcproj reference, format code, cleanup usage of
commandlineArguments in ProjectGenerator

* Update docs, CHANGELOG and equality checks in Scheme.swift

* Doc update

* Update fixture tests to have command line arguments. Fix remaining issue
with Scheme creation through "Test Scheme"
2017-11-28 11:02:59 -08:00
Alex Rupérez
c59c6a02db Added support for codeCoverageEnabled flag in target schemes. (#170)
* Resolves #169, added support for codeCoverageEnabled flag in target schemes.

* #170 @yonaskolb code review fix and docs update.

* More #170 @yonaskolb code review fix.

* Using gatherCoverageData instead of codeCoverageEnabled naming, thanks @kastiglione.

* Now using xcproj 1.5.0

* Another #170 @yonaskolb code review fix.
2017-11-24 11:45:56 +01:00
Yonas Kolb
0c1325cc5f remove header comments 2017-11-22 13:01:17 +01:00
rmalik
f2c4ebabfd Update XcodeGen for latest performance fixes in xcproj 2017-11-16 15:37:53 -08:00
ryohey
32e798f67a Update TestProject 2017-11-16 01:45:28 +09:00
Yonas Kolb
cf426ba5eb add ProjectSpec.options.developmentLanguage 2017-11-15 12:13:32 +01:00
Yonas Kolb
034eb4a448 tweaked format of generated references
- more characters
- underscore after type name
- remove duplication count unless greater than 1
2017-11-15 11:29:10 +01:00
Yonas Kolb
5a74572e10 make references more deterministic 2017-11-15 11:27:45 +01:00
Yonas Kolb
ce0f3b5665 add folder reference support 2017-11-15 01:22:02 +01:00
Yonas Kolb
e8188ad9f8 swiftformat 2017-11-13 21:33:59 +01:00
Yonas Kolb
57ca558d1a don't generate empty build phases 2017-11-12 22:17:08 +01:00
Yonas Kolb
ff3bfd6955 add support for linking directly to bundle or any directory with extension 2017-11-12 21:15:07 +01:00
Yonas Kolb
63c2d08977
add TargetSource.name for renaming sources (#146) 2017-11-12 20:26:36 +01:00
Yonas Kolb
6c1dcde2f5 commit fixture 2017-11-12 19:01:14 +01:00
Yonas Kolb
a2c41917e5
Fix groups (#144)
* failing createIntermediateDirectories test

* refactor sources

* add reference generator tests
2017-11-12 18:52:11 +01:00