Home | History | Annotate | Download | only in android
      1 # Copyright 2013 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 # This file is meant to be included into a target to provide a rule
      6 # to strip and place dependent shared libraries required by a native binary in a
      7 # single folder that can later be pushed to the device.
      8 #
      9 # NOTE: consider packaging your binary as an apk instead of running a native
     10 # library.
     11 #
     12 # To use this, create a gyp target with the following form:
     13 #  {
     14 #    'target_name': 'target_that_depends_on_my_binary',
     15 #    'type': 'none',
     16 #    'dependencies': [
     17 #      'my_binary',
     18 #    ],
     19 #    'variables': {
     20 #      'native_binary': '<(PRODUCT_DIR)/my_binary',
     21 #      'output_dir': 'location to place binary and dependent libraries'
     22 #    },
     23 #    'includes': [ '../../build/android/native_app_dependencies.gypi' ],
     24 #  },
     25 #
     26 
     27 {
     28   'copies': [
     29     {
     30       'destination': '<(output_dir)',
     31       'files': [ '<(native_binary)' ],
     32     }
     33   ],
     34   'conditions': [
     35       ['component == "shared_library"', {
     36         'dependencies': [
     37           '<(DEPTH)/build/android/setup.gyp:copy_system_libraries',
     38         ],
     39         'variables': {
     40           'intermediate_dir': '<(PRODUCT_DIR)/<(_target_name)',
     41           'ordered_libraries_file': '<(intermediate_dir)/native_libraries.json',
     42         },
     43         'actions': [
     44           {
     45             'variables': {
     46               'input_libraries': ['<(native_binary)'],
     47             },
     48             'includes': ['../../build/android/write_ordered_libraries.gypi'],
     49           },
     50           {
     51             'action_name': 'stripping native libraries',
     52             'variables': {
     53               'stripped_libraries_dir%': '<(output_dir)',
     54               'input_paths': ['<(native_binary)'],
     55               'stamp': '<(intermediate_dir)/strip.stamp',
     56             },
     57             'includes': ['../../build/android/strip_native_libraries.gypi'],
     58           },
     59         ],
     60       }],
     61   ],
     62 }
     63