]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/java/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / rocksdb / java / CMakeLists.txt
CommitLineData
11fdf7f2 1cmake_minimum_required(VERSION 3.4)
7c673cae 2
f67539c2
TL
3if(${CMAKE_VERSION} VERSION_LESS "3.11.4")
4 message("Please consider switching to CMake 3.11.4 or newer")
5endif()
6
20effc67
TL
7set(CMAKE_JAVA_COMPILE_FLAGS -source 7)
8
7c673cae 9set(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 90set(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
280set(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
294include(FindJava)
295include(UseJava)
296find_package(JNI)
297
298include_directories(${JNI_INCLUDE_DIRS})
299include_directories(${PROJECT_SOURCE_DIR}/java)
300
301set(JAVA_TEST_LIBDIR ${PROJECT_SOURCE_DIR}/java/test-libs)
302set(JAVA_TMP_JAR ${JAVA_TEST_LIBDIR}/tmp.jar)
303set(JAVA_JUNIT_JAR ${JAVA_TEST_LIBDIR}/junit-4.12.jar)
304set(JAVA_HAMCR_JAR ${JAVA_TEST_LIBDIR}/hamcrest-core-1.3.jar)
305set(JAVA_MOCKITO_JAR ${JAVA_TEST_LIBDIR}/mockito-all-1.10.19.jar)
306set(JAVA_CGLIB_JAR ${JAVA_TEST_LIBDIR}/cglib-2.2.2.jar)
307set(JAVA_ASSERTJ_JAR ${JAVA_TEST_LIBDIR}/assertj-core-1.7.1.jar)
308set(JAVA_TESTCLASSPATH ${JAVA_JUNIT_JAR} ${JAVA_HAMCR_JAR} ${JAVA_MOCKITO_JAR} ${JAVA_CGLIB_JAR} ${JAVA_ASSERTJ_JAR})
309
310set(JNI_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/java/include)
311file(MAKE_DIRECTORY ${JNI_OUTPUT_DIR})
312
1e59de90
TL
313if(${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")
315endif()
316
f67539c2
TL
317if(${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
321elseif(${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
332else ()
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
344endif()
345
7c673cae
FG
346if(NOT EXISTS ${PROJECT_SOURCE_DIR}/java/classes)
347 file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/java/classes)
348endif()
349
350if(NOT EXISTS ${JAVA_TEST_LIBDIR})
351 file(MAKE_DIRECTORY mkdir ${JAVA_TEST_LIBDIR})
352endif()
353
f67539c2
TL
354if (DEFINED CUSTOM_DEPS_URL)
355 set(DEPS_URL ${CUSTOM_DEPS_URL}/)
7c673cae 356else ()
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
360endif()
361
362if(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})
371endif()
372if(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})
381endif()
382if(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})
391endif()
392if(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})
401endif()
402if(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})
411endif()
412
1e59de90
TL
413if(${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 )
526endif()
11fdf7f2
TL
527
528if(NOT MSVC)
529 set_property(TARGET ${ROCKSDB_STATIC_LIB} PROPERTY POSITION_INDEPENDENT_CODE ON)
7c673cae
FG
530endif()
531
11fdf7f2
TL
532set(ROCKSDBJNI_STATIC_LIB rocksdbjni${ARTIFACT_SUFFIX})
533add_library(${ROCKSDBJNI_STATIC_LIB} ${JNI_NATIVE_SOURCES})
534add_dependencies(${ROCKSDBJNI_STATIC_LIB} rocksdbjni_headers)
f67539c2 535target_link_libraries(${ROCKSDBJNI_STATIC_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB})
11fdf7f2
TL
536
537if(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 )
549endif()