Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standardize build system #303

Closed
russellhancox opened this issue Sep 26, 2018 · 5 comments
Closed

Standardize build system #303

russellhancox opened this issue Sep 26, 2018 · 5 comments
Assignees
Labels

Comments

@russellhancox
Copy link
Collaborator

Santa currently has 3 build systems:

  1. The original Xcode project - this is still officially the right way to edit and build the project
  2. The CMake build rules added in Add CMake support, implement fuzzers #284, which was largely to support fuzzing parts of Santa
  3. A Bazel BUILD file, which is used internally at Google for building releases because that allows some automation for us.

Maintaining all 3 of these is a nuisance as any changes now have to be repeated in all 3 systems. I think the obvious answer is to settle on using Bazel everywhere and delete CMake/Xcode files from the repository. Tulsi can be used to create an Xcode project that uses Bazel for the actual build and the fuzzing rules in CMake can be ported to Bazel too. The other nice thing is that Bazel WORKSPACE files can be used to import external Git repositories without having to mess around with submodules.

@tburgin
Copy link
Member

tburgin commented Sep 26, 2018

+1
Once bazelbuild/rules_apple@d197cbb is merged. It will make the move to bazel pretty seamless.

@russellhancox
Copy link
Collaborator Author

This is almost complete, just the fuzzing rules to finish.

@russellhancox
Copy link
Collaborator Author

I also need to split these rules out, the BUILD file is over 500 lines because it contains everything when really there should be separate BUILD files for separate components.

The fuzzing rules are taking longer than I expected because of mixing objc and cc code and targeting macOS. I'm working on some helper rules for the tests to make them clearer.

@pmarkowsky
Copy link
Contributor

There's also https://github.com/bazelbuild/rules_fuzzing now. Though looks like macos doesn't work out of the box.

@pmarkowsky pmarkowsky self-assigned this Feb 17, 2022
@pmarkowsky pmarkowsky added this to the 2022.5 Release milestone Mar 14, 2022
@russellhancox
Copy link
Collaborator Author

Opened #815 to track getting the fuzzing rules added, closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants