CMakeLists.txt 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  1. cmake_minimum_required(VERSION 3.11)
  2. set(JAVA_JUNIT_VERSION "4.13.1")
  3. set(JAVA_HAMCR_VERSION "2.2")
  4. set(JAVA_MOCKITO_VERSION "1.10.19")
  5. set(JAVA_CGLIB_VERSION "3.3.0")
  6. set(JAVA_ASSERTJ_VERSION "2.9.0")
  7. if(${CMAKE_VERSION} VERSION_LESS "3.11.4")
  8. message("Please consider switching to CMake 3.11.4 or newer")
  9. endif()
  10. set(CMAKE_JAVA_COMPILE_FLAGS -source 8)
  11. set(JNI_NATIVE_SOURCES
  12. rocksjni/backup_engine_options.cc
  13. rocksjni/backupenginejni.cc
  14. rocksjni/cache.cc
  15. rocksjni/cassandra_compactionfilterjni.cc
  16. rocksjni/cassandra_value_operator.cc
  17. rocksjni/checkpoint.cc
  18. rocksjni/clock_cache.cc
  19. rocksjni/columnfamilyhandle.cc
  20. rocksjni/compact_range_options.cc
  21. rocksjni/compaction_filter.cc
  22. rocksjni/compaction_filter_factory.cc
  23. rocksjni/compaction_filter_factory_jnicallback.cc
  24. rocksjni/compaction_job_info.cc
  25. rocksjni/compaction_job_stats.cc
  26. rocksjni/compaction_options.cc
  27. rocksjni/compaction_options_fifo.cc
  28. rocksjni/compaction_options_universal.cc
  29. rocksjni/comparator.cc
  30. rocksjni/comparatorjnicallback.cc
  31. rocksjni/compression_options.cc
  32. rocksjni/concurrent_task_limiter.cc
  33. rocksjni/config_options.cc
  34. rocksjni/env.cc
  35. rocksjni/env_options.cc
  36. rocksjni/event_listener.cc
  37. rocksjni/event_listener_jnicallback.cc
  38. rocksjni/export_import_files_metadatajni.cc
  39. rocksjni/filter.cc
  40. rocksjni/hyper_clock_cache.cc
  41. rocksjni/import_column_family_options.cc
  42. rocksjni/ingest_external_file_options.cc
  43. rocksjni/iterator.cc
  44. rocksjni/jni_multiget_helpers.cc
  45. rocksjni/jni_perf_context.cc
  46. rocksjni/jnicallback.cc
  47. rocksjni/loggerjnicallback.cc
  48. rocksjni/lru_cache.cc
  49. rocksjni/memory_util.cc
  50. rocksjni/memtablejni.cc
  51. rocksjni/merge_operator.cc
  52. rocksjni/native_comparator_wrapper_test.cc
  53. rocksjni/optimistic_transaction_db.cc
  54. rocksjni/optimistic_transaction_options.cc
  55. rocksjni/options.cc
  56. rocksjni/options_util.cc
  57. rocksjni/persistent_cache.cc
  58. rocksjni/ratelimiterjni.cc
  59. rocksjni/remove_emptyvalue_compactionfilterjni.cc
  60. rocksjni/restorejni.cc
  61. rocksjni/rocks_callback_object.cc
  62. rocksjni/rocksdb_exception_test.cc
  63. rocksjni/rocksjni.cc
  64. rocksjni/slice.cc
  65. rocksjni/snapshot.cc
  66. rocksjni/sst_file_manager.cc
  67. rocksjni/sst_file_reader_iterator.cc
  68. rocksjni/sst_file_readerjni.cc
  69. rocksjni/sst_file_writerjni.cc
  70. rocksjni/sst_partitioner.cc
  71. rocksjni/statistics.cc
  72. rocksjni/statisticsjni.cc
  73. rocksjni/stderr_logger.cc
  74. rocksjni/table.cc
  75. rocksjni/table_filter.cc
  76. rocksjni/table_filter_jnicallback.cc
  77. rocksjni/table_properties_collector_factory.cc
  78. rocksjni/testable_event_listener.cc
  79. rocksjni/thread_status.cc
  80. rocksjni/trace_writer.cc
  81. rocksjni/trace_writer_jnicallback.cc
  82. rocksjni/transaction.cc
  83. rocksjni/transaction_db.cc
  84. rocksjni/transaction_db_options.cc
  85. rocksjni/transaction_log.cc
  86. rocksjni/transaction_notifier.cc
  87. rocksjni/transaction_notifier_jnicallback.cc
  88. rocksjni/transaction_options.cc
  89. rocksjni/ttl.cc
  90. rocksjni/wal_filter.cc
  91. rocksjni/wal_filter_jnicallback.cc
  92. rocksjni/write_batch.cc
  93. rocksjni/write_batch_test.cc
  94. rocksjni/write_batch_with_index.cc
  95. rocksjni/write_buffer_manager.cc
  96. rocksjni/writebatchhandlerjnicallback.cc
  97. )
  98. set(JAVA_MAIN_CLASSES
  99. src/main/java/org/rocksdb/AbstractCompactionFilter.java
  100. src/main/java/org/rocksdb/AbstractCompactionFilterFactory.java
  101. src/main/java/org/rocksdb/AbstractComparator.java
  102. src/main/java/org/rocksdb/AbstractComparatorJniBridge.java
  103. src/main/java/org/rocksdb/AbstractEventListener.java
  104. src/main/java/org/rocksdb/AbstractImmutableNativeReference.java
  105. src/main/java/org/rocksdb/AbstractMutableOptions.java
  106. src/main/java/org/rocksdb/AbstractNativeReference.java
  107. src/main/java/org/rocksdb/AbstractRocksIterator.java
  108. src/main/java/org/rocksdb/AbstractSlice.java
  109. src/main/java/org/rocksdb/AbstractTableFilter.java
  110. src/main/java/org/rocksdb/AbstractTraceWriter.java
  111. src/main/java/org/rocksdb/AbstractTransactionNotifier.java
  112. src/main/java/org/rocksdb/AbstractWalFilter.java
  113. src/main/java/org/rocksdb/AbstractWriteBatch.java
  114. src/main/java/org/rocksdb/AdvancedColumnFamilyOptionsInterface.java
  115. src/main/java/org/rocksdb/AdvancedMutableColumnFamilyOptionsInterface.java
  116. src/main/java/org/rocksdb/BackgroundErrorReason.java
  117. src/main/java/org/rocksdb/BackupEngine.java
  118. src/main/java/org/rocksdb/BackupEngineOptions.java
  119. src/main/java/org/rocksdb/BackupInfo.java
  120. src/main/java/org/rocksdb/BlockBasedTableConfig.java
  121. src/main/java/org/rocksdb/BloomFilter.java
  122. src/main/java/org/rocksdb/BuiltinComparator.java
  123. src/main/java/org/rocksdb/ByteBufferGetStatus.java
  124. src/main/java/org/rocksdb/Cache.java
  125. src/main/java/org/rocksdb/CassandraCompactionFilter.java
  126. src/main/java/org/rocksdb/CassandraValueMergeOperator.java
  127. src/main/java/org/rocksdb/Checkpoint.java
  128. src/main/java/org/rocksdb/ChecksumType.java
  129. src/main/java/org/rocksdb/ClockCache.java
  130. src/main/java/org/rocksdb/ColumnFamilyDescriptor.java
  131. src/main/java/org/rocksdb/ColumnFamilyHandle.java
  132. src/main/java/org/rocksdb/ColumnFamilyMetaData.java
  133. src/main/java/org/rocksdb/ColumnFamilyOptions.java
  134. src/main/java/org/rocksdb/ColumnFamilyOptionsInterface.java
  135. src/main/java/org/rocksdb/CompactRangeOptions.java
  136. src/main/java/org/rocksdb/CompactionJobInfo.java
  137. src/main/java/org/rocksdb/CompactionJobStats.java
  138. src/main/java/org/rocksdb/CompactionOptions.java
  139. src/main/java/org/rocksdb/CompactionOptionsFIFO.java
  140. src/main/java/org/rocksdb/CompactionOptionsUniversal.java
  141. src/main/java/org/rocksdb/CompactionPriority.java
  142. src/main/java/org/rocksdb/CompactionReason.java
  143. src/main/java/org/rocksdb/CompactionStopStyle.java
  144. src/main/java/org/rocksdb/CompactionStyle.java
  145. src/main/java/org/rocksdb/ComparatorOptions.java
  146. src/main/java/org/rocksdb/ComparatorType.java
  147. src/main/java/org/rocksdb/CompressionOptions.java
  148. src/main/java/org/rocksdb/CompressionType.java
  149. src/main/java/org/rocksdb/ConcurrentTaskLimiter.java
  150. src/main/java/org/rocksdb/ConcurrentTaskLimiterImpl.java
  151. src/main/java/org/rocksdb/ConfigOptions.java
  152. src/main/java/org/rocksdb/DBOptions.java
  153. src/main/java/org/rocksdb/DBOptionsInterface.java
  154. src/main/java/org/rocksdb/DataBlockIndexType.java
  155. src/main/java/org/rocksdb/DbPath.java
  156. src/main/java/org/rocksdb/DirectSlice.java
  157. src/main/java/org/rocksdb/EncodingType.java
  158. src/main/java/org/rocksdb/Env.java
  159. src/main/java/org/rocksdb/EnvOptions.java
  160. src/main/java/org/rocksdb/EventListener.java
  161. src/main/java/org/rocksdb/Experimental.java
  162. src/main/java/org/rocksdb/ExportImportFilesMetaData.java
  163. src/main/java/org/rocksdb/ExternalFileIngestionInfo.java
  164. src/main/java/org/rocksdb/FileOperationInfo.java
  165. src/main/java/org/rocksdb/Filter.java
  166. src/main/java/org/rocksdb/FilterPolicyType.java
  167. src/main/java/org/rocksdb/FlushJobInfo.java
  168. src/main/java/org/rocksdb/FlushOptions.java
  169. src/main/java/org/rocksdb/FlushReason.java
  170. src/main/java/org/rocksdb/GetStatus.java
  171. src/main/java/org/rocksdb/HashLinkedListMemTableConfig.java
  172. src/main/java/org/rocksdb/HashSkipListMemTableConfig.java
  173. src/main/java/org/rocksdb/HistogramData.java
  174. src/main/java/org/rocksdb/HistogramType.java
  175. src/main/java/org/rocksdb/Holder.java
  176. src/main/java/org/rocksdb/HyperClockCache.java
  177. src/main/java/org/rocksdb/ImportColumnFamilyOptions.java
  178. src/main/java/org/rocksdb/IndexShorteningMode.java
  179. src/main/java/org/rocksdb/IndexType.java
  180. src/main/java/org/rocksdb/InfoLogLevel.java
  181. src/main/java/org/rocksdb/IngestExternalFileOptions.java
  182. src/main/java/org/rocksdb/KeyMayExist.java
  183. src/main/java/org/rocksdb/LRUCache.java
  184. src/main/java/org/rocksdb/LevelMetaData.java
  185. src/main/java/org/rocksdb/LiveFileMetaData.java
  186. src/main/java/org/rocksdb/LogFile.java
  187. src/main/java/org/rocksdb/Logger.java
  188. src/main/java/org/rocksdb/LoggerInterface.java
  189. src/main/java/org/rocksdb/LoggerType.java
  190. src/main/java/org/rocksdb/MemTableConfig.java
  191. src/main/java/org/rocksdb/MemTableInfo.java
  192. src/main/java/org/rocksdb/MemoryUsageType.java
  193. src/main/java/org/rocksdb/MemoryUtil.java
  194. src/main/java/org/rocksdb/MergeOperator.java
  195. src/main/java/org/rocksdb/MutableColumnFamilyOptions.java
  196. src/main/java/org/rocksdb/MutableColumnFamilyOptionsInterface.java
  197. src/main/java/org/rocksdb/MutableDBOptions.java
  198. src/main/java/org/rocksdb/MutableDBOptionsInterface.java
  199. src/main/java/org/rocksdb/MutableOptionKey.java
  200. src/main/java/org/rocksdb/MutableOptionValue.java
  201. src/main/java/org/rocksdb/NativeComparatorWrapper.java
  202. src/main/java/org/rocksdb/NativeLibraryLoader.java
  203. src/main/java/org/rocksdb/OperationStage.java
  204. src/main/java/org/rocksdb/OperationType.java
  205. src/main/java/org/rocksdb/OptimisticTransactionDB.java
  206. src/main/java/org/rocksdb/OptimisticTransactionOptions.java
  207. src/main/java/org/rocksdb/OptionString.java
  208. src/main/java/org/rocksdb/Options.java
  209. src/main/java/org/rocksdb/OptionsUtil.java
  210. src/main/java/org/rocksdb/PerfContext.java
  211. src/main/java/org/rocksdb/PerfLevel.java
  212. src/main/java/org/rocksdb/PersistentCache.java
  213. src/main/java/org/rocksdb/PlainTableConfig.java
  214. src/main/java/org/rocksdb/PrepopulateBlobCache.java
  215. src/main/java/org/rocksdb/Priority.java
  216. src/main/java/org/rocksdb/Range.java
  217. src/main/java/org/rocksdb/RateLimiter.java
  218. src/main/java/org/rocksdb/RateLimiterMode.java
  219. src/main/java/org/rocksdb/ReadOptions.java
  220. src/main/java/org/rocksdb/ReadTier.java
  221. src/main/java/org/rocksdb/RemoveEmptyValueCompactionFilter.java
  222. src/main/java/org/rocksdb/RestoreOptions.java
  223. src/main/java/org/rocksdb/ReusedSynchronisationType.java
  224. src/main/java/org/rocksdb/RocksCallbackObject.java
  225. src/main/java/org/rocksdb/RocksDB.java
  226. src/main/java/org/rocksdb/RocksDBException.java
  227. src/main/java/org/rocksdb/RocksEnv.java
  228. src/main/java/org/rocksdb/RocksIterator.java
  229. src/main/java/org/rocksdb/RocksIteratorInterface.java
  230. src/main/java/org/rocksdb/RocksMemEnv.java
  231. src/main/java/org/rocksdb/RocksMutableObject.java
  232. src/main/java/org/rocksdb/RocksObject.java
  233. src/main/java/org/rocksdb/SanityLevel.java
  234. src/main/java/org/rocksdb/SizeApproximationFlag.java
  235. src/main/java/org/rocksdb/SkipListMemTableConfig.java
  236. src/main/java/org/rocksdb/Slice.java
  237. src/main/java/org/rocksdb/Snapshot.java
  238. src/main/java/org/rocksdb/SstFileManager.java
  239. src/main/java/org/rocksdb/SstFileMetaData.java
  240. src/main/java/org/rocksdb/SstFileReader.java
  241. src/main/java/org/rocksdb/SstFileReaderIterator.java
  242. src/main/java/org/rocksdb/SstFileWriter.java
  243. src/main/java/org/rocksdb/SstPartitionerFactory.java
  244. src/main/java/org/rocksdb/SstPartitionerFixedPrefixFactory.java
  245. src/main/java/org/rocksdb/StateType.java
  246. src/main/java/org/rocksdb/Statistics.java
  247. src/main/java/org/rocksdb/StatisticsCollector.java
  248. src/main/java/org/rocksdb/StatisticsCollectorCallback.java
  249. src/main/java/org/rocksdb/StatsCollectorInput.java
  250. src/main/java/org/rocksdb/StatsLevel.java
  251. src/main/java/org/rocksdb/Status.java
  252. src/main/java/org/rocksdb/StringAppendOperator.java
  253. src/main/java/org/rocksdb/TableFileCreationBriefInfo.java
  254. src/main/java/org/rocksdb/TableFileCreationInfo.java
  255. src/main/java/org/rocksdb/TableFileCreationReason.java
  256. src/main/java/org/rocksdb/TableFileDeletionInfo.java
  257. src/main/java/org/rocksdb/TableFilter.java
  258. src/main/java/org/rocksdb/TableFormatConfig.java
  259. src/main/java/org/rocksdb/TableProperties.java
  260. src/main/java/org/rocksdb/TablePropertiesCollectorFactory.java
  261. src/main/java/org/rocksdb/ThreadStatus.java
  262. src/main/java/org/rocksdb/ThreadType.java
  263. src/main/java/org/rocksdb/TickerType.java
  264. src/main/java/org/rocksdb/TimedEnv.java
  265. src/main/java/org/rocksdb/TraceOptions.java
  266. src/main/java/org/rocksdb/TraceWriter.java
  267. src/main/java/org/rocksdb/Transaction.java
  268. src/main/java/org/rocksdb/TransactionDB.java
  269. src/main/java/org/rocksdb/TransactionDBOptions.java
  270. src/main/java/org/rocksdb/TransactionLogIterator.java
  271. src/main/java/org/rocksdb/TransactionOptions.java
  272. src/main/java/org/rocksdb/TransactionalDB.java
  273. src/main/java/org/rocksdb/TransactionalOptions.java
  274. src/main/java/org/rocksdb/TtlDB.java
  275. src/main/java/org/rocksdb/TxnDBWritePolicy.java
  276. src/main/java/org/rocksdb/UInt64AddOperator.java
  277. src/main/java/org/rocksdb/VectorMemTableConfig.java
  278. src/main/java/org/rocksdb/WALRecoveryMode.java
  279. src/main/java/org/rocksdb/WBWIRocksIterator.java
  280. src/main/java/org/rocksdb/WalFileType.java
  281. src/main/java/org/rocksdb/WalFilter.java
  282. src/main/java/org/rocksdb/WalProcessingOption.java
  283. src/main/java/org/rocksdb/WriteBatch.java
  284. src/main/java/org/rocksdb/WriteBatchInterface.java
  285. src/main/java/org/rocksdb/WriteBatchWithIndex.java
  286. src/main/java/org/rocksdb/WriteBufferManager.java
  287. src/main/java/org/rocksdb/WriteOptions.java
  288. src/main/java/org/rocksdb/WriteStallCondition.java
  289. src/main/java/org/rocksdb/WriteStallInfo.java
  290. src/main/java/org/rocksdb/util/BufferUtil.java
  291. src/main/java/org/rocksdb/util/ByteUtil.java
  292. src/main/java/org/rocksdb/util/BytewiseComparator.java
  293. src/main/java/org/rocksdb/util/Environment.java
  294. src/main/java/org/rocksdb/util/IntComparator.java
  295. src/main/java/org/rocksdb/util/ReverseBytewiseComparator.java
  296. src/main/java/org/rocksdb/util/SizeUnit.java
  297. src/main/java/org/rocksdb/util/StdErrLogger.java
  298. src/test/java/org/rocksdb/NativeComparatorWrapperTest.java
  299. src/test/java/org/rocksdb/RocksDBExceptionTest.java
  300. src/test/java/org/rocksdb/RocksNativeLibraryResource.java
  301. src/test/java/org/rocksdb/WriteBatchTest.java
  302. src/test/java/org/rocksdb/test/TestableEventListener.java
  303. src/test/java/org/rocksdb/util/CapturingWriteBatchHandler.java
  304. src/test/java/org/rocksdb/util/WriteBatchGetter.java
  305. )
  306. set(JAVA_TEST_CLASSES
  307. src/test/java/org/rocksdb/AbstractTransactionTest.java
  308. src/test/java/org/rocksdb/BackupEngineOptionsTest.java
  309. src/test/java/org/rocksdb/BackupEngineTest.java
  310. src/test/java/org/rocksdb/BlobOptionsTest.java
  311. src/test/java/org/rocksdb/BlockBasedTableConfigTest.java
  312. src/test/java/org/rocksdb/BuiltinComparatorTest.java
  313. src/test/java/org/rocksdb/ByteBufferUnsupportedOperationTest.java
  314. src/test/java/org/rocksdb/BytewiseComparatorRegressionTest.java
  315. src/test/java/org/rocksdb/CheckPointTest.java
  316. src/test/java/org/rocksdb/ClockCacheTest.java
  317. src/test/java/org/rocksdb/ColumnFamilyOptionsTest.java
  318. src/test/java/org/rocksdb/ColumnFamilyTest.java
  319. src/test/java/org/rocksdb/CompactRangeOptionsTest.java
  320. src/test/java/org/rocksdb/CompactionFilterFactoryTest.java
  321. src/test/java/org/rocksdb/CompactionJobInfoTest.java
  322. src/test/java/org/rocksdb/CompactionJobStatsTest.java
  323. src/test/java/org/rocksdb/CompactionOptionsFIFOTest.java
  324. src/test/java/org/rocksdb/CompactionOptionsTest.java
  325. src/test/java/org/rocksdb/CompactionOptionsUniversalTest.java
  326. src/test/java/org/rocksdb/CompactionPriorityTest.java
  327. src/test/java/org/rocksdb/CompactionStopStyleTest.java
  328. src/test/java/org/rocksdb/ComparatorOptionsTest.java
  329. src/test/java/org/rocksdb/CompressionOptionsTest.java
  330. src/test/java/org/rocksdb/CompressionTypesTest.java
  331. src/test/java/org/rocksdb/ConcurrentTaskLimiterTest.java
  332. src/test/java/org/rocksdb/DBOptionsTest.java
  333. src/test/java/org/rocksdb/DefaultEnvTest.java
  334. src/test/java/org/rocksdb/DirectSliceTest.java
  335. src/test/java/org/rocksdb/EnvOptionsTest.java
  336. src/test/java/org/rocksdb/EventListenerTest.java
  337. src/test/java/org/rocksdb/FilterTest.java
  338. src/test/java/org/rocksdb/FlushOptionsTest.java
  339. src/test/java/org/rocksdb/FlushTest.java
  340. src/test/java/org/rocksdb/HyperClockCacheTest.java
  341. src/test/java/org/rocksdb/ImportColumnFamilyTest.java
  342. src/test/java/org/rocksdb/InfoLogLevelTest.java
  343. src/test/java/org/rocksdb/IngestExternalFileOptionsTest.java
  344. src/test/java/org/rocksdb/KeyExistsTest.java
  345. src/test/java/org/rocksdb/KeyMayExistTest.java
  346. src/test/java/org/rocksdb/LRUCacheTest.java
  347. src/test/java/org/rocksdb/LoggerTest.java
  348. src/test/java/org/rocksdb/MemTableTest.java
  349. src/test/java/org/rocksdb/MemoryUtilTest.java
  350. src/test/java/org/rocksdb/MergeCFVariantsTest.java
  351. src/test/java/org/rocksdb/MergeTest.java
  352. src/test/java/org/rocksdb/MergeVariantsTest.java
  353. src/test/java/org/rocksdb/MixedOptionsTest.java
  354. src/test/java/org/rocksdb/MultiColumnRegressionTest.java
  355. src/test/java/org/rocksdb/MultiGetManyKeysTest.java
  356. src/test/java/org/rocksdb/MultiGetTest.java
  357. src/test/java/org/rocksdb/MutableColumnFamilyOptionsTest.java
  358. src/test/java/org/rocksdb/MutableDBOptionsTest.java
  359. src/test/java/org/rocksdb/MutableOptionsGetSetTest.java
  360. src/test/java/org/rocksdb/NativeLibraryLoaderTest.java
  361. src/test/java/org/rocksdb/OptimisticTransactionDBTest.java
  362. src/test/java/org/rocksdb/OptimisticTransactionOptionsTest.java
  363. src/test/java/org/rocksdb/OptimisticTransactionTest.java
  364. src/test/java/org/rocksdb/OptionsTest.java
  365. src/test/java/org/rocksdb/OptionsUtilTest.java
  366. src/test/java/org/rocksdb/PerfContextTest.java
  367. src/test/java/org/rocksdb/PerfLevelTest.java
  368. src/test/java/org/rocksdb/PlainTableConfigTest.java
  369. src/test/java/org/rocksdb/PlatformRandomHelper.java
  370. src/test/java/org/rocksdb/PutCFVariantsTest.java
  371. src/test/java/org/rocksdb/PutMultiplePartsTest.java
  372. src/test/java/org/rocksdb/PutVariantsTest.java
  373. src/test/java/org/rocksdb/RateLimiterTest.java
  374. src/test/java/org/rocksdb/ReadOnlyTest.java
  375. src/test/java/org/rocksdb/ReadOptionsTest.java
  376. src/test/java/org/rocksdb/RocksDBTest.java
  377. src/test/java/org/rocksdb/RocksIteratorTest.java
  378. src/test/java/org/rocksdb/RocksMemEnvTest.java
  379. src/test/java/org/rocksdb/SecondaryDBTest.java
  380. src/test/java/org/rocksdb/SliceTest.java
  381. src/test/java/org/rocksdb/SnapshotTest.java
  382. src/test/java/org/rocksdb/SstFileManagerTest.java
  383. src/test/java/org/rocksdb/SstFileReaderTest.java
  384. src/test/java/org/rocksdb/SstFileWriterTest.java
  385. src/test/java/org/rocksdb/SstPartitionerTest.java
  386. src/test/java/org/rocksdb/StatisticsCollectorTest.java
  387. src/test/java/org/rocksdb/StatisticsTest.java
  388. src/test/java/org/rocksdb/StatsCallbackMock.java
  389. src/test/java/org/rocksdb/TableFilterTest.java
  390. src/test/java/org/rocksdb/TimedEnvTest.java
  391. src/test/java/org/rocksdb/TransactionDBOptionsTest.java
  392. src/test/java/org/rocksdb/TransactionDBTest.java
  393. src/test/java/org/rocksdb/TransactionLogIteratorTest.java
  394. src/test/java/org/rocksdb/TransactionOptionsTest.java
  395. src/test/java/org/rocksdb/TransactionTest.java
  396. src/test/java/org/rocksdb/TtlDBTest.java
  397. src/test/java/org/rocksdb/Types.java
  398. src/test/java/org/rocksdb/VerifyChecksumsTest.java
  399. src/test/java/org/rocksdb/WALRecoveryModeTest.java
  400. src/test/java/org/rocksdb/WalFilterTest.java
  401. src/test/java/org/rocksdb/WriteBatchHandlerTest.java
  402. src/test/java/org/rocksdb/WriteBatchThreadedTest.java
  403. src/test/java/org/rocksdb/WriteBatchWithIndexTest.java
  404. src/test/java/org/rocksdb/WriteOptionsTest.java
  405. src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java
  406. src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java
  407. src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java
  408. src/test/java/org/rocksdb/test/RocksJunitRunner.java
  409. src/test/java/org/rocksdb/test/TestableEventListener.java
  410. src/test/java/org/rocksdb/test/TestableEventListener.java
  411. src/test/java/org/rocksdb/util/ByteBufferAllocator.java
  412. src/test/java/org/rocksdb/util/BytewiseComparatorIntTest.java
  413. src/test/java/org/rocksdb/util/BytewiseComparatorTest.java
  414. src/test/java/org/rocksdb/util/DirectByteBufferAllocator.java
  415. src/test/java/org/rocksdb/util/EnvironmentTest.java
  416. src/test/java/org/rocksdb/util/HeapByteBufferAllocator.java
  417. src/test/java/org/rocksdb/util/IntComparatorTest.java
  418. src/test/java/org/rocksdb/util/JNIComparatorTest.java
  419. src/test/java/org/rocksdb/util/ReverseBytewiseComparatorIntTest.java
  420. src/test/java/org/rocksdb/util/SizeUnitTest.java
  421. src/test/java/org/rocksdb/util/StdErrLoggerTest.java
  422. src/test/java/org/rocksdb/util/TestUtil.java
  423. )
  424. set(JAVA_TEST_RUNNING_CLASSES
  425. org.rocksdb.BackupEngineOptionsTest
  426. org.rocksdb.BackupEngineTest
  427. org.rocksdb.BlobOptionsTest
  428. org.rocksdb.BlockBasedTableConfigTest
  429. org.rocksdb.BuiltinComparatorTest
  430. org.rocksdb.ByteBufferUnsupportedOperationTest
  431. org.rocksdb.BytewiseComparatorRegressionTest
  432. org.rocksdb.CheckPointTest
  433. org.rocksdb.ClockCacheTest
  434. org.rocksdb.ColumnFamilyOptionsTest
  435. org.rocksdb.ColumnFamilyTest
  436. org.rocksdb.CompactRangeOptionsTest
  437. org.rocksdb.CompactionFilterFactoryTest
  438. org.rocksdb.CompactionJobInfoTest
  439. org.rocksdb.CompactionJobStatsTest
  440. org.rocksdb.CompactionOptionsFIFOTest
  441. org.rocksdb.CompactionOptionsTest
  442. org.rocksdb.CompactionOptionsUniversalTest
  443. org.rocksdb.CompactionPriorityTest
  444. org.rocksdb.CompactionStopStyleTest
  445. org.rocksdb.ComparatorOptionsTest
  446. org.rocksdb.CompressionOptionsTest
  447. org.rocksdb.CompressionTypesTest
  448. org.rocksdb.ConcurrentTaskLimiterTest
  449. org.rocksdb.DBOptionsTest
  450. org.rocksdb.DefaultEnvTest
  451. org.rocksdb.DirectSliceTest
  452. org.rocksdb.EnvOptionsTest
  453. org.rocksdb.EventListenerTest
  454. org.rocksdb.FilterTest
  455. org.rocksdb.FlushOptionsTest
  456. org.rocksdb.FlushTest
  457. org.rocksdb.HyperClockCacheTest
  458. org.rocksdb.ImportColumnFamilyTest
  459. org.rocksdb.InfoLogLevelTest
  460. org.rocksdb.IngestExternalFileOptionsTest
  461. org.rocksdb.KeyExistsTest
  462. org.rocksdb.KeyMayExistTest
  463. org.rocksdb.LRUCacheTest
  464. org.rocksdb.LoggerTest
  465. org.rocksdb.MemTableTest
  466. org.rocksdb.MemoryUtilTest
  467. org.rocksdb.MergeCFVariantsTest
  468. org.rocksdb.MergeTest
  469. org.rocksdb.MergeVariantsTest
  470. org.rocksdb.MixedOptionsTest
  471. org.rocksdb.MultiColumnRegressionTest
  472. org.rocksdb.MultiGetManyKeysTest
  473. org.rocksdb.MultiGetTest
  474. org.rocksdb.MutableColumnFamilyOptionsTest
  475. org.rocksdb.MutableDBOptionsTest
  476. org.rocksdb.MutableOptionsGetSetTest
  477. org.rocksdb.NativeComparatorWrapperTest
  478. org.rocksdb.NativeLibraryLoaderTest
  479. org.rocksdb.OptimisticTransactionDBTest
  480. org.rocksdb.OptimisticTransactionOptionsTest
  481. org.rocksdb.OptimisticTransactionTest
  482. org.rocksdb.OptionsTest
  483. org.rocksdb.OptionsUtilTest
  484. org.rocksdb.PerfContextTest
  485. org.rocksdb.PerfLevelTest
  486. org.rocksdb.PlainTableConfigTest
  487. org.rocksdb.PutCFVariantsTest
  488. org.rocksdb.PutMultiplePartsTest
  489. org.rocksdb.PutVariantsTest
  490. org.rocksdb.RateLimiterTest
  491. org.rocksdb.ReadOnlyTest
  492. org.rocksdb.ReadOptionsTest
  493. org.rocksdb.RocksDBExceptionTest
  494. org.rocksdb.RocksDBTest
  495. org.rocksdb.RocksIteratorTest
  496. org.rocksdb.RocksMemEnvTest
  497. org.rocksdb.SecondaryDBTest
  498. org.rocksdb.SliceTest
  499. org.rocksdb.SnapshotTest
  500. org.rocksdb.SstFileManagerTest
  501. org.rocksdb.SstFileReaderTest
  502. org.rocksdb.SstFileWriterTest
  503. org.rocksdb.SstPartitionerTest
  504. org.rocksdb.StatisticsCollectorTest
  505. org.rocksdb.StatisticsTest
  506. org.rocksdb.TableFilterTest
  507. org.rocksdb.TimedEnvTest
  508. org.rocksdb.TransactionDBOptionsTest
  509. org.rocksdb.TransactionDBTest
  510. org.rocksdb.TransactionLogIteratorTest
  511. org.rocksdb.TransactionOptionsTest
  512. org.rocksdb.TransactionTest
  513. org.rocksdb.TtlDBTest
  514. org.rocksdb.VerifyChecksumsTest
  515. org.rocksdb.WALRecoveryModeTest
  516. org.rocksdb.WalFilterTest
  517. org.rocksdb.WriteBatchHandlerTest
  518. org.rocksdb.WriteBatchTest
  519. org.rocksdb.WriteBatchThreadedTest
  520. org.rocksdb.WriteBatchWithIndexTest
  521. org.rocksdb.WriteOptionsTest
  522. org.rocksdb.util.BytewiseComparatorIntTest
  523. org.rocksdb.util.BytewiseComparatorTest
  524. org.rocksdb.util.EnvironmentTest
  525. org.rocksdb.util.IntComparatorTest
  526. org.rocksdb.util.JNIComparatorTest
  527. org.rocksdb.util.ReverseBytewiseComparatorIntTest
  528. org.rocksdb.util.SizeUnitTest
  529. org.rocksdb.util.StdErrLoggerTest
  530. )
  531. include(FindJava)
  532. include(UseJava)
  533. find_package(JNI)
  534. include_directories(${JNI_INCLUDE_DIRS})
  535. include_directories(${PROJECT_SOURCE_DIR}/java)
  536. set(JAVA_TEST_LIBDIR ${PROJECT_SOURCE_DIR}/java/test-libs)
  537. set(JAVA_TMP_JAR ${JAVA_TEST_LIBDIR}/tmp.jar)
  538. set(JAVA_JUNIT_JAR ${JAVA_TEST_LIBDIR}/junit-${JAVA_JUNIT_VERSION}.jar)
  539. set(JAVA_HAMCR_JAR ${JAVA_TEST_LIBDIR}/hamcrest-${JAVA_HAMCR_VERSION}.jar)
  540. set(JAVA_MOCKITO_JAR ${JAVA_TEST_LIBDIR}/mockito-all-${JAVA_MOCKITO_VERSION}.jar)
  541. set(JAVA_CGLIB_JAR ${JAVA_TEST_LIBDIR}/cglib-${JAVA_CGLIB_VERSION}.jar)
  542. set(JAVA_ASSERTJ_JAR ${JAVA_TEST_LIBDIR}/assertj-core-${JAVA_ASSERTJ_VERSION}.jar)
  543. set(JAVA_TESTCLASSPATH ${JAVA_JUNIT_JAR} ${JAVA_HAMCR_JAR} ${JAVA_MOCKITO_JAR} ${JAVA_CGLIB_JAR} ${JAVA_ASSERTJ_JAR})
  544. message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
  545. message("MINGW: ${MINGW}")
  546. if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  547. set(JAVA_RUN_TESTCLASSPATH ${JAVA_JUNIT_JAR}$<SEMICOLON>${JAVA_HAMCR_JAR}$<SEMICOLON>${JAVA_MOCKITO_JAR}$<SEMICOLON>${JAVA_CGLIB_JAR}$<SEMICOLON>${JAVA_ASSERTJ_JAR})
  548. else()
  549. set(JAVA_RUN_TESTCLASSPATH ${JAVA_JUNIT_JAR}:${JAVA_HAMCR_JAR}:${JAVA_MOCKITO_JAR}:${JAVA_CGLIB_JAR}:${JAVA_ASSERTJ_JAR})
  550. endif()
  551. set(JNI_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/java/include)
  552. file(MAKE_DIRECTORY ${JNI_OUTPUT_DIR})
  553. if(${Java_VERSION_MINOR} VERSION_LESS_EQUAL "7" AND ${Java_VERSION_MAJOR} STREQUAL "1")
  554. message(FATAL_ERROR "Detected Java 7 or older (${Java_VERSION_STRING}), minimum required version in now Java 8")
  555. endif()
  556. if(${Java_VERSION_MAJOR} VERSION_GREATER_EQUAL "10" AND ${CMAKE_VERSION} VERSION_LESS "3.11.4")
  557. # Java 10 and newer don't have javah, but the alternative GENERATE_NATIVE_HEADERS requires CMake 3.11.4 or newer
  558. message(FATAL_ERROR "Detected Java 10 or newer (${Java_VERSION_STRING}), to build with CMake please upgrade CMake to 3.11.4 or newer")
  559. elseif(${CMAKE_VERSION} VERSION_LESS "3.11.4")
  560. # Old CMake
  561. message("Using an old CMAKE (${CMAKE_VERSION}) - JNI headers generated in separate step")
  562. add_jar(
  563. rocksdbjni_classes
  564. SOURCES ${JAVA_MAIN_CLASSES}
  565. )
  566. else ()
  567. # Java 1.8 or newer prepare the JAR...
  568. message("Preparing Jar for JDK ${Java_VERSION_STRING}")
  569. message("JAVA_TESTCLASSPATH=${JAVA_TESTCLASSPATH}")
  570. add_jar(
  571. rocksdbjni_classes
  572. SOURCES ${JAVA_MAIN_CLASSES}
  573. INCLUDE_JARS ${ROCKSDBJNI_CLASSES_JAR_FILE} ${JAVA_TESTCLASSPATH}
  574. GENERATE_NATIVE_HEADERS rocksdbjni_headers DESTINATION ${JNI_OUTPUT_DIR}
  575. )
  576. endif()
  577. add_jar(
  578. rocksdbjni_test_classes
  579. SOURCES
  580. ${JAVA_MAIN_CLASSES}
  581. ${JAVA_TEST_CLASSES}
  582. INCLUDE_JARS ${JAVA_TESTCLASSPATH}
  583. GENERATE_NATIVE_HEADERS rocksdbjni_test_headers DESTINATION ${JNI_OUTPUT_DIR}
  584. )
  585. if(NOT EXISTS ${PROJECT_SOURCE_DIR}/java/classes)
  586. file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/java/classes)
  587. endif()
  588. if(NOT EXISTS ${JAVA_TEST_LIBDIR})
  589. file(MAKE_DIRECTORY mkdir ${JAVA_TEST_LIBDIR})
  590. endif()
  591. if (DEFINED CUSTOM_DEPS_URL)
  592. set(DEPS_URL ${CUSTOM_DEPS_URL}/)
  593. else ()
  594. # Using a Facebook AWS account for S3 storage. (maven.org has a history
  595. # of failing in Travis builds.)
  596. set(DEPS_URL "https://rocksdb-deps.s3-us-west-2.amazonaws.com/jars")
  597. endif()
  598. if(NOT EXISTS ${JAVA_JUNIT_JAR})
  599. message("Downloading ${JAVA_JUNIT_JAR}")
  600. file(DOWNLOAD ${DEPS_URL}/junit-${JAVA_JUNIT_VERSION}.jar ${JAVA_TMP_JAR} STATUS downloadStatus)
  601. list(GET downloadStatus 0 error_code)
  602. list(GET downloadStatus 1 error_message)
  603. if(NOT error_code EQUAL 0)
  604. message(FATAL_ERROR "Failed downloading ${JAVA_JUNIT_JAR}: ${error_message}")
  605. endif()
  606. file(RENAME ${JAVA_TMP_JAR} ${JAVA_JUNIT_JAR})
  607. endif()
  608. if(NOT EXISTS ${JAVA_HAMCR_JAR})
  609. message("Downloading ${JAVA_HAMCR_JAR}")
  610. file(DOWNLOAD ${DEPS_URL}/hamcrest-${JAVA_HAMCR_VERSION}.jar ${JAVA_TMP_JAR} STATUS downloadStatus)
  611. list(GET downloadStatus 0 error_code)
  612. list(GET downloadStatus 1 error_message)
  613. if(NOT error_code EQUAL 0)
  614. message(FATAL_ERROR "Failed downloading ${JAVA_HAMCR_JAR}: ${error_message}")
  615. endif()
  616. file(RENAME ${JAVA_TMP_JAR} ${JAVA_HAMCR_JAR})
  617. endif()
  618. if(NOT EXISTS ${JAVA_MOCKITO_JAR})
  619. message("Downloading ${JAVA_MOCKITO_JAR}")
  620. file(DOWNLOAD ${DEPS_URL}/mockito-all-${JAVA_MOCKITO_VERSION}.jar ${JAVA_TMP_JAR} STATUS downloadStatus)
  621. list(GET downloadStatus 0 error_code)
  622. list(GET downloadStatus 1 error_message)
  623. if(NOT error_code EQUAL 0)
  624. message(FATAL_ERROR "Failed downloading ${JAVA_MOCKITO_JAR}: ${error_message}")
  625. endif()
  626. file(RENAME ${JAVA_TMP_JAR} ${JAVA_MOCKITO_JAR})
  627. endif()
  628. if(NOT EXISTS ${JAVA_CGLIB_JAR})
  629. message("Downloading ${JAVA_CGLIB_JAR}")
  630. file(DOWNLOAD ${DEPS_URL}/cglib-${JAVA_CGLIB_VERSION}.jar ${JAVA_TMP_JAR} STATUS downloadStatus)
  631. list(GET downloadStatus 0 error_code)
  632. list(GET downloadStatus 1 error_message)
  633. if(NOT error_code EQUAL 0)
  634. message(FATAL_ERROR "Failed downloading ${JAVA_CGLIB_JAR}: ${error_message}")
  635. endif()
  636. file(RENAME ${JAVA_TMP_JAR} ${JAVA_CGLIB_JAR})
  637. endif()
  638. if(NOT EXISTS ${JAVA_ASSERTJ_JAR})
  639. message("Downloading ${JAVA_ASSERTJ_JAR}")
  640. file(DOWNLOAD ${DEPS_URL}/assertj-core-${JAVA_ASSERTJ_VERSION}.jar ${JAVA_TMP_JAR} STATUS downloadStatus)
  641. list(GET downloadStatus 0 error_code)
  642. list(GET downloadStatus 1 error_message)
  643. if(NOT error_code EQUAL 0)
  644. message(FATAL_ERROR "Failed downloading ${JAVA_ASSERTJ_JAR}: ${error_message}")
  645. endif()
  646. file(RENAME ${JAVA_TMP_JAR} ${JAVA_ASSERTJ_JAR})
  647. endif()
  648. if(${CMAKE_VERSION} VERSION_LESS "3.11.4")
  649. # Old CMake ONLY generate JNI headers, otherwise JNI is handled in add_jar step above
  650. message("Preparing JNI headers for old CMake (${CMAKE_VERSION})")
  651. set(NATIVE_JAVA_CLASSES
  652. org.rocksdb.AbstractCompactionFilter
  653. org.rocksdb.AbstractCompactionFilterFactory
  654. org.rocksdb.AbstractComparator
  655. org.rocksdb.AbstractEventListener
  656. org.rocksdb.AbstractImmutableNativeReference
  657. org.rocksdb.AbstractNativeReference
  658. org.rocksdb.AbstractRocksIterator
  659. org.rocksdb.AbstractSlice
  660. org.rocksdb.AbstractTableFilter
  661. org.rocksdb.AbstractTraceWriter
  662. org.rocksdb.AbstractTransactionNotifier
  663. org.rocksdb.AbstractWalFilter
  664. org.rocksdb.BackupEngineOptions
  665. org.rocksdb.BackupEngine
  666. org.rocksdb.BlockBasedTableConfig
  667. org.rocksdb.BloomFilter
  668. org.rocksdb.CassandraCompactionFilter
  669. org.rocksdb.CassandraValueMergeOperator
  670. org.rocksdb.Checkpoint
  671. org.rocksdb.ClockCache
  672. org.rocksdb.Cache
  673. org.rocksdb.ColumnFamilyHandle
  674. org.rocksdb.ColumnFamilyOptions
  675. org.rocksdb.CompactionJobInfo
  676. org.rocksdb.CompactionJobStats
  677. org.rocksdb.CompactionOptions
  678. org.rocksdb.CompactionOptionsFIFO
  679. org.rocksdb.CompactionOptionsUniversal
  680. org.rocksdb.CompactRangeOptions
  681. org.rocksdb.ComparatorOptions
  682. org.rocksdb.CompressionOptions
  683. org.rocksdb.ConcurrentTaskLimiterImpl
  684. org.rocksdb.ConfigOptions
  685. org.rocksdb.DBOptions
  686. org.rocksdb.DirectSlice
  687. org.rocksdb.Env
  688. org.rocksdb.EnvOptions
  689. org.rocksdb.Filter
  690. org.rocksdb.FlushOptions
  691. org.rocksdb.HashLinkedListMemTableConfig
  692. org.rocksdb.HashSkipListMemTableConfig
  693. org.rocksdb.HyperClockCache
  694. org.rocksdb.IngestExternalFileOptions
  695. org.rocksdb.Logger
  696. org.rocksdb.LRUCache
  697. org.rocksdb.MemoryUtil
  698. org.rocksdb.MemTableConfig
  699. org.rocksdb.NativeComparatorWrapper
  700. org.rocksdb.NativeLibraryLoader
  701. org.rocksdb.OptimisticTransactionDB
  702. org.rocksdb.OptimisticTransactionOptions
  703. org.rocksdb.Options
  704. org.rocksdb.OptionsUtil
  705. org.rocksdb.PersistentCache
  706. org.rocksdb.PlainTableConfig
  707. org.rocksdb.RateLimiter
  708. org.rocksdb.ReadOptions
  709. org.rocksdb.RemoveEmptyValueCompactionFilter
  710. org.rocksdb.RestoreOptions
  711. org.rocksdb.RocksCallbackObject
  712. org.rocksdb.RocksDB
  713. org.rocksdb.RocksEnv
  714. org.rocksdb.RocksIterator
  715. org.rocksdb.RocksIteratorInterface
  716. org.rocksdb.RocksMemEnv
  717. org.rocksdb.RocksMutableObject
  718. org.rocksdb.RocksObject
  719. org.rocksdb.SkipListMemTableConfig
  720. org.rocksdb.Slice
  721. org.rocksdb.Snapshot
  722. org.rocksdb.SstFileManager
  723. org.rocksdb.SstFileWriter
  724. org.rocksdb.SstFileReader
  725. org.rocksdb.SstFileReaderIterator
  726. org.rocksdb.SstPartitionerFactory
  727. org.rocksdb.SstPartitionerFixedPrefixFactory
  728. org.rocksdb.Statistics
  729. org.rocksdb.StringAppendOperator
  730. org.rocksdb.TableFormatConfig
  731. org.rocksdb.ThreadStatus
  732. org.rocksdb.TimedEnv
  733. org.rocksdb.Transaction
  734. org.rocksdb.TransactionDB
  735. org.rocksdb.TransactionDBOptions
  736. org.rocksdb.TransactionLogIterator
  737. org.rocksdb.TransactionOptions
  738. org.rocksdb.TtlDB
  739. org.rocksdb.UInt64AddOperator
  740. org.rocksdb.VectorMemTableConfig
  741. org.rocksdb.WBWIRocksIterator
  742. org.rocksdb.WriteBatch
  743. org.rocksdb.WriteBatch.Handler
  744. org.rocksdb.WriteBatchInterface
  745. org.rocksdb.WriteBatchWithIndex
  746. org.rocksdb.WriteOptions
  747. org.rocksdb.NativeComparatorWrapperTest
  748. org.rocksdb.RocksDBExceptionTest
  749. org.rocksdb.SnapshotTest
  750. org.rocksdb.WriteBatchTest
  751. org.rocksdb.WriteBatchTestInternalHelper
  752. org.rocksdb.WriteBufferManager
  753. org.rocksdb.test.TestableEventListener
  754. )
  755. create_javah(
  756. TARGET rocksdbjni_headers
  757. CLASSES ${NATIVE_JAVA_CLASSES}
  758. CLASSPATH rocksdbjni_classes ${JAVA_TESTCLASSPATH}
  759. OUTPUT_DIR ${JNI_OUTPUT_DIR}
  760. )
  761. endif()
  762. if(NOT MSVC)
  763. set_property(TARGET ${ROCKSDB_STATIC_LIB} PROPERTY POSITION_INDEPENDENT_CODE ON)
  764. endif()
  765. set(ROCKSDBJNI_STATIC_LIB rocksdbjni${ARTIFACT_SUFFIX})
  766. if(MINGW)
  767. # Build mingw only as staic library.
  768. add_library(${ROCKSDBJNI_STATIC_LIB} ${JNI_NATIVE_SOURCES})
  769. else()
  770. add_library(${ROCKSDBJNI_STATIC_LIB} SHARED ${JNI_NATIVE_SOURCES})
  771. endif()
  772. add_dependencies(${ROCKSDBJNI_STATIC_LIB} rocksdbjni_headers)
  773. target_link_libraries(${ROCKSDBJNI_STATIC_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB})
  774. if(NOT MINGW)
  775. set(ROCKSDBJNI_SHARED_LIB rocksdbjni-shared${ARTIFACT_SUFFIX})
  776. add_library(${ROCKSDBJNI_SHARED_LIB} SHARED ${JNI_NATIVE_SOURCES})
  777. add_dependencies(${ROCKSDBJNI_SHARED_LIB} rocksdbjni_headers)
  778. target_link_libraries(${ROCKSDBJNI_SHARED_LIB} ${ROCKSDB_STATIC_LIB} ${ROCKSDB_LIB})
  779. set_target_properties(
  780. ${ROCKSDBJNI_SHARED_LIB}
  781. PROPERTIES
  782. COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_CFG_INTDIR}
  783. COMPILE_PDB_NAME ${ROCKSDBJNI_STATIC_LIB}.pdb
  784. )
  785. endif()
  786. # Javadoc Jar
  787. set(ROCKSDB_JAVADOC_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-javadoc.jar)
  788. create_javadoc(rocksdb
  789. PACKAGES org.rocksdb org.rocksdb.util
  790. SOURCEPATH "${PROJECT_SOURCE_DIR}/java/src/main/java"
  791. WINDOWTITLE "RocksDB Java API JavaDoc"
  792. AUTHOR FALSE
  793. USE FALSE
  794. VERSION TRUE
  795. )
  796. add_custom_target(rocksdb_javadocs_jar ALL
  797. COMMAND ${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR} -C ${CMAKE_CURRENT_BINARY_DIR}/javadoc/rocksdb .
  798. BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAVADOC_JAR}
  799. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  800. DEPENDS rocksdb_javadoc
  801. )
  802. # Sources Jar
  803. set(ROCKSDB_SOURCES_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-sources.jar)
  804. add_custom_target(rocksdb_sources_jar ALL
  805. ${Java_JAR_EXECUTABLE} cvf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR} -C ${PROJECT_SOURCE_DIR}/java/src/main/java/ .
  806. BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_SOURCES_JAR}
  807. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  808. )
  809. set(bitness 32)
  810. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  811. set(bitness 64)
  812. endif()
  813. if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  814. set_target_properties(
  815. ${ROCKSDBJNI_STATIC_LIB}
  816. PROPERTIES
  817. OUTPUT_NAME librocksdbjni-win${bitness}
  818. )
  819. set(ROCKSDB_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-win${bitness}.jar)
  820. elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  821. set_target_properties(
  822. ${ROCKSDBJNI_STATIC_LIB}
  823. PROPERTIES
  824. OUTPUT_NAME "rocksdbjni-linux${bitness}"
  825. )
  826. set(ROCKSDB_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-linux${bitness}.jar)
  827. elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  828. set_target_properties(
  829. ${ROCKSDBJNI_STATIC_LIB}
  830. PROPERTIES
  831. OUTPUT_NAME rocksdbjni-osx-${CMAKE_SYSTEM_PROCESSOR}
  832. )
  833. set_target_properties(
  834. ${ROCKSDBJNI_STATIC_LIB}
  835. PROPERTIES
  836. SUFFIX ".jnilib"
  837. )
  838. set(ROCKSDB_JAR rocksdbjni-${CMAKE_PROJECT_VERSION}-osx.jar)
  839. else()
  840. set(ROCKSDB_JAR rocksdb-${CMAKE_PROJECT_VERSION}.jar)
  841. endif()
  842. get_target_property(ROCKS_JAR_FILE rocksdbjni_classes JAR_FILE)
  843. add_custom_target(rocksdbjava ALL
  844. COMMAND ${CMAKE_COMMAND} -E copy ${ROCKS_JAR_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR}
  845. COMMAND ${Java_JAR_EXECUTABLE} -uf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} -C $<TARGET_FILE_DIR:${ROCKSDBJNI_STATIC_LIB}> $<TARGET_FILE_NAME:${ROCKSDBJNI_STATIC_LIB}>
  846. COMMAND ${Java_JAR_EXECUTABLE} -uf ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} -C ${CMAKE_CURRENT_SOURCE_DIR} HISTORY-JAVA.md
  847. DEPENDS ${ROCKSDBJNI_STATIC_LIB} rocksdbjni_classes
  848. BYPRODUCTS ${ROCKSDB_JAR}
  849. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  850. )
  851. enable_testing()
  852. get_target_property(ROCKSDBJNI_CLASSES_TEST_JAR_FILE rocksdbjni_test_classes JAR_FILE)
  853. foreach (CLAZZ ${JAVA_TEST_RUNNING_CLASSES})
  854. if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  855. add_test(
  856. NAME jtest_${CLAZZ}
  857. COMMAND ${Java_JAVA_EXECUTABLE} ${JVMARGS} -ea -Xcheck:jni -Djava.library.path=${PROJECT_BINARY_DIR}/java/${CMAKE_BUILD_TYPE} -classpath ${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR}$<SEMICOLON>${JAVA_RUN_TESTCLASSPATH}$<SEMICOLON>${ROCKSDBJNI_CLASSES_TEST_JAR_FILE} org.rocksdb.test.RocksJunitRunner ${CLAZZ}
  858. )
  859. else()
  860. add_test(
  861. NAME jtest_${CLAZZ}
  862. COMMAND ${Java_JAVA_EXECUTABLE} ${JVMARGS} -ea -Xcheck:jni -Djava.library.path=${PROJECT_BINARY_DIR}/java -classpath ${JAVA_RUN_TESTCLASSPATH}:${ROCKSDBJNI_CLASSES_TEST_JAR_FILE}:${CMAKE_CURRENT_BINARY_DIR}/${ROCKSDB_JAR} org.rocksdb.test.RocksJunitRunner ${CLAZZ}
  863. )
  864. endif()
  865. endforeach(CLAZZ)