blob: 2bfee69ccd84b50e72e03d0526ebc9ba1298bdc3 [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': {
5 'externals': '<(AOS)/externals',
6 'externals_abs': '<!(readlink -f ../externals)',
7
8# These versions have to be kept in sync with the ones in download_externals.sh.
Brian Silverman8efe23e2013-07-07 23:31:37 -07009 'eigen_version': '3.1.3',
brians343bc112013-02-10 01:53:46 +000010 'gtest_version': '1.6.0-p1',
11 'onejar_version': '0.97',
Brian Silverman8efe23e2013-07-07 23:31:37 -070012 'ctemplate_version': '129',
Brian Silverman798c7782013-03-28 16:48:02 -070013 'gflags_version': '2.0',
14 'libusb_version': '1.0.9',
15 'libusb_apiversion': '1.0',
Brian Silverman6137a502013-04-22 15:41:36 -070016 'compiler_rt_version': 'RELEASE_32_final',
Brian Silverman8efe23e2013-07-07 23:31:37 -070017 'libevent_version': '2.0.21',
brians343bc112013-02-10 01:53:46 +000018 },
19 'targets': [
20 {
brians343bc112013-02-10 01:53:46 +000021 'target_name': 'WPILib',
Brian Silverman7671c3c2013-04-26 22:37:29 -070022 'type': 'static_library',
23 'sources': [
24 '<!@(find <(externals)/WPILib/WPILib/ -name *.cpp)',
25 ],
26 'cflags!': [
27 '-Werror',
28 '-ggdb3',
29 '-O0'
30 ],
31 'cflags': [
32 '-ggdb1',
33 '-O3'
34 ],
35 'include_dirs': [
36 '<(externals)/WPILib',
37 '<(externals)/WPILib/WPILib',
38 ],
39 'direct_dependent_settings': {
40 'cflags': [
41 '-isystem', '<(externals_abs)/WPILib',
42 '-isystem', '<(externals_abs)/WPILib/WPILib',
43 ],
44 },
brians343bc112013-02-10 01:53:46 +000045 },
46 {
Brian Silvermanf3e1de82013-04-09 18:45:41 -070047 'target_name': 'WPILib-NetworkRobotValues',
48 'type': 'static_library',
49 'sources': [
50 '<(externals)/WPILib/WPILib/NetworkRobot/NetworkRobotValues.cpp'
51 ],
52 'include_dirs': [
53 '<(externals)/WPILib',
54 ],
55 'direct_dependent_settings': {
56 'include_dirs': [
57 '<(externals)/WPILib',
58 ],
59 },
60 },
61 {
brians343bc112013-02-10 01:53:46 +000062 'target_name': 'onejar',
63 'type': 'none',
64 'direct_dependent_settings': {
65 'variables': {
66 'onejar_jar': '<(externals_abs)/one-jar-boot-<(onejar_version).jar',
67 },
68 },
69 },
70 {
71 'target_name': 'javacv',
72 'type': 'none',
73 'variables': {
74 'javacv_dir': '<(externals_abs)/javacv-bin',
75 },
76 'direct_dependent_settings': {
77 'include_dirs': [
78 '/usr/lib/jvm/default-java/include',
79 '/usr/lib/jvm/default-java/include/linux',
80 ],
81 'variables': {
82 'classpath': [
83 '<(javacv_dir)/javacv.jar',
84 '<(javacv_dir)/javacpp.jar',
85 '<(javacv_dir)/javacv-linux-x86.jar',
86 ],
87 },
88 },
89 },
90 {
Brian Silverman6ae77dd2013-03-29 22:28:08 -070091 'target_name': 'opencv',
92 'type': 'none',
93 'link_settings': {
94 'libraries': [
95 '-lopencv_core',
96 '-lopencv_imgproc',
97 ],
98 },
99 },
100 {
brians343bc112013-02-10 01:53:46 +0000101 'target_name': 'libevent',
102 'type': 'none',
103 'link_settings': {
Brian Silverman8efe23e2013-07-07 23:31:37 -0700104 'libraries': ['<(externals_abs)/libevent-<(libevent_version)-prefix/lib/libevent.a'],
105 },
106 'direct_dependent_settings': {
107 'include_dirs': ['<(externals)/libevent-<(libevent_version)-prefix/include'],
brians343bc112013-02-10 01:53:46 +0000108 },
109 },
110 {
111 'target_name': 'eigen',
112 'type': 'none',
113 'direct_dependent_settings': {
Brian Silvermanefb993f2013-08-30 19:52:57 -0700114 'cflags': [
115 '-isystem', '<(externals)/eigen-<(eigen_version)'
116 ],
brians343bc112013-02-10 01:53:46 +0000117 },
118 },
119 {
120 'target_name': 'libjpeg',
121 'type': 'none',
122 'direct_dependent_settings': {
123 'libraries': ['<(externals_abs)/libjpeg/lib/libjpeg.a'],
124 },
125 },
126 {
brians2fdfc072013-02-26 05:35:15 +0000127# Dependents should only use the "gtest/gtest_prod.h" header.
128# This target is NOT the correct one for "aos/common/gtest_prod.h". That one is
129# aos/common/common.gyp:gtest_prod. This target just deals with setting up to
130# use the gtest header.
131 'target_name': 'gtest_prod',
132 'type': 'static_library',
133 'direct_dependent_settings': {
134 'include_dirs': [
135 '<(externals)/gtest-<(gtest_version)/include'
136 ],
137 },
138 },
139 {
brians343bc112013-02-10 01:53:46 +0000140 'target_name': 'gtest',
141 'type': 'static_library',
142 'sources': [
143 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest-all.cc',
144 ],
brians2fdfc072013-02-26 05:35:15 +0000145 'dependencies': [
146 'gtest_prod',
147 ],
148 'export_dependent_settings': [
149 'gtest_prod',
150 ],
brians343bc112013-02-10 01:53:46 +0000151 'conditions': [['OS=="crio"', {
152 'defines': [
153 'GTEST_HAS_TR1_TUPLE=0',
154 'GTEST_HAS_STREAM_REDIRECTION=0',
155 'GTEST_HAS_POSIX_RE=0', # it only has a broken header...
156 ],
157 'direct_dependent_settings': {
158 'defines': [
159 'GTEST_HAS_TR1_TUPLE=0',
160 'GTEST_HAS_STREAM_REDIRECTION=0',
161 'GTEST_HAS_POSIX_RE=0',
162 ],
163 },
164 }, {
165 'sources': [
166 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest_main.cc',
167 ],
168 }]],
brians343bc112013-02-10 01:53:46 +0000169 'cflags!': ['-Werror'],
170 'direct_dependent_settings': {
171 'include_dirs': ['<(externals)/gtest-<(gtest_version)/include'],
172 'target_conditions': [
173 ['_type=="executable"', {
174 'product_dir': '<(test_dir)',
175 },
176 ],
177 ],
178 },
179 },
180 {
181 'target_name': 'ctemplate',
182 'type': 'none',
183 'link_settings': {
Brian Silverman798c7782013-03-28 16:48:02 -0700184 'libraries': ['<(externals_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
brians343bc112013-02-10 01:53:46 +0000185 },
186 'direct_dependent_settings': {
187 'include_dirs': ['<(externals)/ctemplate-<(ctemplate_version)-prefix/include'],
188 },
189 },
Brian Silverman798c7782013-03-28 16:48:02 -0700190 {
191 'target_name': 'gflags',
192 'type': 'none',
193 'link_settings': {
194 'libraries': ['<(externals_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
195 },
196 'direct_dependent_settings': {
197 'include_dirs': ['<(externals)/gflags-<(gflags_version)-prefix/include'],
198 },
199 },
200 {
201 'target_name': 'libusb',
202 'type': 'none',
203 'link_settings': {
204 'libraries': ['<(externals_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
205 },
206 'direct_dependent_settings': {
207 'include_dirs': ['<(externals)/libusb-<(libusb_version)-prefix/include'],
208 },
209 },
brians343bc112013-02-10 01:53:46 +0000210 ],
Brian Silverman6137a502013-04-22 15:41:36 -0700211 'includes': [
212 'libgcc-additions/libgcc-additions.gypi',
213 ],
brians343bc112013-02-10 01:53:46 +0000214}