apmanager: initial skeleton files.

BUG=chromium:423407
TEST=FEATURES=test emerge-$BOARD apmanager
     USE='clang asan' FEATURES=test emerge-$BOARD apmanager
CQ-DEPEND=CL:223258, CL:223302

Change-Id: Ib42bd1eef4a9d6b0f30e085a64e9454c5b618d28
Reviewed-on: https://chromium-review.googlesource.com/223322
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
diff --git a/apmanager.gyp b/apmanager.gyp
new file mode 100644
index 0000000..bd27931
--- /dev/null
+++ b/apmanager.gyp
@@ -0,0 +1,96 @@
+{
+  'target_defaults': {
+    'variables': {
+      'deps': [
+        'libchrome-<(libbase_ver)',
+        'libchromeos-<(libbase_ver)',
+      ],
+    },
+    'cflags': [
+      '-Wextra',
+      '-Wno-unused-parameter',  # base/lazy_instance.h, etc.
+    ],
+  },
+  'targets': [
+    {
+      'target_name': 'apmanager-adaptors',
+      'type': 'none',
+      'variables': {
+        'generate_dbus_bindings_type': 'adaptor',
+        'generate_dbus_bindings_in_dir': 'dbus_bindings',
+        'generate_dbus_bindings_out_dir': 'include/apmanager/dbus_adaptors',
+      },
+      'sources': [
+        '<(generate_dbus_bindings_in_dir)/org.chromium.apmanager.Manager.xml',
+      ],
+      'includes': ['../common-mk/generate-dbus-bindings.gypi'],
+    },
+    {
+      'target_name': 'apmanager-proxies',
+      'type': 'none',
+      'variables': {
+        'xml2cpp_type': 'proxy',
+        'xml2cpp_in_dir': 'dbus_bindings',
+        'xml2cpp_out_dir': 'include/apmanager/dbus_proxies',
+      },
+      'sources': [
+        '<(xml2cpp_in_dir)/org.chromium.apmanager.Manager.xml',
+      ],
+      'includes': ['../common-mk/xml2cpp.gypi'],
+    },
+    {
+      'target_name': 'libapmanager',
+      'type': 'static_library',
+      'dependencies': [
+        'apmanager-adaptors',
+        'apmanager-proxies',
+      ],
+      'variables': {
+        'exported_deps': [
+          'libmetrics-<(libbase_ver)',
+        ],
+        'deps': ['<@(exported_deps)'],
+      },
+      'all_dependent_settings': {
+        'variables': {
+          'deps': [
+            '<@(exported_deps)',
+          ],
+        },
+      },
+      'sources': [
+        'daemon.cc',
+        'manager.cc',
+      ],
+    },
+    {
+      'target_name': 'apmanagerd',
+      'type': 'executable',
+      'dependencies': ['libapmanager'],
+      'link_settings': {
+        'libraries': [
+          '-lminijail',
+        ],
+      },
+      'sources': [
+        'main.cc',
+      ],
+    },
+  ],
+  'conditions': [
+    ['USE_test == 1', {
+      'targets': [
+        {
+          'target_name': 'apmanager_testrunner',
+          'type': 'executable',
+          'dependencies': ['libapmanager'],
+          'includes': ['../common-mk/common_test.gypi'],
+          'sources': [
+            'manager_unittest.cc',
+            'testrunner.cc',
+          ],
+        },
+      ],
+    }],
+  ],
+}