blob: 06bd2252373c8d4a8e49736d630dfbc1142c3281 [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.
9 'eigen_version': '3.0.5',
10 'gtest_version': '1.6.0-p1',
11 'onejar_version': '0.97',
12 'ctemplate_version': '2.2',
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',
brians343bc112013-02-10 01:53:46 +000017 },
18 'targets': [
19 {
brians343bc112013-02-10 01:53:46 +000020 'target_name': 'WPILib',
Brian Silverman7671c3c2013-04-26 22:37:29 -070021 'type': 'static_library',
22 'sources': [
23 '<!@(find <(externals)/WPILib/WPILib/ -name *.cpp)',
24 ],
25 'cflags!': [
26 '-Werror',
27 '-ggdb3',
28 '-O0'
29 ],
30 'cflags': [
31 '-ggdb1',
32 '-O3'
33 ],
34 'include_dirs': [
35 '<(externals)/WPILib',
36 '<(externals)/WPILib/WPILib',
37 ],
38 'direct_dependent_settings': {
39 'cflags': [
40 '-isystem', '<(externals_abs)/WPILib',
41 '-isystem', '<(externals_abs)/WPILib/WPILib',
42 ],
43 },
brians343bc112013-02-10 01:53:46 +000044 },
45 {
Brian Silvermanf3e1de82013-04-09 18:45:41 -070046 'target_name': 'WPILib-NetworkRobotValues',
47 'type': 'static_library',
48 'sources': [
49 '<(externals)/WPILib/WPILib/NetworkRobot/NetworkRobotValues.cpp'
50 ],
51 'include_dirs': [
52 '<(externals)/WPILib',
53 ],
54 'direct_dependent_settings': {
55 'include_dirs': [
56 '<(externals)/WPILib',
57 ],
58 },
59 },
60 {
brians343bc112013-02-10 01:53:46 +000061 'target_name': 'onejar',
62 'type': 'none',
63 'direct_dependent_settings': {
64 'variables': {
65 'onejar_jar': '<(externals_abs)/one-jar-boot-<(onejar_version).jar',
66 },
67 },
68 },
69 {
70 'target_name': 'javacv',
71 'type': 'none',
72 'variables': {
73 'javacv_dir': '<(externals_abs)/javacv-bin',
74 },
75 'direct_dependent_settings': {
76 'include_dirs': [
77 '/usr/lib/jvm/default-java/include',
78 '/usr/lib/jvm/default-java/include/linux',
79 ],
80 'variables': {
81 'classpath': [
82 '<(javacv_dir)/javacv.jar',
83 '<(javacv_dir)/javacpp.jar',
84 '<(javacv_dir)/javacv-linux-x86.jar',
85 ],
86 },
87 },
88 },
89 {
Brian Silverman6ae77dd2013-03-29 22:28:08 -070090 'target_name': 'opencv',
91 'type': 'none',
92 'link_settings': {
93 'libraries': [
94 '-lopencv_core',
95 '-lopencv_imgproc',
96 ],
97 },
98 },
99 {
brians343bc112013-02-10 01:53:46 +0000100# TODO(brians) convert this to downloading + building
101 'target_name': 'libevent',
102 'type': 'none',
103 'link_settings': {
104 'libraries': ['-levent'],
105 },
106 },
107 {
108 'target_name': 'eigen',
109 'type': 'none',
110 'direct_dependent_settings': {
111 'include_dirs': ['<(externals)/eigen-<(eigen_version)'],
112 },
113 },
114 {
115 'target_name': 'libjpeg',
116 'type': 'none',
117 'direct_dependent_settings': {
118 'libraries': ['<(externals_abs)/libjpeg/lib/libjpeg.a'],
119 },
120 },
121 {
brians2fdfc072013-02-26 05:35:15 +0000122# Dependents should only use the "gtest/gtest_prod.h" header.
123# This target is NOT the correct one for "aos/common/gtest_prod.h". That one is
124# aos/common/common.gyp:gtest_prod. This target just deals with setting up to
125# use the gtest header.
126 'target_name': 'gtest_prod',
127 'type': 'static_library',
128 'direct_dependent_settings': {
129 'include_dirs': [
130 '<(externals)/gtest-<(gtest_version)/include'
131 ],
132 },
133 },
134 {
brians343bc112013-02-10 01:53:46 +0000135 'target_name': 'gtest',
136 'type': 'static_library',
137 'sources': [
138 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest-all.cc',
139 ],
brians2fdfc072013-02-26 05:35:15 +0000140 'dependencies': [
141 'gtest_prod',
142 ],
143 'export_dependent_settings': [
144 'gtest_prod',
145 ],
brians343bc112013-02-10 01:53:46 +0000146 'conditions': [['OS=="crio"', {
147 'defines': [
148 'GTEST_HAS_TR1_TUPLE=0',
149 'GTEST_HAS_STREAM_REDIRECTION=0',
150 'GTEST_HAS_POSIX_RE=0', # it only has a broken header...
151 ],
152 'direct_dependent_settings': {
153 'defines': [
154 'GTEST_HAS_TR1_TUPLE=0',
155 'GTEST_HAS_STREAM_REDIRECTION=0',
156 'GTEST_HAS_POSIX_RE=0',
157 ],
158 },
159 }, {
160 'sources': [
161 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest_main.cc',
162 ],
163 }]],
brians343bc112013-02-10 01:53:46 +0000164 'cflags!': ['-Werror'],
165 'direct_dependent_settings': {
166 'include_dirs': ['<(externals)/gtest-<(gtest_version)/include'],
167 'target_conditions': [
168 ['_type=="executable"', {
169 'product_dir': '<(test_dir)',
170 },
171 ],
172 ],
173 },
174 },
175 {
176 'target_name': 'ctemplate',
177 'type': 'none',
178 'link_settings': {
Brian Silverman798c7782013-03-28 16:48:02 -0700179 'libraries': ['<(externals_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
brians343bc112013-02-10 01:53:46 +0000180 },
181 'direct_dependent_settings': {
182 'include_dirs': ['<(externals)/ctemplate-<(ctemplate_version)-prefix/include'],
183 },
184 },
Brian Silverman798c7782013-03-28 16:48:02 -0700185 {
186 'target_name': 'gflags',
187 'type': 'none',
188 'link_settings': {
189 'libraries': ['<(externals_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
190 },
191 'direct_dependent_settings': {
192 'include_dirs': ['<(externals)/gflags-<(gflags_version)-prefix/include'],
193 },
194 },
195 {
196 'target_name': 'libusb',
197 'type': 'none',
198 'link_settings': {
199 'libraries': ['<(externals_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
200 },
201 'direct_dependent_settings': {
202 'include_dirs': ['<(externals)/libusb-<(libusb_version)-prefix/include'],
203 },
204 },
brians343bc112013-02-10 01:53:46 +0000205 ],
Brian Silverman6137a502013-04-22 15:41:36 -0700206 'includes': [
207 'libgcc-additions/libgcc-additions.gypi',
208 ],
brians343bc112013-02-10 01:53:46 +0000209}