blob: 0daa2290aa3f08b8f704630abb06d84d34ff3ef0 [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 {
46 'target_name': 'onejar',
47 'type': 'none',
48 'direct_dependent_settings': {
49 'variables': {
50 'onejar_jar': '<(externals_abs)/one-jar-boot-<(onejar_version).jar',
51 },
52 },
53 },
54 {
55 'target_name': 'javacv',
56 'type': 'none',
57 'variables': {
58 'javacv_dir': '<(externals_abs)/javacv-bin',
59 },
60 'direct_dependent_settings': {
61 'include_dirs': [
62 '/usr/lib/jvm/default-java/include',
63 '/usr/lib/jvm/default-java/include/linux',
64 ],
65 'variables': {
66 'classpath': [
67 '<(javacv_dir)/javacv.jar',
68 '<(javacv_dir)/javacpp.jar',
69 '<(javacv_dir)/javacv-linux-x86.jar',
70 ],
71 },
72 },
73 },
74 {
Brian Silverman6ae77dd2013-03-29 22:28:08 -070075 'target_name': 'opencv',
76 'type': 'none',
77 'link_settings': {
78 'libraries': [
79 '-lopencv_core',
80 '-lopencv_imgproc',
81 ],
82 },
83 },
84 {
brians343bc112013-02-10 01:53:46 +000085# TODO(brians) convert this to downloading + building
86 'target_name': 'libevent',
87 'type': 'none',
88 'link_settings': {
89 'libraries': ['-levent'],
90 },
91 },
92 {
93 'target_name': 'eigen',
94 'type': 'none',
95 'direct_dependent_settings': {
96 'include_dirs': ['<(externals)/eigen-<(eigen_version)'],
97 },
98 },
99 {
100 'target_name': 'libjpeg',
101 'type': 'none',
102 'direct_dependent_settings': {
103 'libraries': ['<(externals_abs)/libjpeg/lib/libjpeg.a'],
104 },
105 },
106 {
brians2fdfc072013-02-26 05:35:15 +0000107# Dependents should only use the "gtest/gtest_prod.h" header.
108# This target is NOT the correct one for "aos/common/gtest_prod.h". That one is
109# aos/common/common.gyp:gtest_prod. This target just deals with setting up to
110# use the gtest header.
111 'target_name': 'gtest_prod',
112 'type': 'static_library',
113 'direct_dependent_settings': {
114 'include_dirs': [
115 '<(externals)/gtest-<(gtest_version)/include'
116 ],
117 },
118 },
119 {
brians343bc112013-02-10 01:53:46 +0000120 'target_name': 'gtest',
121 'type': 'static_library',
122 'sources': [
123 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest-all.cc',
124 ],
brians2fdfc072013-02-26 05:35:15 +0000125 'dependencies': [
126 'gtest_prod',
127 ],
128 'export_dependent_settings': [
129 'gtest_prod',
130 ],
brians343bc112013-02-10 01:53:46 +0000131 'conditions': [['OS=="crio"', {
132 'defines': [
133 'GTEST_HAS_TR1_TUPLE=0',
134 'GTEST_HAS_STREAM_REDIRECTION=0',
135 'GTEST_HAS_POSIX_RE=0', # it only has a broken header...
136 ],
137 'direct_dependent_settings': {
138 'defines': [
139 'GTEST_HAS_TR1_TUPLE=0',
140 'GTEST_HAS_STREAM_REDIRECTION=0',
141 'GTEST_HAS_POSIX_RE=0',
142 ],
143 },
144 }, {
145 'sources': [
146 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest_main.cc',
147 ],
148 }]],
brians343bc112013-02-10 01:53:46 +0000149 'cflags!': ['-Werror'],
150 'direct_dependent_settings': {
151 'include_dirs': ['<(externals)/gtest-<(gtest_version)/include'],
152 'target_conditions': [
153 ['_type=="executable"', {
154 'product_dir': '<(test_dir)',
155 },
156 ],
157 ],
158 },
159 },
160 {
161 'target_name': 'ctemplate',
162 'type': 'none',
163 'link_settings': {
Brian Silverman798c7782013-03-28 16:48:02 -0700164 'libraries': ['<(externals_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
brians343bc112013-02-10 01:53:46 +0000165 },
166 'direct_dependent_settings': {
167 'include_dirs': ['<(externals)/ctemplate-<(ctemplate_version)-prefix/include'],
168 },
169 },
Brian Silverman798c7782013-03-28 16:48:02 -0700170 {
171 'target_name': 'gflags',
172 'type': 'none',
173 'link_settings': {
174 'libraries': ['<(externals_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
175 },
176 'direct_dependent_settings': {
177 'include_dirs': ['<(externals)/gflags-<(gflags_version)-prefix/include'],
178 },
179 },
180 {
181 'target_name': 'libusb',
182 'type': 'none',
183 'link_settings': {
184 'libraries': ['<(externals_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
185 },
186 'direct_dependent_settings': {
187 'include_dirs': ['<(externals)/libusb-<(libusb_version)-prefix/include'],
188 },
189 },
brians343bc112013-02-10 01:53:46 +0000190 ],
Brian Silverman6137a502013-04-22 15:41:36 -0700191 'includes': [
192 'libgcc-additions/libgcc-additions.gypi',
193 ],
brians343bc112013-02-10 01:53:46 +0000194}