Gitiles: Implement Buck driven build Until extension system is released by Buck team [1], factor out existing Buck building blocks as Bucklets in standalone git repository and reuse it as Git submodule to implement Buck driven build [2]. To build gitiles `gitiles` target is used: buck build gitiles To build servlet, sources and javadoc in addition, `all` target is used: buck build all that produces: buck-out/gen/gitiles.war buck-out/gen/servlet.jar buck-out/gen/src.jar buck-out/gen/javadoc.jar To execute the tests: buck test --all To generate eclipse project: bucklets/tools/eclipse.py To fetch sources for all dependent libraries too: bucklets/tools/eclipse.py --src To install gitiles-servlet into local Maven repository: buck build mvn_install To deploy gitiles-servlet into remote Maven repository: buck build mvn_deploy [1] http://stackoverflow.com/questions/16681527/buck-vs-gradle-pros-and-cons-for-android-build-systems [2] https://gerrit.googlesource.com/bucklets Change-Id: Ib824dac6423d69c298f9c30ed7a0c05b4d6447c0
diff --git a/BUCK b/BUCK new file mode 100644 index 0000000..e9083fc --- /dev/null +++ b/BUCK
@@ -0,0 +1,50 @@ +include_defs('//VERSION') +include_defs('//bucklets/maven_package.bucklet') +TYPE = 'snapshot' if GITILES_VERSION.endswith('-SNAPSHOT') else 'release' + +DEPS = [ + '//gitiles-servlet:servlet', + '//gitiles-servlet:src', + '//gitiles-servlet:javadoc', + '//gitiles-war:gitiles', +] + +java_library( + name = 'classpath', + deps = [ + '//gitiles-servlet:servlet', + '//gitiles-servlet:servlet_tests', + '//gitiles-dev:dev', + ] +) + +maven_package( + repository = 'gerrit-api-repository', + url = 'gs://gerrit-api/%s' % TYPE, + version = GITILES_VERSION, + jar = {'gitiles-servlet': '//gitiles-servlet:servlet'}, + src = {'gitiles-servlet': '//gitiles-servlet:src'}, + doc = {'gitiles-servlet': '//gitiles-servlet:javadoc'}, +) + +def b(): + a = set() + for d in DEPS: + n,t = d.split(':') + a.add(t) + out = "%s.%s" % (t, 'war' if 'war' in n else 'jar') + genrule( + name = t, + cmd = 'ln -s $(location %s) $OUT' % d, + deps = [d], + out = out, + ) + + genrule( + name = 'all', + cmd = 'echo done >$OUT', + deps = [':' + e for e in a], + out = '__fake.gitiles__', + ) + +b()