]>
Commit | Line | Data |
---|---|---|
11fdf7f2 | 1 | cmake_minimum_required(VERSION 3.4) |
7c673cae | 2 | |
f67539c2 TL |
3 | if(${CMAKE_VERSION} VERSION_LESS "3.11.4") |
4 | message("Please consider switching to CMake 3.11.4 or newer") | |
5 | endif() | |
6 | ||
20effc67 TL |
7 | set(CMAKE_JAVA_COMPILE_FLAGS -source 7) |
8 | ||
7c673cae | 9 | set(JNI_NATIVE_SOURCES |
1e59de90 | 10 | rocksjni/backup_engine_options.cc |
7c673cae | 11 | rocksjni/backupenginejni.cc |
11fdf7f2 TL |
12 | rocksjni/cassandra_compactionfilterjni.cc |
13 | rocksjni/cassandra_value_operator.cc | |
7c673cae FG |
14 | rocksjni/checkpoint.cc |
15 | rocksjni/clock_cache.cc | |
1e59de90 | 16 | rocksjni/cache.cc |
7c673cae FG |
17 | rocksjni/columnfamilyhandle.cc |
18 | rocksjni/compaction_filter.cc | |
11fdf7f2 TL |
19 | rocksjni/compaction_filter_factory.cc |
20 | rocksjni/compaction_filter_factory_jnicallback.cc | |
f67539c2 TL |
21 | rocksjni/compaction_job_info.cc |
22 | rocksjni/compaction_job_stats.cc | |
23 | rocksjni/compaction_options.cc | |
7c673cae FG |
24 | rocksjni/compaction_options_fifo.cc |
25 | rocksjni/compaction_options_universal.cc | |
11fdf7f2 | 26 | rocksjni/compact_range_options.cc |
7c673cae FG |
27 | rocksjni/comparator.cc |
28 | rocksjni/comparatorjnicallback.cc | |
29 | rocksjni/compression_options.cc | |
20effc67 TL |
30 | rocksjni/concurrent_task_limiter.cc |
31 | rocksjni/config_options.cc | |
7c673cae FG |
32 | rocksjni/env.cc |
33 | rocksjni/env_options.cc | |
20effc67 TL |
34 | rocksjni/event_listener.cc |
35 | rocksjni/event_listener_jnicallback.cc | |
7c673cae | 36 | rocksjni/filter.cc |
11fdf7f2 | 37 | rocksjni/ingest_external_file_options.cc |
7c673cae | 38 | rocksjni/iterator.cc |
11fdf7f2 | 39 | rocksjni/jnicallback.cc |
7c673cae FG |
40 | rocksjni/loggerjnicallback.cc |
41 | rocksjni/lru_cache.cc | |
494da23a | 42 | rocksjni/memory_util.cc |
7c673cae FG |
43 | rocksjni/memtablejni.cc |
44 | rocksjni/merge_operator.cc | |
11fdf7f2 TL |
45 | rocksjni/native_comparator_wrapper_test.cc |
46 | rocksjni/optimistic_transaction_db.cc | |
47 | rocksjni/optimistic_transaction_options.cc | |
7c673cae | 48 | rocksjni/options.cc |
11fdf7f2 | 49 | rocksjni/options_util.cc |
494da23a | 50 | rocksjni/persistent_cache.cc |
7c673cae FG |
51 | rocksjni/ratelimiterjni.cc |
52 | rocksjni/remove_emptyvalue_compactionfilterjni.cc | |
53 | rocksjni/restorejni.cc | |
11fdf7f2 | 54 | rocksjni/rocks_callback_object.cc |
7c673cae FG |
55 | rocksjni/rocksdb_exception_test.cc |
56 | rocksjni/rocksjni.cc | |
57 | rocksjni/slice.cc | |
58 | rocksjni/snapshot.cc | |
11fdf7f2 | 59 | rocksjni/sst_file_manager.cc |
7c673cae | 60 | rocksjni/sst_file_writerjni.cc |
f67539c2 TL |
61 | rocksjni/sst_file_readerjni.cc |
62 | rocksjni/sst_file_reader_iterator.cc | |
20effc67 | 63 | rocksjni/sst_partitioner.cc |
7c673cae | 64 | rocksjni/statistics.cc |
11fdf7f2 | 65 | rocksjni/statisticsjni.cc |
7c673cae | 66 | rocksjni/table.cc |
494da23a TL |
67 | rocksjni/table_filter.cc |
68 | rocksjni/table_filter_jnicallback.cc | |
1e59de90 | 69 | rocksjni/testable_event_listener.cc |
494da23a TL |
70 | rocksjni/thread_status.cc |
71 | rocksjni/trace_writer.cc | |
72 | rocksjni/trace_writer_jnicallback.cc | |
11fdf7f2 TL |
73 | rocksjni/transaction.cc |
74 | rocksjni/transaction_db.cc | |
75 | rocksjni/transaction_db_options.cc | |
7c673cae | 76 | rocksjni/transaction_log.cc |
11fdf7f2 TL |
77 | rocksjni/transaction_notifier.cc |
78 | rocksjni/transaction_notifier_jnicallback.cc | |
79 | rocksjni/transaction_options.cc | |
7c673cae | 80 | rocksjni/ttl.cc |
494da23a TL |
81 | rocksjni/wal_filter.cc |
82 | rocksjni/wal_filter_jnicallback.cc | |
7c673cae | 83 | rocksjni/write_batch.cc |
11fdf7f2 | 84 | rocksjni/writebatchhandlerjnicallback.cc |
7c673cae FG |
85 | rocksjni/write_batch_test.cc |
86 | rocksjni/write_batch_with_index.cc | |
494da23a | 87 | rocksjni/write_buffer_manager.cc |
7c673cae FG |
88 | ) |
89 | ||
f67539c2 | 90 | set(JAVA_MAIN_CLASSES |
11fdf7f2 | 91 | src/main/java/org/rocksdb/AbstractCompactionFilter.java |
f67539c2 | 92 | src/main/java/org/rocksdb/AbstractCompactionFilterFactory.java |
11fdf7f2 | 93 | src/main/java/org/rocksdb/AbstractComparator.java |
20effc67 | 94 | src/main/java/org/rocksdb/AbstractEventListener.java |
11fdf7f2 | 95 | src/main/java/org/rocksdb/AbstractImmutableNativeReference.java |
494da23a | 96 | src/main/java/org/rocksdb/AbstractMutableOptions.java |
11fdf7f2 TL |
97 | src/main/java/org/rocksdb/AbstractNativeReference.java |
98 | src/main/java/org/rocksdb/AbstractRocksIterator.java | |
99 | src/main/java/org/rocksdb/AbstractSlice.java | |
494da23a TL |
100 | src/main/java/org/rocksdb/AbstractTableFilter.java |
101 | src/main/java/org/rocksdb/AbstractTraceWriter.java | |
11fdf7f2 | 102 | src/main/java/org/rocksdb/AbstractTransactionNotifier.java |
494da23a | 103 | src/main/java/org/rocksdb/AbstractWalFilter.java |
11fdf7f2 TL |
104 | src/main/java/org/rocksdb/AbstractWriteBatch.java |
105 | src/main/java/org/rocksdb/AccessHint.java | |
106 | src/main/java/org/rocksdb/AdvancedColumnFamilyOptionsInterface.java | |
107 | src/main/java/org/rocksdb/AdvancedMutableColumnFamilyOptionsInterface.java | |
20effc67 | 108 | src/main/java/org/rocksdb/BackgroundErrorReason.java |
1e59de90 | 109 | src/main/java/org/rocksdb/BackupEngineOptions.java |
11fdf7f2 TL |
110 | src/main/java/org/rocksdb/BackupEngine.java |
111 | src/main/java/org/rocksdb/BackupInfo.java | |
112 | src/main/java/org/rocksdb/BlockBasedTableConfig.java | |
113 | src/main/java/org/rocksdb/BloomFilter.java | |
114 | src/main/java/org/rocksdb/BuiltinComparator.java | |
1e59de90 | 115 | src/main/java/org/rocksdb/ByteBufferGetStatus.java |
11fdf7f2 TL |
116 | src/main/java/org/rocksdb/Cache.java |
117 | src/main/java/org/rocksdb/CassandraCompactionFilter.java | |
118 | src/main/java/org/rocksdb/CassandraValueMergeOperator.java | |
119 | src/main/java/org/rocksdb/Checkpoint.java | |
120 | src/main/java/org/rocksdb/ChecksumType.java | |
121 | src/main/java/org/rocksdb/ClockCache.java | |
122 | src/main/java/org/rocksdb/ColumnFamilyDescriptor.java | |
123 | src/main/java/org/rocksdb/ColumnFamilyHandle.java | |
494da23a | 124 | src/main/java/org/rocksdb/ColumnFamilyMetaData.java |
11fdf7f2 TL |
125 | src/main/java/org/rocksdb/ColumnFamilyOptionsInterface.java |
126 | src/main/java/org/rocksdb/ColumnFamilyOptions.java | |
494da23a TL |
127 | src/main/java/org/rocksdb/CompactionJobInfo.java |
128 | src/main/java/org/rocksdb/CompactionJobStats.java | |
129 | src/main/java/org/rocksdb/CompactionOptions.java | |
11fdf7f2 TL |
130 | src/main/java/org/rocksdb/CompactionOptionsFIFO.java |
131 | src/main/java/org/rocksdb/CompactionOptionsUniversal.java | |
132 | src/main/java/org/rocksdb/CompactionPriority.java | |
494da23a | 133 | src/main/java/org/rocksdb/CompactionReason.java |
11fdf7f2 TL |
134 | src/main/java/org/rocksdb/CompactRangeOptions.java |
135 | src/main/java/org/rocksdb/CompactionStopStyle.java | |
136 | src/main/java/org/rocksdb/CompactionStyle.java | |
11fdf7f2 TL |
137 | src/main/java/org/rocksdb/ComparatorOptions.java |
138 | src/main/java/org/rocksdb/ComparatorType.java | |
139 | src/main/java/org/rocksdb/CompressionOptions.java | |
140 | src/main/java/org/rocksdb/CompressionType.java | |
20effc67 | 141 | src/main/java/org/rocksdb/ConfigOptions.java |
494da23a | 142 | src/main/java/org/rocksdb/DataBlockIndexType.java |
11fdf7f2 TL |
143 | src/main/java/org/rocksdb/DBOptionsInterface.java |
144 | src/main/java/org/rocksdb/DBOptions.java | |
145 | src/main/java/org/rocksdb/DbPath.java | |
11fdf7f2 TL |
146 | src/main/java/org/rocksdb/DirectSlice.java |
147 | src/main/java/org/rocksdb/EncodingType.java | |
148 | src/main/java/org/rocksdb/Env.java | |
149 | src/main/java/org/rocksdb/EnvOptions.java | |
20effc67 | 150 | src/main/java/org/rocksdb/EventListener.java |
11fdf7f2 | 151 | src/main/java/org/rocksdb/Experimental.java |
20effc67 | 152 | src/main/java/org/rocksdb/ExternalFileIngestionInfo.java |
11fdf7f2 | 153 | src/main/java/org/rocksdb/Filter.java |
20effc67 TL |
154 | src/main/java/org/rocksdb/FileOperationInfo.java |
155 | src/main/java/org/rocksdb/FlushJobInfo.java | |
156 | src/main/java/org/rocksdb/FlushReason.java | |
11fdf7f2 TL |
157 | src/main/java/org/rocksdb/FlushOptions.java |
158 | src/main/java/org/rocksdb/HashLinkedListMemTableConfig.java | |
159 | src/main/java/org/rocksdb/HashSkipListMemTableConfig.java | |
160 | src/main/java/org/rocksdb/HistogramData.java | |
161 | src/main/java/org/rocksdb/HistogramType.java | |
f67539c2 | 162 | src/main/java/org/rocksdb/Holder.java |
20effc67 | 163 | src/main/java/org/rocksdb/IndexShorteningMode.java |
11fdf7f2 TL |
164 | src/main/java/org/rocksdb/IndexType.java |
165 | src/main/java/org/rocksdb/InfoLogLevel.java | |
166 | src/main/java/org/rocksdb/IngestExternalFileOptions.java | |
494da23a | 167 | src/main/java/org/rocksdb/LevelMetaData.java |
20effc67 TL |
168 | src/main/java/org/rocksdb/ConcurrentTaskLimiter.java |
169 | src/main/java/org/rocksdb/ConcurrentTaskLimiterImpl.java | |
1e59de90 | 170 | src/main/java/org/rocksdb/KeyMayExist.java |
494da23a TL |
171 | src/main/java/org/rocksdb/LiveFileMetaData.java |
172 | src/main/java/org/rocksdb/LogFile.java | |
11fdf7f2 TL |
173 | src/main/java/org/rocksdb/Logger.java |
174 | src/main/java/org/rocksdb/LRUCache.java | |
494da23a TL |
175 | src/main/java/org/rocksdb/MemoryUsageType.java |
176 | src/main/java/org/rocksdb/MemoryUtil.java | |
11fdf7f2 | 177 | src/main/java/org/rocksdb/MemTableConfig.java |
20effc67 | 178 | src/main/java/org/rocksdb/MemTableInfo.java |
11fdf7f2 | 179 | src/main/java/org/rocksdb/MergeOperator.java |
11fdf7f2 | 180 | src/main/java/org/rocksdb/MutableColumnFamilyOptions.java |
494da23a TL |
181 | src/main/java/org/rocksdb/MutableColumnFamilyOptionsInterface.java |
182 | src/main/java/org/rocksdb/MutableDBOptions.java | |
183 | src/main/java/org/rocksdb/MutableDBOptionsInterface.java | |
184 | src/main/java/org/rocksdb/MutableOptionKey.java | |
185 | src/main/java/org/rocksdb/MutableOptionValue.java | |
11fdf7f2 TL |
186 | src/main/java/org/rocksdb/NativeComparatorWrapper.java |
187 | src/main/java/org/rocksdb/NativeLibraryLoader.java | |
494da23a TL |
188 | src/main/java/org/rocksdb/OperationStage.java |
189 | src/main/java/org/rocksdb/OperationType.java | |
11fdf7f2 TL |
190 | src/main/java/org/rocksdb/OptimisticTransactionDB.java |
191 | src/main/java/org/rocksdb/OptimisticTransactionOptions.java | |
192 | src/main/java/org/rocksdb/Options.java | |
1e59de90 | 193 | src/main/java/org/rocksdb/OptionString.java |
11fdf7f2 | 194 | src/main/java/org/rocksdb/OptionsUtil.java |
494da23a | 195 | src/main/java/org/rocksdb/PersistentCache.java |
11fdf7f2 | 196 | src/main/java/org/rocksdb/PlainTableConfig.java |
1e59de90 | 197 | src/main/java/org/rocksdb/PrepopulateBlobCache.java |
494da23a TL |
198 | src/main/java/org/rocksdb/Priority.java |
199 | src/main/java/org/rocksdb/Range.java | |
11fdf7f2 TL |
200 | src/main/java/org/rocksdb/RateLimiter.java |
201 | src/main/java/org/rocksdb/RateLimiterMode.java | |
202 | src/main/java/org/rocksdb/ReadOptions.java | |
203 | src/main/java/org/rocksdb/ReadTier.java | |
204 | src/main/java/org/rocksdb/RemoveEmptyValueCompactionFilter.java | |
205 | src/main/java/org/rocksdb/RestoreOptions.java | |
f67539c2 | 206 | src/main/java/org/rocksdb/ReusedSynchronisationType.java |
11fdf7f2 TL |
207 | src/main/java/org/rocksdb/RocksCallbackObject.java |
208 | src/main/java/org/rocksdb/RocksDBException.java | |
209 | src/main/java/org/rocksdb/RocksDB.java | |
210 | src/main/java/org/rocksdb/RocksEnv.java | |
211 | src/main/java/org/rocksdb/RocksIteratorInterface.java | |
212 | src/main/java/org/rocksdb/RocksIterator.java | |
213 | src/main/java/org/rocksdb/RocksMemEnv.java | |
214 | src/main/java/org/rocksdb/RocksMutableObject.java | |
215 | src/main/java/org/rocksdb/RocksObject.java | |
20effc67 | 216 | src/main/java/org/rocksdb/SanityLevel.java |
494da23a | 217 | src/main/java/org/rocksdb/SizeApproximationFlag.java |
11fdf7f2 TL |
218 | src/main/java/org/rocksdb/SkipListMemTableConfig.java |
219 | src/main/java/org/rocksdb/Slice.java | |
220 | src/main/java/org/rocksdb/Snapshot.java | |
221 | src/main/java/org/rocksdb/SstFileManager.java | |
494da23a | 222 | src/main/java/org/rocksdb/SstFileMetaData.java |
f67539c2 TL |
223 | src/main/java/org/rocksdb/SstFileReader.java |
224 | src/main/java/org/rocksdb/SstFileReaderIterator.java | |
20effc67 TL |
225 | src/main/java/org/rocksdb/SstFileWriter.java |
226 | src/main/java/org/rocksdb/SstPartitionerFactory.java | |
227 | src/main/java/org/rocksdb/SstPartitionerFixedPrefixFactory.java | |
494da23a | 228 | src/main/java/org/rocksdb/StateType.java |
11fdf7f2 TL |
229 | src/main/java/org/rocksdb/StatisticsCollectorCallback.java |
230 | src/main/java/org/rocksdb/StatisticsCollector.java | |
231 | src/main/java/org/rocksdb/Statistics.java | |
232 | src/main/java/org/rocksdb/StatsCollectorInput.java | |
233 | src/main/java/org/rocksdb/StatsLevel.java | |
234 | src/main/java/org/rocksdb/Status.java | |
235 | src/main/java/org/rocksdb/StringAppendOperator.java | |
20effc67 TL |
236 | src/main/java/org/rocksdb/TableFileCreationBriefInfo.java |
237 | src/main/java/org/rocksdb/TableFileCreationInfo.java | |
238 | src/main/java/org/rocksdb/TableFileCreationReason.java | |
239 | src/main/java/org/rocksdb/TableFileDeletionInfo.java | |
494da23a TL |
240 | src/main/java/org/rocksdb/TableFilter.java |
241 | src/main/java/org/rocksdb/TableProperties.java | |
11fdf7f2 | 242 | src/main/java/org/rocksdb/TableFormatConfig.java |
494da23a TL |
243 | src/main/java/org/rocksdb/ThreadType.java |
244 | src/main/java/org/rocksdb/ThreadStatus.java | |
11fdf7f2 | 245 | src/main/java/org/rocksdb/TickerType.java |
494da23a TL |
246 | src/main/java/org/rocksdb/TimedEnv.java |
247 | src/main/java/org/rocksdb/TraceOptions.java | |
248 | src/main/java/org/rocksdb/TraceWriter.java | |
11fdf7f2 TL |
249 | src/main/java/org/rocksdb/TransactionalDB.java |
250 | src/main/java/org/rocksdb/TransactionalOptions.java | |
251 | src/main/java/org/rocksdb/TransactionDB.java | |
252 | src/main/java/org/rocksdb/TransactionDBOptions.java | |
253 | src/main/java/org/rocksdb/Transaction.java | |
254 | src/main/java/org/rocksdb/TransactionLogIterator.java | |
255 | src/main/java/org/rocksdb/TransactionOptions.java | |
256 | src/main/java/org/rocksdb/TtlDB.java | |
257 | src/main/java/org/rocksdb/TxnDBWritePolicy.java | |
258 | src/main/java/org/rocksdb/VectorMemTableConfig.java | |
494da23a TL |
259 | src/main/java/org/rocksdb/WalFileType.java |
260 | src/main/java/org/rocksdb/WalFilter.java | |
261 | src/main/java/org/rocksdb/WalProcessingOption.java | |
11fdf7f2 TL |
262 | src/main/java/org/rocksdb/WALRecoveryMode.java |
263 | src/main/java/org/rocksdb/WBWIRocksIterator.java | |
11fdf7f2 | 264 | src/main/java/org/rocksdb/WriteBatch.java |
f67539c2 | 265 | src/main/java/org/rocksdb/WriteBatchInterface.java |
11fdf7f2 TL |
266 | src/main/java/org/rocksdb/WriteBatchWithIndex.java |
267 | src/main/java/org/rocksdb/WriteOptions.java | |
494da23a | 268 | src/main/java/org/rocksdb/WriteBufferManager.java |
20effc67 TL |
269 | src/main/java/org/rocksdb/WriteStallCondition.java |
270 | src/main/java/org/rocksdb/WriteStallInfo.java | |
f67539c2 | 271 | src/main/java/org/rocksdb/util/ByteUtil.java |
11fdf7f2 | 272 | src/main/java/org/rocksdb/util/BytewiseComparator.java |
11fdf7f2 | 273 | src/main/java/org/rocksdb/util/Environment.java |
f67539c2 | 274 | src/main/java/org/rocksdb/util/IntComparator.java |
11fdf7f2 TL |
275 | src/main/java/org/rocksdb/util/ReverseBytewiseComparator.java |
276 | src/main/java/org/rocksdb/util/SizeUnit.java | |
f67539c2 TL |
277 | src/main/java/org/rocksdb/UInt64AddOperator.java |
278 | ) | |
279 | ||
280 | set(JAVA_TEST_CLASSES | |
11fdf7f2 TL |
281 | src/test/java/org/rocksdb/BackupEngineTest.java |
282 | src/test/java/org/rocksdb/IngestExternalFileOptionsTest.java | |
283 | src/test/java/org/rocksdb/NativeComparatorWrapperTest.java | |
284 | src/test/java/org/rocksdb/PlatformRandomHelper.java | |
285 | src/test/java/org/rocksdb/RocksDBExceptionTest.java | |
f67539c2 | 286 | src/test/java/org/rocksdb/RocksNativeLibraryResource.java |
11fdf7f2 TL |
287 | src/test/java/org/rocksdb/SnapshotTest.java |
288 | src/test/java/org/rocksdb/WriteBatchTest.java | |
289 | src/test/java/org/rocksdb/util/CapturingWriteBatchHandler.java | |
290 | src/test/java/org/rocksdb/util/WriteBatchGetter.java | |
1e59de90 | 291 | src/test/java/org/rocksdb/test/TestableEventListener.java |
11fdf7f2 | 292 | ) |
7c673cae | 293 | |
f67539c2 TL |
294 | include(FindJava) |
295 | include(UseJava) | |
296 | find_package(JNI) | |
297 | ||
298 | include_directories(${JNI_INCLUDE_DIRS}) | |
299 | include_directories(${PROJECT_SOURCE_DIR}/java) | |
300 | ||
301 | set(JAVA_TEST_LIBDIR ${PROJECT_SOURCE_DIR}/java/test-libs) | |
302 | set(JAVA_TMP_JAR ${JAVA_TEST_LIBDIR}/tmp.jar) | |
303 | set(JAVA_JUNIT_JAR ${JAVA_TEST_LIBDIR}/junit-4.12.jar) | |
304 | set(JAVA_HAMCR_JAR ${JAVA_TEST_LIBDIR}/hamcrest-core-1.3.jar) | |
305 | set(JAVA_MOCKITO_JAR ${JAVA_TEST_LIBDIR}/mockito-all-1.10.19.jar) | |
306 | set(JAVA_CGLIB_JAR ${JAVA_TEST_LIBDIR}/cglib-2.2.2.jar) | |
307 | set(JAVA_ASSERTJ_JAR ${JAVA_TEST_LIBDIR}/assertj-core-1.7.1.jar) | |
308 | set(JAVA_TESTCLASSPATH ${JAVA_JUNIT_JAR} ${JAVA_HAMCR_JAR} ${JAVA_MOCKITO_JAR} ${JAVA_CGLIB_JAR} ${JAVA_ASSERTJ_JAR}) | |
309 | ||
310 | set(JNI_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/java/include) | |
311 | file(MAKE_DIRECTORY ${JNI_OUTPUT_DIR}) | |
312 | ||
1e59de90 TL |
313 | if(${Java_VERSION_MINOR} VERSION_LESS_EQUAL "7" AND ${Java_VERSION_MAJOR} STREQUAL "1") |
314 | message(FATAL_ERROR "Detected Java 7 or older (${Java_VERSION_STRING}), minimum required version in now Java 8") | |
315 | endif() | |
316 | ||
f67539c2 TL |
317 | if(${Java_VERSION_MAJOR} VERSION_GREATER_EQUAL "10" AND ${CMAKE_VERSION} VERSION_LESS "3.11.4") |
318 | # Java 10 and newer don't have javah, but the alternative GENERATE_NATIVE_HEADERS requires CMake 3.11.4 or newer | |
319 | message(FATAL_ERROR "Detected Java 10 or newer (${Java_VERSION_STRING}), to build with CMake please upgrade CMake to 3.11.4 or newer") | |
320 | ||
1e59de90 TL |
321 | elseif(${CMAKE_VERSION} VERSION_LESS "3.11.4") |
322 | # Old CMake | |
323 | message("Using an old CMAKE (${CMAKE_VERSION}) - JNI headers generated in separate step") | |
f67539c2 TL |
324 | add_jar( |
325 | rocksdbjni_classes | |
326 | SOURCES | |
327 | ${JAVA_MAIN_CLASSES} | |
328 | ${JAVA_TEST_CLASSES} | |
329 | INCLUDE_JARS ${JAVA_TESTCLASSPATH} | |
330 | ) | |
331 | ||
332 | else () | |
333 | # Java 1.8 or newer prepare the JAR... | |
334 | message("Preparing Jar for JDK ${Java_VERSION_STRING}") | |
335 | add_jar( | |
336 | rocksdbjni_classes | |
337 | SOURCES | |
338 | ${JAVA_MAIN_CLASSES} | |
339 | ${JAVA_TEST_CLASSES} | |
340 | INCLUDE_JARS ${JAVA_TESTCLASSPATH} | |
341 | GENERATE_NATIVE_HEADERS rocksdbjni_headers DESTINATION ${JNI_OUTPUT_DIR} | |
342 | ) | |
343 | ||
344 | endif() | |
345 | ||
7c673cae FG |
346 | if(NOT EXISTS ${PROJECT_SOURCE_DIR}/java/classes) |
347 | file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/java/classes) | |
348 | endif() | |
349 | ||
350 | if(NOT EXISTS ${JAVA_TEST_LIBDIR}) | |
351 | file(MAKE_DIRECTORY mkdir ${JAVA_TEST_LIBDIR}) | |
352 | endif() | |
353 | ||
f67539c2 TL |
354 | if (DEFINED CUSTOM_DEPS_URL) |
355 | set(DEPS_URL ${CUSTOM_DEPS_URL}/) | |
7c673cae | 356 | else () |
f67539c2 TL |
357 | # Using a Facebook AWS account for S3 storage. (maven.org has a history |
358 | # of failing in Travis builds.) | |
359 | set(DEPS_URL "https://rocksdb-deps.s3-us-west-2.amazonaws.com/jars") | |
7c673cae FG |
360 | endif() |
361 | ||
362 | if(NOT EXISTS ${JAVA_JUNIT_JAR}) | |
363 | message("Downloading ${JAVA_JUNIT_JAR}") | |
f67539c2 | 364 | file(DOWNLOAD ${DEPS_URL}/junit-4.12.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
7c673cae | 365 | list(GET downloadStatus 0 error_code) |
20effc67 | 366 | list(GET downloadStatus 1 error_message) |
7c673cae | 367 | if(NOT error_code EQUAL 0) |
20effc67 | 368 | message(FATAL_ERROR "Failed downloading ${JAVA_JUNIT_JAR}: ${error_message}") |
7c673cae FG |
369 | endif() |
370 | file(RENAME ${JAVA_TMP_JAR} ${JAVA_JUNIT_JAR}) | |
371 | endif() | |
372 | if(NOT EXISTS ${JAVA_HAMCR_JAR}) | |
373 | message("Downloading ${JAVA_HAMCR_JAR}") | |
f67539c2 | 374 | file(DOWNLOAD ${DEPS_URL}/hamcrest-core-1.3.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
7c673cae | 375 | list(GET downloadStatus 0 error_code) |
20effc67 | 376 | list(GET downloadStatus 1 error_message) |
7c673cae | 377 | if(NOT error_code EQUAL 0) |
20effc67 | 378 | message(FATAL_ERROR "Failed downloading ${JAVA_HAMCR_JAR}: ${error_message}") |
7c673cae FG |
379 | endif() |
380 | file(RENAME ${JAVA_TMP_JAR} ${JAVA_HAMCR_JAR}) | |
381 | endif() | |
382 | if(NOT EXISTS ${JAVA_MOCKITO_JAR}) | |
383 | message("Downloading ${JAVA_MOCKITO_JAR}") | |
f67539c2 | 384 | file(DOWNLOAD ${DEPS_URL}/mockito-all-1.10.19.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
7c673cae | 385 | list(GET downloadStatus 0 error_code) |
20effc67 | 386 | list(GET downloadStatus 1 error_message) |
7c673cae | 387 | if(NOT error_code EQUAL 0) |
20effc67 | 388 | message(FATAL_ERROR "Failed downloading ${JAVA_MOCKITO_JAR}: ${error_message}") |
7c673cae FG |
389 | endif() |
390 | file(RENAME ${JAVA_TMP_JAR} ${JAVA_MOCKITO_JAR}) | |
391 | endif() | |
392 | if(NOT EXISTS ${JAVA_CGLIB_JAR}) | |
393 | message("Downloading ${JAVA_CGLIB_JAR}") | |
f67539c2 | 394 | file(DOWNLOAD ${DEPS_URL}/cglib-2.2.2.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
7c673cae | 395 | list(GET downloadStatus 0 error_code) |
20effc67 | 396 | list(GET downloadStatus 1 error_message) |
7c673cae | 397 | if(NOT error_code EQUAL 0) |
20effc67 | 398 | message(FATAL_ERROR "Failed downloading ${JAVA_CGLIB_JAR}: ${error_message}") |
7c673cae FG |
399 | endif() |
400 | file(RENAME ${JAVA_TMP_JAR} ${JAVA_CGLIB_JAR}) | |
401 | endif() | |
402 | if(NOT EXISTS ${JAVA_ASSERTJ_JAR}) | |
403 | message("Downloading ${JAVA_ASSERTJ_JAR}") | |
f67539c2 | 404 | file(DOWNLOAD ${DEPS_URL}/assertj-core-1.7.1.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
7c673cae | 405 | list(GET downloadStatus 0 error_code) |
20effc67 | 406 | list(GET downloadStatus 1 error_message) |
7c673cae | 407 | if(NOT error_code EQUAL 0) |
20effc67 | 408 | message(FATAL_ERROR "Failed downloading ${JAVA_ASSERTJ_JAR}: ${error_message}") |
7c673cae FG |
409 | endif() |
410 | file(RENAME ${JAVA_TMP_JAR} ${JAVA_ASSERTJ_JAR}) | |
411 | endif() | |
412 | ||
1e59de90 TL |
413 | if(${CMAKE_VERSION} VERSION_LESS "3.11.4") |
414 | # Old CMake ONLY generate JNI headers, otherwise JNI is handled in add_jar step above | |
415 | message("Preparing JNI headers for old CMake (${CMAKE_VERSION})") | |
f67539c2 TL |
416 | set(NATIVE_JAVA_CLASSES |
417 | org.rocksdb.AbstractCompactionFilter | |
418 | org.rocksdb.AbstractCompactionFilterFactory | |
419 | org.rocksdb.AbstractComparator | |
20effc67 | 420 | org.rocksdb.AbstractEventListener |
f67539c2 TL |
421 | org.rocksdb.AbstractImmutableNativeReference |
422 | org.rocksdb.AbstractNativeReference | |
423 | org.rocksdb.AbstractRocksIterator | |
424 | org.rocksdb.AbstractSlice | |
425 | org.rocksdb.AbstractTableFilter | |
426 | org.rocksdb.AbstractTraceWriter | |
427 | org.rocksdb.AbstractTransactionNotifier | |
428 | org.rocksdb.AbstractWalFilter | |
1e59de90 | 429 | org.rocksdb.BackupEngineOptions |
f67539c2 TL |
430 | org.rocksdb.BackupEngine |
431 | org.rocksdb.BlockBasedTableConfig | |
432 | org.rocksdb.BloomFilter | |
433 | org.rocksdb.CassandraCompactionFilter | |
434 | org.rocksdb.CassandraValueMergeOperator | |
435 | org.rocksdb.Checkpoint | |
436 | org.rocksdb.ClockCache | |
1e59de90 | 437 | org.rocksdb.Cache |
f67539c2 TL |
438 | org.rocksdb.ColumnFamilyHandle |
439 | org.rocksdb.ColumnFamilyOptions | |
440 | org.rocksdb.CompactionJobInfo | |
441 | org.rocksdb.CompactionJobStats | |
442 | org.rocksdb.CompactionOptions | |
443 | org.rocksdb.CompactionOptionsFIFO | |
444 | org.rocksdb.CompactionOptionsUniversal | |
445 | org.rocksdb.CompactRangeOptions | |
446 | org.rocksdb.ComparatorOptions | |
447 | org.rocksdb.CompressionOptions | |
1e59de90 TL |
448 | org.rocksdb.ConcurrentTaskLimiterImpl |
449 | org.rocksdb.ConfigOptions | |
f67539c2 TL |
450 | org.rocksdb.DBOptions |
451 | org.rocksdb.DirectSlice | |
452 | org.rocksdb.Env | |
453 | org.rocksdb.EnvOptions | |
454 | org.rocksdb.Filter | |
455 | org.rocksdb.FlushOptions | |
456 | org.rocksdb.HashLinkedListMemTableConfig | |
457 | org.rocksdb.HashSkipListMemTableConfig | |
f67539c2 TL |
458 | org.rocksdb.IngestExternalFileOptions |
459 | org.rocksdb.Logger | |
460 | org.rocksdb.LRUCache | |
461 | org.rocksdb.MemoryUtil | |
462 | org.rocksdb.MemTableConfig | |
463 | org.rocksdb.NativeComparatorWrapper | |
464 | org.rocksdb.NativeLibraryLoader | |
465 | org.rocksdb.OptimisticTransactionDB | |
466 | org.rocksdb.OptimisticTransactionOptions | |
467 | org.rocksdb.Options | |
468 | org.rocksdb.OptionsUtil | |
469 | org.rocksdb.PersistentCache | |
470 | org.rocksdb.PlainTableConfig | |
471 | org.rocksdb.RateLimiter | |
472 | org.rocksdb.ReadOptions | |
473 | org.rocksdb.RemoveEmptyValueCompactionFilter | |
474 | org.rocksdb.RestoreOptions | |
475 | org.rocksdb.RocksCallbackObject | |
476 | org.rocksdb.RocksDB | |
477 | org.rocksdb.RocksEnv | |
478 | org.rocksdb.RocksIterator | |
479 | org.rocksdb.RocksIteratorInterface | |
480 | org.rocksdb.RocksMemEnv | |
481 | org.rocksdb.RocksMutableObject | |
482 | org.rocksdb.RocksObject | |
483 | org.rocksdb.SkipListMemTableConfig | |
484 | org.rocksdb.Slice | |
485 | org.rocksdb.Snapshot | |
486 | org.rocksdb.SstFileManager | |
487 | org.rocksdb.SstFileWriter | |
488 | org.rocksdb.SstFileReader | |
489 | org.rocksdb.SstFileReaderIterator | |
20effc67 TL |
490 | org.rocksdb.SstPartitionerFactory |
491 | org.rocksdb.SstPartitionerFixedPrefixFactory | |
f67539c2 TL |
492 | org.rocksdb.Statistics |
493 | org.rocksdb.StringAppendOperator | |
494 | org.rocksdb.TableFormatConfig | |
495 | org.rocksdb.ThreadStatus | |
496 | org.rocksdb.TimedEnv | |
497 | org.rocksdb.Transaction | |
498 | org.rocksdb.TransactionDB | |
499 | org.rocksdb.TransactionDBOptions | |
500 | org.rocksdb.TransactionLogIterator | |
501 | org.rocksdb.TransactionOptions | |
502 | org.rocksdb.TtlDB | |
503 | org.rocksdb.UInt64AddOperator | |
504 | org.rocksdb.VectorMemTableConfig | |
505 | org.rocksdb.WBWIRocksIterator | |
506 | org.rocksdb.WriteBatch | |
507 | org.rocksdb.WriteBatch.Handler | |
508 | org.rocksdb.WriteBatchInterface | |
509 | org.rocksdb.WriteBatchWithIndex | |
510 | org.rocksdb.WriteOptions | |
511 | org.rocksdb.NativeComparatorWrapperTest | |
512 | org.rocksdb.RocksDBExceptionTest | |
513 | org.rocksdb.SnapshotTest | |
514 | org.rocksdb.WriteBatchTest | |
515 | org.rocksdb.WriteBatchTestInternalHelper | |
516 | org.rocksdb.WriteBufferManager | |
1e59de90 | 517 | org.rocksdb.test.TestableEventListener |
f67539c2 | 518 | ) |
11fdf7f2 | 519 | |
f67539c2 TL |
520 | create_javah( |
521 | TARGET rocksdbjni_headers | |
522 | CLASSES ${NATIVE_JAVA_CLASSES} | |
523 | CLASSPATH rocksdbjni_classes ${JAVA_TESTCLASSPATH} | |
524 | OUTPUT_DIR ${JNI_OUTPUT_DIR} | |
525 | ) | |
526 | endif() | |
11fdf7f2 TL |
527 | |
528 | if(NOT MSVC) | |
529 | set_property(TARGET ${ROCKSDB_STATIC_LIB} PROPERTY POSITION_INDEPENDENT_CODE ON) | |
7c673cae FG |
530 | endif() |
531 | ||
11fdf7f2 TL |
532 | set(ROCKSDBJNI_STATIC_LIB rocksdbjni${ARTIFACT_SUFFIX}) |
533 | add_library(${ROCKSDBJNI_STATIC_LIB} ${JNI_NATIVE_SOURCES}) | |
534 | add_dependencies(${ROCKSDBJNI_STATIC_LIB} rocksdbjni_headers) | |
f67539c2 | 535 | target_link_libraries(${ROCKSDBJNI_STATIC_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB}) |
11fdf7f2 TL |
536 | |
537 | if(NOT MINGW) | |
538 | set(ROCKSDBJNI_SHARED_LIB rocksdbjni-shared${ARTIFACT_SUFFIX}) | |
539 | add_library(${ROCKSDBJNI_SHARED_LIB} SHARED ${JNI_NATIVE_SOURCES}) | |
540 | add_dependencies(${ROCKSDBJNI_SHARED_LIB} rocksdbjni_headers) | |
f67539c2 | 541 | target_link_libraries(${ROCKSDBJNI_SHARED_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB}) |
11fdf7f2 TL |
542 | |
543 | set_target_properties( | |
544 | ${ROCKSDBJNI_SHARED_LIB} | |
545 | PROPERTIES | |
546 | COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_CFG_INTDIR} | |
547 | COMPILE_PDB_NAME ${ROCKSDBJNI_STATIC_LIB}.pdb | |
548 | ) | |
549 | endif() |