{
  'target_defaults': {
    'defines': [
      'OS_CHROMEOS',
      'USE_CHEETS=<(USE_cheets)',
      'USE_NSS_CERTS',
      'USE_SYSTEMD=<(USE_systemd)',
    ],
    'variables': {
      'deps': [
        'dbus-1',
        'libbrillo-<(libbase_ver)',
        'libchrome-<(libbase_ver)',
        'libchromeos-ui-<(libbase_ver)',
        'libcontainer',
        'libcros_config',
        'libmetrics-<(libbase_ver)',
        'libminijail',
        'nss',
        # system_api depends on protobuf (or protobuf-lite). It must appear
        # before protobuf here or the linker flags won't be in the right
        # order.
        'system_api',
        'protobuf-lite',
        'vboot_host',
      ],
    },
  },
  'targets': [
    {
      # For naming, '-adaptors' suffix uses hyphen, but 'session_manager' uses
      # underscore. So, here intentionally mix them.
      'target_name': 'session_manager-adaptors',
      'type': 'none',
      'variables': {
        'dbus_service_config': 'dbus_bindings/dbus-service-config.json',
        'dbus_adaptors_out_dir': 'include/login_manager/dbus_adaptors',
      },
      'sources': [
        'dbus_bindings/org.chromium.SessionManagerInterface.xml',
      ],
      'includes': ['../common-mk/generate-dbus-adaptors.gypi'],
    },
    {
      'target_name': 'libsession_manager',
      'type': 'static_library',
      'dependencies': [
        'session_manager-adaptors',
        '../common-mk/external_dependencies.gyp:install_attributes-proto',
        '../common-mk/external_dependencies.gyp:policy-protos',
      ],
      'link_settings': {
        'libraries': [
          '-lbootstat',
          '-linstallattributes-<(libbase_ver)',
          '-lpolicy-<(libbase_ver)',
        ],
      },
      'sources': [
        'blob_util.cc',
        'browser_job.cc',
        'child_exit_handler.cc',
        'child_job.cc',
        'chrome_setup.cc',
        'container_config_parser.cc',
        'container_manager_impl.cc',
        'container_manager_interface.cc',
        'crossystem.cc',
        'crossystem_impl.cc',
        'cumulative_use_time_metric.cc',
        'dbus_util.cc',
        'device_local_account_manager.cc',
        'device_policy_service.cc',
        'file_checker.cc',
        'generator_job.cc',
        'key_generator.cc',
        'liveness_checker_impl.cc',
        'login_metrics.cc',
        'named_platform_handle_utils_posix.cc',
        'nss_util.cc',
        'owner_key_loss_mitigator.cc',
        'policy_key.cc',
        'policy_service.cc',
        'policy_store.cc',
        'regen_mitigator.cc',
        'server_backed_state_key_generator.cc',
        'session_manager_impl.cc',
        'session_manager_service.cc',
        'system_utils_impl.cc',
        'systemd_unit_starter.cc',
        'termina_manager_impl.cc',
        'upstart_signal_emitter.cc',
        'user_policy_service.cc',
        'user_policy_service_factory.cc',
        'vpd_process_impl.cc',
      ],
      'variables': {
        'USE_android_container_master_arc_dev%': 0,
      },
      'conditions': [
        ['USE_android_container_master_arc_dev == 1', {
          'sources': [
            'android_oci_wrapper.cc',
          ],
          'defines': [
            'USE_ANDROID_MASTER_CONTAINER=1',
          ],
        }, { # USE_android_container_master_arc_dev != 1
          'sources': [
            'android_container_manager_impl.cc',
          ],
          'defines': [
            'USE_ANDROID_MASTER_CONTAINER=0',
          ],
        }],
      ],
    },
    {
      'target_name': 'keygen',
      'type': 'executable',
      'sources': [
        'keygen.cc',
        'keygen_worker.cc',
        'named_platform_handle_utils_posix.cc',
        'nss_util.cc',
        'policy_key.cc',
        'system_utils_impl.cc',
      ],
    },
    {
      'target_name': 'session_manager',
      'type': 'executable',
      'libraries': [
        '-lrootdev',
        '-lcontainer',
      ],
      'dependencies': ['libsession_manager'],
      'sources': ['session_manager_main.cc'],
    },
  ],
  'conditions': [
    ['USE_test == 1', {
      'targets': [
        {
          'target_name': 'session_manager_test',
          'type': 'executable',
          'includes': ['../common-mk/common_test.gypi'],
          'defines': ['UNIT_TEST'],
          'dependencies': ['libsession_manager'],
          'variables': {
            'deps': [
              'libbrillo-test-<(libbase_ver)',
              'libchrome-test-<(libbase_ver)',
              'libcros_config',
            ],
            'USE_android_container_master_arc_dev%': 0,
          },
          'sources': [
            'browser_job_unittest.cc',
            'child_exit_handler_unittest.cc',
            'chrome_setup_unittest.cc',
            'container_config_parser_unittest.cc',
            'cumulative_use_time_metric_unittest.cc',
            'device_local_account_manager_unittest.cc',
            'device_policy_service_unittest.cc',
            'fake_browser_job.cc',
            'fake_child_process.cc',
            'fake_container_manager.cc',
            'fake_crossystem.cc',
            'fake_generated_key_handler.cc',
            'fake_generator_job.cc',
            'fake_termina_manager.cc',
            'key_generator_unittest.cc',
            'keygen_worker.cc',
            'liveness_checker_impl_unittest.cc',
            'login_metrics_unittest.cc',
            'mock_constructors.cc',
            'mock_nss_util.cc',
            'nss_util_unittest.cc',
            'policy_key_unittest.cc',
            'policy_service_unittest.cc',
            'policy_store_unittest.cc',
            'regen_mitigator_unittest.cc',
            'server_backed_state_key_generator_unittest.cc',
            'session_manager_impl_unittest.cc',
            'session_manager_process_unittest.cc',
            'session_manager_testrunner.cc',
            'system_utils_unittest.cc',
            'user_policy_service_unittest.cc',
          ],
          'conditions': [
            ['USE_android_container_master_arc_dev == 1', {
              'sources': [
                'android_oci_wrapper_unittest.cc',
              ],
              'defines': [
                'USE_ANDROID_MASTER_CONTAINER=1',
              ],
            }, { # USE_android_container_master_arc_dev != 1
              'defines': [
                'USE_ANDROID_MASTER_CONTAINER=0',
              ],
            }],
          ],
        },
      ],
    }],
  ],
}
