Created
August 22, 2011 04:35
-
-
Save timothy1ee/1161664 to your computer and use it in GitHub Desktop.
Vendor tasklist notes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Basic demo application | |
====================== | |
- Build a sample project/workspace | |
- Add all commonly used iOS libraries | |
Sample Folder structure | |
======================= | |
- demo_project | |
- demo_project.pbxproj | |
- multiple targets | |
- demo_project.xcworkspace <-- all vendor projects | |
- vendored | |
- three20 | |
- three20.pbxproj | |
- <source code for three20> | |
- asi-http-request | |
- asi-http-request.pbxproj | |
- Vendors | |
- Vendors.lock | |
- .gitignore | |
vendored | |
Implementing vendor install | |
=========================== | |
- Create an empty workspace (applescript) | |
- Add the application project to the workspace (applescript) | |
- Iterate through all projects in the workspace and "discover" any Vendor projects (applescript or plist?) | |
- Remove unused vendor projects | |
- Add required vendor projects | |
- Add/remove static library as dependency to target (plist) | |
- Add/remove a PBXBuildFile | |
- Add/remove a PBXFileReference | |
- Add/remove to PBXFrameworksBuildPhase as a file | |
- Add/remove to random ass group that also contains Frameworks and Products | |
- Add $(BUILT_PRODUCTS_DIR) to user header search path for target | |
- Add required Frameworks | |
- Modify linker flags | |
Creating a "proper" static library | |
================================== | |
If there is no project file... | |
- Create a new project file (based on static library template) (applescript) | |
- Add all header/source/resource files to project file (applescript) | |
For all project files... | |
- Mark select (or all) header files with public visibility | |
- Set the “Installation Directory” build setting to “$(BUILT_PRODUCTS_DIR)” | |
- Set the “Skip Install” build setting to “Yes” | |
- Set the “Public Headers Folder Path” to “$(TARGET_NAME)” | |
Vendor assumptions | |
================== | |
- Library specs will work for some recent version of a vendor library. However, the spec may not be completely accurate/functional for all versions. | |
- ... | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment