blob: 0fa5feda4dbef23e2aa3be96d700a8b5b9251d3b [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 {
brians343bc112013-02-10 01:53:46 +000019 'target_name': 'WPILib',
Brian Silverman7671c3c2013-04-26 22:37:29 -070020 'type': 'static_library',
21 'sources': [
22 '<!@(find <(externals)/WPILib/WPILib/ -name *.cpp)',
23 ],
24 'cflags!': [
25 '-Werror',
26 '-ggdb3',
27 '-O0'
28 ],
29 'cflags': [
30 '-ggdb1',
31 '-O3'
32 ],
33 'include_dirs': [
34 '<(externals)/WPILib',
35 '<(externals)/WPILib/WPILib',
36 ],
37 'direct_dependent_settings': {
38 'cflags': [
39 '-isystem', '<(externals_abs)/WPILib',
40 '-isystem', '<(externals_abs)/WPILib/WPILib',
41 ],
42 },
brians343bc112013-02-10 01:53:46 +000043 },
44 {
45 'target_name': 'onejar',
46 'type': 'none',
47 'direct_dependent_settings': {
48 'variables': {
49 'onejar_jar': '<(externals_abs)/one-jar-boot-<(onejar_version).jar',
50 },
51 },
52 },
53 {
54 'target_name': 'javacv',
55 'type': 'none',
56 'variables': {
57 'javacv_dir': '<(externals_abs)/javacv-bin',
58 },
59 'direct_dependent_settings': {
60 'include_dirs': [
61 '/usr/lib/jvm/default-java/include',
62 '/usr/lib/jvm/default-java/include/linux',
63 ],
64 'variables': {
65 'classpath': [
66 '<(javacv_dir)/javacv.jar',
67 '<(javacv_dir)/javacpp.jar',
68 '<(javacv_dir)/javacv-linux-x86.jar',
69 ],
70 },
71 },
72 },
73 {
Brian Silverman6ae77dd2013-03-29 22:28:08 -070074 'target_name': 'opencv',
75 'type': 'none',
76 'link_settings': {
77 'libraries': [
78 '-lopencv_core',
79 '-lopencv_imgproc',
80 ],
81 },
82 },
83 {
brians343bc112013-02-10 01:53:46 +000084# TODO(brians) convert this to downloading + building
85 'target_name': 'libevent',
86 'type': 'none',
87 'link_settings': {
88 'libraries': ['-levent'],
89 },
90 },
91 {
92 'target_name': 'eigen',
93 'type': 'none',
94 'direct_dependent_settings': {
95 'include_dirs': ['<(externals)/eigen-<(eigen_version)'],
96 },
97 },
98 {
99 'target_name': 'libjpeg',
100 'type': 'none',
101 'direct_dependent_settings': {
102 'libraries': ['<(externals_abs)/libjpeg/lib/libjpeg.a'],
103 },
104 },
105 {
brians2fdfc072013-02-26 05:35:15 +0000106# Dependents should only use the "gtest/gtest_prod.h" header.
107# This target is NOT the correct one for "aos/common/gtest_prod.h". That one is
108# aos/common/common.gyp:gtest_prod. This target just deals with setting up to
109# use the gtest header.
110 'target_name': 'gtest_prod',
111 'type': 'static_library',
112 'direct_dependent_settings': {
113 'include_dirs': [
114 '<(externals)/gtest-<(gtest_version)/include'
115 ],
116 },
117 },
118 {
brians343bc112013-02-10 01:53:46 +0000119 'target_name': 'gtest',
120 'type': 'static_library',
121 'sources': [
122 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest-all.cc',
123 ],
brians2fdfc072013-02-26 05:35:15 +0000124 'dependencies': [
125 'gtest_prod',
126 ],
127 'export_dependent_settings': [
128 'gtest_prod',
129 ],
brians343bc112013-02-10 01:53:46 +0000130 'conditions': [['OS=="crio"', {
131 'defines': [
132 'GTEST_HAS_TR1_TUPLE=0',
133 'GTEST_HAS_STREAM_REDIRECTION=0',
134 'GTEST_HAS_POSIX_RE=0', # it only has a broken header...
135 ],
136 'direct_dependent_settings': {
137 'defines': [
138 'GTEST_HAS_TR1_TUPLE=0',
139 'GTEST_HAS_STREAM_REDIRECTION=0',
140 'GTEST_HAS_POSIX_RE=0',
141 ],
142 },
143 }, {
144 'sources': [
145 '<(externals)/gtest-<(gtest_version)/fused-src/gtest/gtest_main.cc',
146 ],
147 }]],
brians343bc112013-02-10 01:53:46 +0000148 'cflags!': ['-Werror'],
149 'direct_dependent_settings': {
150 'include_dirs': ['<(externals)/gtest-<(gtest_version)/include'],
151 'target_conditions': [
152 ['_type=="executable"', {
153 'product_dir': '<(test_dir)',
154 },
155 ],
156 ],
157 },
158 },
159 {
160 'target_name': 'ctemplate',
161 'type': 'none',
162 'link_settings': {
Brian Silverman798c7782013-03-28 16:48:02 -0700163 'libraries': ['<(externals_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
brians343bc112013-02-10 01:53:46 +0000164 },
165 'direct_dependent_settings': {
166 'include_dirs': ['<(externals)/ctemplate-<(ctemplate_version)-prefix/include'],
167 },
168 },
Brian Silverman798c7782013-03-28 16:48:02 -0700169 {
170 'target_name': 'gflags',
171 'type': 'none',
172 'link_settings': {
173 'libraries': ['<(externals_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
174 },
175 'direct_dependent_settings': {
176 'include_dirs': ['<(externals)/gflags-<(gflags_version)-prefix/include'],
177 },
178 },
179 {
180 'target_name': 'libusb',
181 'type': 'none',
182 'link_settings': {
183 'libraries': ['<(externals_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
184 },
185 'direct_dependent_settings': {
186 'include_dirs': ['<(externals)/libusb-<(libusb_version)-prefix/include'],
187 },
188 },
brians343bc112013-02-10 01:53:46 +0000189 ],
190}