blob: ad6a886d53ed04b3d67f6d0aa34cfd031b7f7084 [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',
brians343bc112013-02-10 01:53:46 +000016 },
17 'targets': [
18 {
19# does nothing when OS!="crio"
20 'target_name': 'WPILib',
21 'type': 'none',
22 'conditions': [['OS=="crio"', {
23 'direct_dependent_settings': {
24 'cflags': [
25 '-isystem', '<(aos_abs)/externals/WPILib',
brianscd5aa322013-03-03 05:31:51 +000026 '-isystem', '<(aos_abs)/externals/WPILib/WPILib',
brians343bc112013-02-10 01:53:46 +000027 ],
28 'link_settings': {
29 'libraries': [
30 '<(aos_abs)/externals/WPILib/WPILib.a',
31 ],
32 },
33 },
34 }]],
35 },
36 {
37 'target_name': 'onejar',
38 'type': 'none',
39 'direct_dependent_settings': {
40 'variables': {
41 'onejar_jar': '<(externals_abs)/one-jar-boot-<(onejar_version).jar',
42 },
43 },
44 },
45 {
46 'target_name': 'javacv',
47 'type': 'none',
48 'variables': {
49 'javacv_dir': '<(externals_abs)/javacv-bin',
50 },
51 'direct_dependent_settings': {
52 'include_dirs': [
53 '/usr/lib/jvm/default-java/include',
54 '/usr/lib/jvm/default-java/include/linux',
55 ],
56 'variables': {
57 'classpath': [
58 '<(javacv_dir)/javacv.jar',
59 '<(javacv_dir)/javacpp.jar',
60 '<(javacv_dir)/javacv-linux-x86.jar',
61 ],
62 },
63 },
64 },
65 {
66# TODO(brians) convert this to downloading + building
67 'target_name': 'libevent',
68 'type': 'none',
69 'link_settings': {
70 'libraries': ['-levent'],
71 },
72 },
73 {
74 'target_name': 'eigen',
75 'type': 'none',
76 'direct_dependent_settings': {
77 'include_dirs': ['<(externals)/eigen-<(eigen_version)'],
78 },
79 },
80 {
81 'target_name': 'libjpeg',
82 'type': 'none',
83 'direct_dependent_settings': {
84 'libraries': ['<(externals_abs)/libjpeg/lib/libjpeg.a'],
85 },
86 },
87 {
brians2fdfc072013-02-26 05:35:15 +000088# Dependents should only use the "gtest/gtest_prod.h" header.
89# This target is NOT the correct one for "aos/common/gtest_prod.h". That one is
90# aos/common/common.gyp:gtest_prod. This target just deals with setting up to
91# use the gtest header.
92 'target_name': 'gtest_prod',
93 'type': 'static_library',
94 'direct_dependent_settings': {
95 'include_dirs': [
96 '<(externals)/gtest-<(gtest_version)/include'
97 ],
98 },
99 },
100 {
brians343bc112013-02-10 01:53:46 +0000101 'target_name': 'gtest',
102 'type': 'static_library',
103 'sources': [
104 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest-all.cc',
105 ],
brians2fdfc072013-02-26 05:35:15 +0000106 'dependencies': [
107 'gtest_prod',
108 ],
109 'export_dependent_settings': [
110 'gtest_prod',
111 ],
brians343bc112013-02-10 01:53:46 +0000112 'conditions': [['OS=="crio"', {
113 'defines': [
114 'GTEST_HAS_TR1_TUPLE=0',
115 'GTEST_HAS_STREAM_REDIRECTION=0',
116 'GTEST_HAS_POSIX_RE=0', # it only has a broken header...
117 ],
118 'direct_dependent_settings': {
119 'defines': [
120 'GTEST_HAS_TR1_TUPLE=0',
121 'GTEST_HAS_STREAM_REDIRECTION=0',
122 'GTEST_HAS_POSIX_RE=0',
123 ],
124 },
125 }, {
126 'sources': [
127 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest_main.cc',
128 ],
129 }]],
brians343bc112013-02-10 01:53:46 +0000130 'cflags!': ['-Werror'],
131 'direct_dependent_settings': {
132 'include_dirs': ['<(externals)/gtest-<(gtest_version)/include'],
133 'target_conditions': [
134 ['_type=="executable"', {
135 'product_dir': '<(test_dir)',
136 },
137 ],
138 ],
139 },
140 },
141 {
142 'target_name': 'ctemplate',
143 'type': 'none',
144 'link_settings': {
Brian Silverman798c7782013-03-28 16:48:02 -0700145 'libraries': ['<(externals_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
brians343bc112013-02-10 01:53:46 +0000146 },
147 'direct_dependent_settings': {
148 'include_dirs': ['<(externals)/ctemplate-<(ctemplate_version)-prefix/include'],
149 },
150 },
Brian Silverman798c7782013-03-28 16:48:02 -0700151 {
152 'target_name': 'gflags',
153 'type': 'none',
154 'link_settings': {
155 'libraries': ['<(externals_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
156 },
157 'direct_dependent_settings': {
158 'include_dirs': ['<(externals)/gflags-<(gflags_version)-prefix/include'],
159 },
160 },
161 {
162 'target_name': 'libusb',
163 'type': 'none',
164 'link_settings': {
165 'libraries': ['<(externals_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
166 },
167 'direct_dependent_settings': {
168 'include_dirs': ['<(externals)/libusb-<(libusb_version)-prefix/include'],
169 },
170 },
brians343bc112013-02-10 01:53:46 +0000171 ],
172}