brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 1 | # Include this file in any target that needs to use files generated from queue |
| 2 | # etc. definitions. |
| 3 | # |
| 4 | # To use, create a target of the following form: |
| 5 | # { |
| 6 | # 'target_name': 'my_queues', |
| 7 | # 'type': 'static_library', # or any other type that can handle .cc files |
| 8 | # 'sources': [ |
| 9 | # 'aos/example/Queue.q', |
| 10 | # 'aos/example/ControlLoop.q', |
| 11 | # ], |
| 12 | # 'variables': { |
| 13 | # 'header_path': 'aos/example', |
| 14 | # }, |
| 15 | # 'includes': ['path/to/queues.gypi'], |
| 16 | # }, |
| 17 | # Code that depends on this target will be able to #include |
| 18 | # "aos/example/Queue.q.h" and "aos/example/ControlLoop.q.h". |
| 19 | # |
| 20 | # using <http://src.chromium.org/svn/trunk/src/build/protoc.gypi> as an |
| 21 | # example of how this should work |
| 22 | { |
| 23 | 'variables': { |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 24 | 'prefix_dir': '<(SHARED_INTERMEDIATE_DIR)/<!(echo <(header_path) | sed "s/[^A-Za-z0-9]/_/g")', |
| 25 | 'out_dir': '<(prefix_dir)/<(_target_name)/<(header_path)', |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 26 | 'output_h': '<(out_dir)/<(RULE_INPUT_ROOT).q.h', |
| 27 | 'output_cc': '<(out_dir)/<(RULE_INPUT_ROOT).q.cc', |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 28 | 'no_rsync': 1, |
Brian Silverman | 65f8096 | 2014-02-22 12:34:18 -0800 | [diff] [blame] | 29 | 'aos_q_dependent_paths%': [], |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 30 | }, |
| 31 | 'rules': [ |
| 32 | { |
| 33 | 'variables': { |
| 34 | 'script': '<(AOS)/build/queues/compiler.rb', |
| 35 | }, |
| 36 | 'rule_name': 'genqueue', |
| 37 | 'extension': 'q', |
| 38 | 'outputs': [ |
| 39 | '<(output_h)', |
| 40 | '<(output_cc)', |
| 41 | ], |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 42 | 'inputs': [ |
| 43 | '<(script)', |
| 44 | '<!@(find <(AOS)/build/queues/ -name *.rb)', |
| 45 | '<(AOS)/common/queue.h', |
| 46 | '<(AOS)/common/time.h', |
Brian Silverman | 65f8096 | 2014-02-22 12:34:18 -0800 | [diff] [blame] | 47 | '>@(aos_q_dependent_paths)', |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 48 | ], |
| 49 | 'action': ['ruby', '<(script)', |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 50 | '-I', '<(DEPTH)', |
| 51 | '<(RULE_INPUT_PATH)', |
| 52 | '-cpp_out', |
| 53 | '<(header_path)', |
| 54 | '-cpp_base', |
| 55 | '<(prefix_dir)/<(_target_name)'], |
Brian Silverman | cbbc3c4 | 2014-02-22 18:33:17 -0800 | [diff] [blame] | 56 | 'message': 'Generating C++ code for <(header_path)/<(RULE_INPUT_PATH)', |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 57 | 'process_outputs_as_sources': 1, |
| 58 | }, |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 59 | ], |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 60 | 'include_dirs': [ |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 61 | '<(prefix_dir)/<(_target_name)', |
| 62 | ], |
| 63 | 'direct_dependent_settings': { |
| 64 | 'include_dirs': [ |
| 65 | '<(prefix_dir)/<(_target_name)', |
| 66 | ], |
| 67 | 'variables': { |
Brian Silverman | 65f8096 | 2014-02-22 12:34:18 -0800 | [diff] [blame] | 68 | 'aos_q_dependent_paths': ['<@(_sources)'], |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 69 | }, |
| 70 | }, |
Brian Silverman | 8dc9fd4 | 2014-02-10 13:35:43 -0800 | [diff] [blame] | 71 | 'dependencies': [ |
| 72 | '<(AOS)/common/common.gyp:queues', |
Brian Silverman | 665e60c | 2014-02-12 13:57:10 -0800 | [diff] [blame] | 73 | '<(AOS)/common/common.gyp:once', |
Brian Silverman | 04fdc23 | 2014-02-12 14:51:11 -0800 | [diff] [blame] | 74 | '<(AOS)/common/common.gyp:queue_types', |
Brian Silverman | 8dc9fd4 | 2014-02-10 13:35:43 -0800 | [diff] [blame] | 75 | ], |
| 76 | 'export_dependent_settings': [ |
| 77 | '<(AOS)/common/common.gyp:queues', |
| 78 | ], |
brians | 343bc11 | 2013-02-10 01:53:46 +0000 | [diff] [blame] | 79 | 'hard_dependency': 1, |
| 80 | } |