Commit 13916440 authored by Wez Furlong's avatar Wez Furlong Committed by Facebook Github Bot

watchman: fixup FB internal mac packaging

Summary:
with the reshuffling around getdeps.py, and changes in folly/thrift/wangle,
our internal package stopped building.  This diff brings it back to life.  It is
a little bit interwined:

* Introduce a `--facebook-internal` switch to getdeps that causes `fb` in the
  build context to be set to `on` rather than `off`.  This allows specifying
  options in the manifest that are FB specific.
* Introduce cmake options to control the WATCHMAN_STATE_DIR and whether cmake
  should attempt to create WATCHMAN_STATE_DIR when it is installed.
* For FB specific builds on macOS, set the state dir to match our existing location
  and disable creation of WATCHMAN_STATE_DIR because that will ultimately be
  handling during package installation and we don't have privs for that on
  the machine generating the package.
* Adjust Facebook CI scripts to use getdeps for building and testing watchman

Reviewed By: simpkins

Differential Revision: D15337970

fbshipit-source-id: 8ab3c1f810decf5f0b16337dc1cbe6dc73d26426
parent 25bd8416
...@@ -213,7 +213,7 @@ class BuildCmd(SubCmd): ...@@ -213,7 +213,7 @@ class BuildCmd(SubCmd):
manifest = load_project(opts, args.project) manifest = load_project(opts, args.project)
ctx = context_from_host_tuple() ctx = context_from_host_tuple(facebook_internal=args.facebook_internal)
print("Building on %s" % ctx) print("Building on %s" % ctx)
projects = manifests_in_dependency_order(opts, manifest, ctx) projects = manifests_in_dependency_order(opts, manifest, ctx)
manifests_by_name = {m.name: m for m in projects} manifests_by_name = {m.name: m for m in projects}
...@@ -313,7 +313,7 @@ class TestCmd(SubCmd): ...@@ -313,7 +313,7 @@ class TestCmd(SubCmd):
opts = setup_build_options(args) opts = setup_build_options(args)
manifest = load_project(opts, args.project) manifest = load_project(opts, args.project)
ctx = context_from_host_tuple() ctx = context_from_host_tuple(facebook_internal=args.facebook_internal)
ctx["test"] = "on" ctx["test"] = "on"
projects = manifests_in_dependency_order(opts, manifest, ctx) projects = manifests_in_dependency_order(opts, manifest, ctx)
manifests_by_name = {m.name: m for m in projects} manifests_by_name = {m.name: m for m in projects}
...@@ -388,6 +388,12 @@ def build_argparser(): ...@@ -388,6 +388,12 @@ def build_argparser():
action="store_true", action="store_true",
default=False, default=False,
) )
common_args.add_argument(
"--facebook-internal",
help="Setup the build context as an FB internal build",
action="store_true",
default=False,
)
ap = argparse.ArgumentParser( ap = argparse.ArgumentParser(
description="Get and build dependencies and projects", parents=[common_args] description="Get and build dependencies and projects", parents=[common_args]
......
...@@ -98,7 +98,7 @@ class HostType(object): ...@@ -98,7 +98,7 @@ class HostType(object):
) )
def context_from_host_tuple(host_tuple=None): def context_from_host_tuple(host_tuple=None, facebook_internal=False):
""" Given an optional host tuple, construct a context appropriate """ Given an optional host tuple, construct a context appropriate
for passing to the boolean expression evaluator so that conditional for passing to the boolean expression evaluator so that conditional
sections in manifests can be resolved. """ sections in manifests can be resolved. """
...@@ -113,4 +113,5 @@ def context_from_host_tuple(host_tuple=None): ...@@ -113,4 +113,5 @@ def context_from_host_tuple(host_tuple=None):
"os": host_type.ostype, "os": host_type.ostype,
"distro": host_type.distro, "distro": host_type.distro,
"distro_vers": host_type.distrovers, "distro_vers": host_type.distrovers,
"fb": "on" if facebook_internal else "off",
} }
...@@ -26,3 +26,10 @@ fbcode/eden/fs/service = eden/fs/service ...@@ -26,3 +26,10 @@ fbcode/eden/fs/service = eden/fs/service
[cmake.defines] [cmake.defines]
ENABLE_EDEN_SUPPORT=ON ENABLE_EDEN_SUPPORT=ON
# FB macos specific settings
[cmake.defines.all(fb=on,os=darwin)]
# this path is coupled with the FB internal watchman-osx.spec
WATCHMAN_STATE_DIR=/opt/facebook/watchman/var/run/watchman
# tell cmake not to try to create /opt/facebook/...
INSTALL_WATCHMAN_STATE_DIR=OFF
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment