blob: 863df98d3824e79283ed00ac459aef6ee48daf84 [file] [log] [blame]
brians343bc112013-02-10 01:53:46 +00001# This file has targets for various external libraries.
2# download_externals.sh makes sure that all of them have been downloaded.
3{
4 'variables': {
Brian Silvermana9989a92014-02-22 12:11:26 -08005 # TODO(brians): Would we not have to do this hackery if we named it externals_path etc?
Brian Silvermanf10de2a2013-11-16 19:56:11 -08006 'externals': '<(AOS)/../output/downloaded',
7 'externals_abs': '<!(readlink -f ../../output/downloaded)',
Brian Silverman41abe012014-02-08 18:25:02 -08008 'conditions': [['PLATFORM=="linux-amd64"', {
9 'compiled': '<(externals)/../compiled-amd64',
10 'compiled_abs': '<(externals_abs)/../compiled-amd64',
11 }, {
12 'compiled': '<(externals)/../compiled-arm',
13 'compiled_abs': '<(externals_abs)/../compiled-arm',
14 }]],
brians343bc112013-02-10 01:53:46 +000015
16# These versions have to be kept in sync with the ones in download_externals.sh.
Brian Silverman8efe23e2013-07-07 23:31:37 -070017 'eigen_version': '3.1.3',
Brian Silverman596ad952014-01-01 17:19:21 -080018 'gtest_version': '1.6.0-p1',
brians343bc112013-02-10 01:53:46 +000019 'onejar_version': '0.97',
Brian Silverman8efe23e2013-07-07 23:31:37 -070020 'ctemplate_version': '129',
Brian Silverman798c7782013-03-28 16:48:02 -070021 'gflags_version': '2.0',
Brian Silverman6137a502013-04-22 15:41:36 -070022 'compiler_rt_version': 'RELEASE_32_final',
Brian Silverman8efe23e2013-07-07 23:31:37 -070023 'libevent_version': '2.0.21',
Austin Schuh69155282013-10-27 14:52:35 -070024 'libcdd_version': '094g',
Brian Silverman3aa0d542014-01-25 17:16:43 -080025 'stm32flash_commit': '8399fbe1baf2b7d097746786458021d92895d71b',
brians343bc112013-02-10 01:53:46 +000026 },
27 'targets': [
28 {
brians343bc112013-02-10 01:53:46 +000029 'target_name': 'WPILib',
Brian Silverman7671c3c2013-04-26 22:37:29 -070030 'type': 'static_library',
31 'sources': [
Brian Silvermanf10de2a2013-11-16 19:56:11 -080032 '<!@(find <(AOS)/externals/WPILib/WPILib/ -name *.cpp)',
Brian Silverman7671c3c2013-04-26 22:37:29 -070033 ],
34 'cflags!': [
35 '-Werror',
36 '-ggdb3',
37 '-O0'
38 ],
39 'cflags': [
40 '-ggdb1',
41 '-O3'
42 ],
43 'include_dirs': [
Brian Silvermanf10de2a2013-11-16 19:56:11 -080044 '<(AOS)/externals/WPILib',
45 '<(AOS)/externals/WPILib/WPILib',
Brian Silverman7671c3c2013-04-26 22:37:29 -070046 ],
47 'direct_dependent_settings': {
48 'cflags': [
Brian Silvermanf10de2a2013-11-16 19:56:11 -080049 '-isystem', '<(AOS)/externals/WPILib',
50 '-isystem', '<(AOS)/externals/WPILib/WPILib',
Brian Silverman7671c3c2013-04-26 22:37:29 -070051 ],
52 },
brians343bc112013-02-10 01:53:46 +000053 },
54 {
Brian Silvermanf3e1de82013-04-09 18:45:41 -070055 'target_name': 'WPILib-NetworkRobotValues',
56 'type': 'static_library',
57 'sources': [
Brian Silvermanf10de2a2013-11-16 19:56:11 -080058 '<(AOS)/externals/WPILib/WPILib/NetworkRobot/NetworkRobotValues.cpp'
Brian Silvermanf3e1de82013-04-09 18:45:41 -070059 ],
60 'include_dirs': [
Brian Silvermanf10de2a2013-11-16 19:56:11 -080061 '<(AOS)/externals/WPILib',
Brian Silvermanf3e1de82013-04-09 18:45:41 -070062 ],
63 'direct_dependent_settings': {
64 'include_dirs': [
Brian Silvermanf10de2a2013-11-16 19:56:11 -080065 '<(AOS)/externals/WPILib',
Brian Silvermanf3e1de82013-04-09 18:45:41 -070066 ],
67 },
68 },
69 {
brians343bc112013-02-10 01:53:46 +000070 'target_name': 'onejar',
71 'type': 'none',
72 'direct_dependent_settings': {
73 'variables': {
74 'onejar_jar': '<(externals_abs)/one-jar-boot-<(onejar_version).jar',
75 },
76 },
77 },
78 {
Brian Silverman6ae77dd2013-03-29 22:28:08 -070079 'target_name': 'opencv',
80 'type': 'none',
81 'link_settings': {
82 'libraries': [
83 '-lopencv_core',
84 '-lopencv_imgproc',
85 ],
86 },
87 },
88 {
brians343bc112013-02-10 01:53:46 +000089 'target_name': 'libevent',
90 'type': 'none',
91 'link_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -080092 'libraries': ['<(compiled_abs)/libevent-<(libevent_version)-prefix/lib/libevent.a'],
Brian Silverman8efe23e2013-07-07 23:31:37 -070093 },
94 'direct_dependent_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -080095 'include_dirs': ['<(compiled)/libevent-<(libevent_version)-prefix/include'],
brians343bc112013-02-10 01:53:46 +000096 },
97 },
98 {
99 'target_name': 'eigen',
100 'type': 'none',
101 'direct_dependent_settings': {
Brian Silvermanefb993f2013-08-30 19:52:57 -0700102 'cflags': [
103 '-isystem', '<(externals)/eigen-<(eigen_version)'
104 ],
brians343bc112013-02-10 01:53:46 +0000105 },
106 },
107 {
108 'target_name': 'libjpeg',
109 'type': 'none',
110 'direct_dependent_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800111 'libraries': ['<(compiled_abs)/libjpeg/lib/libjpeg.a'],
Brian Silverman8f1018b2013-11-17 21:35:15 -0800112 'cflags': [
113 '-isystem', '<(compiled)',
114 ],
brians343bc112013-02-10 01:53:46 +0000115 },
116 },
117 {
brians2fdfc072013-02-26 05:35:15 +0000118# Dependents should only use the "gtest/gtest_prod.h" header.
119# This target is NOT the correct one for "aos/common/gtest_prod.h". That one is
120# aos/common/common.gyp:gtest_prod. This target just deals with setting up to
121# use the gtest header.
122 'target_name': 'gtest_prod',
123 'type': 'static_library',
124 'direct_dependent_settings': {
125 'include_dirs': [
126 '<(externals)/gtest-<(gtest_version)/include'
127 ],
128 },
129 },
130 {
brians343bc112013-02-10 01:53:46 +0000131 'target_name': 'gtest',
132 'type': 'static_library',
133 'sources': [
134 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest-all.cc',
135 ],
brians2fdfc072013-02-26 05:35:15 +0000136 'dependencies': [
137 'gtest_prod',
138 ],
139 'export_dependent_settings': [
140 'gtest_prod',
141 ],
brians343bc112013-02-10 01:53:46 +0000142 'conditions': [['OS=="crio"', {
143 'defines': [
144 'GTEST_HAS_TR1_TUPLE=0',
145 'GTEST_HAS_STREAM_REDIRECTION=0',
146 'GTEST_HAS_POSIX_RE=0', # it only has a broken header...
147 ],
148 'direct_dependent_settings': {
149 'defines': [
150 'GTEST_HAS_TR1_TUPLE=0',
151 'GTEST_HAS_STREAM_REDIRECTION=0',
152 'GTEST_HAS_POSIX_RE=0',
153 ],
154 },
155 }, {
156 'sources': [
157 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest_main.cc',
158 ],
159 }]],
brians343bc112013-02-10 01:53:46 +0000160 'cflags!': ['-Werror'],
161 'direct_dependent_settings': {
162 'include_dirs': ['<(externals)/gtest-<(gtest_version)/include'],
163 'target_conditions': [
Brian Silvermanb79131d2013-09-19 21:09:17 -0700164 ['_type=="executable" and is_special_test==0', {
brians343bc112013-02-10 01:53:46 +0000165 'product_dir': '<(test_dir)',
166 },
Brian Silvermanb79131d2013-09-19 21:09:17 -0700167 ], ['_type=="executable" and is_special_test==1', {
168 'product_dir': '<(test_dir)-special',
169 },
brians343bc112013-02-10 01:53:46 +0000170 ],
171 ],
172 },
173 },
174 {
175 'target_name': 'ctemplate',
176 'type': 'none',
177 'link_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800178 'libraries': ['<(compiled_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
brians343bc112013-02-10 01:53:46 +0000179 },
180 'direct_dependent_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800181 'include_dirs': ['<(compiled)/ctemplate-<(ctemplate_version)-prefix/include'],
brians343bc112013-02-10 01:53:46 +0000182 },
183 },
Brian Silverman798c7782013-03-28 16:48:02 -0700184 {
185 'target_name': 'gflags',
186 'type': 'none',
187 'link_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800188 'libraries': ['<(compiled_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
Brian Silverman798c7782013-03-28 16:48:02 -0700189 },
190 'direct_dependent_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800191 'include_dirs': ['<(compiled)/gflags-<(gflags_version)-prefix/include'],
Brian Silverman798c7782013-03-28 16:48:02 -0700192 },
193 },
194 {
Austin Schuh69155282013-10-27 14:52:35 -0700195 'target_name': 'libcdd',
196 'type': 'none',
197 'link_settings': {
Brian Silvermanf10de2a2013-11-16 19:56:11 -0800198 'libraries': ['<(compiled_abs)/libcdd-<(libcdd_version)-prefix/lib/libcdd.a'],
Austin Schuh69155282013-10-27 14:52:35 -0700199 },
200 'direct_dependent_settings': {
Brian Silverman8f1018b2013-11-17 21:35:15 -0800201 'include_dirs': ['<(compiled_abs)/'],
Austin Schuh69155282013-10-27 14:52:35 -0700202 },
203 },
Brian Silverman3aa0d542014-01-25 17:16:43 -0800204 {
205 'target_name': 'stm32flash',
206 'type': 'static_library',
207 'sources': [
208 '<(externals)/stm32flash-<(stm32flash_commit)/stm32flash/init.c',
209 '<(externals)/stm32flash-<(stm32flash_commit)/stm32flash/parsers/hex.c',
210 '<(externals)/stm32flash-<(stm32flash_commit)/stm32flash/serial_common.c',
211 '<(externals)/stm32flash-<(stm32flash_commit)/stm32flash/serial_platform.c',
212 '<(externals)/stm32flash-<(stm32flash_commit)/stm32flash/utils.c',
213 '<(externals)/stm32flash-<(stm32flash_commit)/stm32flash/stm32.c',
214 ],
215 'cflags': [
216 '-Wno-error',
217 ],
218 'direct_dependent_settings': {
219 'include_dirs': ['<(externals_abs)/stm32flash-<(stm32flash_commit)'],
220 },
221 },
brians343bc112013-02-10 01:53:46 +0000222 ],
Brian Silverman6137a502013-04-22 15:41:36 -0700223 'includes': [
224 'libgcc-additions/libgcc-additions.gypi',
225 ],
brians343bc112013-02-10 01:53:46 +0000226}