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