| cmake_minimum_required(VERSION 2.6) |
| |
| set(JNI_NATIVE_SOURCES |
| rocksjni/backupablejni.cc |
| rocksjni/backupenginejni.cc |
| rocksjni/checkpoint.cc |
| rocksjni/clock_cache.cc |
| rocksjni/columnfamilyhandle.cc |
| rocksjni/compaction_filter.cc |
| rocksjni/compaction_options_fifo.cc |
| rocksjni/compaction_options_universal.cc |
| rocksjni/comparator.cc |
| rocksjni/comparatorjnicallback.cc |
| rocksjni/compression_options.cc |
| rocksjni/env.cc |
| rocksjni/env_options.cc |
| rocksjni/filter.cc |
| rocksjni/ingest_external_file_options.cc |
| rocksjni/iterator.cc |
| rocksjni/loggerjnicallback.cc |
| rocksjni/lru_cache.cc |
| rocksjni/memtablejni.cc |
| rocksjni/merge_operator.cc |
| rocksjni/options.cc |
| rocksjni/ratelimiterjni.cc |
| rocksjni/remove_emptyvalue_compactionfilterjni.cc |
| rocksjni/cassandra_compactionfilterjni.cc |
| rocksjni/restorejni.cc |
| rocksjni/rocksdb_exception_test.cc |
| rocksjni/rocksjni.cc |
| rocksjni/slice.cc |
| rocksjni/snapshot.cc |
| rocksjni/sst_file_writerjni.cc |
| rocksjni/statistics.cc |
| rocksjni/statisticsjni.cc |
| rocksjni/table.cc |
| rocksjni/transaction_log.cc |
| rocksjni/ttl.cc |
| rocksjni/write_batch.cc |
| rocksjni/write_batch_test.cc |
| rocksjni/write_batch_with_index.cc |
| rocksjni/writebatchhandlerjnicallback.cc |
| ) |
| |
| set(NATIVE_JAVA_CLASSES |
| org.rocksdb.AbstractCompactionFilter |
| org.rocksdb.AbstractComparator |
| org.rocksdb.AbstractImmutableNativeReference |
| org.rocksdb.AbstractNativeReference |
| org.rocksdb.AbstractRocksIterator |
| org.rocksdb.AbstractSlice |
| org.rocksdb.AbstractWriteBatch |
| org.rocksdb.BackupableDBOptions |
| org.rocksdb.BackupEngine |
| org.rocksdb.BackupEngineTest |
| org.rocksdb.BlockBasedTableConfig |
| org.rocksdb.BloomFilter |
| org.rocksdb.Cache |
| org.rocksdb.CassandraCompactionFilter |
| org.rocksdb.CassandraValueMergeOperator |
| org.rocksdb.Checkpoint |
| org.rocksdb.ClockCache |
| org.rocksdb.ColumnFamilyHandle |
| org.rocksdb.ColumnFamilyOptions |
| org.rocksdb.CompactionOptionsFIFO |
| org.rocksdb.CompactionOptionsUniversal |
| org.rocksdb.Comparator |
| org.rocksdb.ComparatorOptions |
| org.rocksdb.CompressionOptions |
| org.rocksdb.DBOptions |
| org.rocksdb.DirectComparator |
| org.rocksdb.DirectSlice |
| org.rocksdb.Env |
| org.rocksdb.EnvOptions |
| org.rocksdb.ExternalSstFileInfo |
| org.rocksdb.Filter |
| org.rocksdb.FlushOptions |
| org.rocksdb.HashLinkedListMemTableConfig |
| org.rocksdb.HashSkipListMemTableConfig |
| org.rocksdb.IngestExternalFileOptions |
| org.rocksdb.Logger |
| org.rocksdb.LRUCache |
| org.rocksdb.MemTableConfig |
| org.rocksdb.MergeOperator |
| org.rocksdb.NativeLibraryLoader |
| org.rocksdb.Options |
| org.rocksdb.PlainTableConfig |
| org.rocksdb.RateLimiter |
| org.rocksdb.ReadOptions |
| org.rocksdb.RemoveEmptyValueCompactionFilter |
| org.rocksdb.RestoreOptions |
| org.rocksdb.RocksDB |
| org.rocksdb.RocksDBExceptionTest |
| org.rocksdb.RocksEnv |
| org.rocksdb.RocksIterator |
| org.rocksdb.RocksIteratorInterface |
| org.rocksdb.RocksMemEnv |
| org.rocksdb.RocksMutableObject |
| org.rocksdb.RocksObject |
| org.rocksdb.SkipListMemTableConfig |
| org.rocksdb.Slice |
| org.rocksdb.Snapshot |
| org.rocksdb.SnapshotTest |
| org.rocksdb.SstFileWriter |
| org.rocksdb.Statistics |
| org.rocksdb.StringAppendOperator |
| org.rocksdb.TableFormatConfig |
| org.rocksdb.TransactionLogIterator |
| org.rocksdb.TtlDB |
| org.rocksdb.VectorMemTableConfig |
| org.rocksdb.WBWIRocksIterator |
| org.rocksdb.WriteBatch |
| org.rocksdb.WriteBatch.Handler |
| org.rocksdb.WriteBatchTest |
| org.rocksdb.WriteBatchTestInternalHelper |
| org.rocksdb.WriteBatchWithIndex |
| org.rocksdb.WriteOptions |
| ) |
| |
| include_directories($ENV{JAVA_HOME}/include) |
| include_directories($ENV{JAVA_HOME}/include/win32) |
| include_directories(${PROJECT_SOURCE_DIR}/java) |
| |
| set(JAVA_TEST_LIBDIR ${PROJECT_SOURCE_DIR}/java/test-libs) |
| set(JAVA_TMP_JAR ${JAVA_TEST_LIBDIR}/tmp.jar) |
| set(JAVA_JUNIT_JAR ${JAVA_TEST_LIBDIR}/junit-4.12.jar) |
| set(JAVA_HAMCR_JAR ${JAVA_TEST_LIBDIR}/hamcrest-core-1.3.jar) |
| set(JAVA_MOCKITO_JAR ${JAVA_TEST_LIBDIR}/mockito-all-1.10.19.jar) |
| set(JAVA_CGLIB_JAR ${JAVA_TEST_LIBDIR}/cglib-2.2.2.jar) |
| set(JAVA_ASSERTJ_JAR ${JAVA_TEST_LIBDIR}/assertj-core-1.7.1.jar) |
| set(JAVA_TESTCLASSPATH "${JAVA_JUNIT_JAR}\;${JAVA_HAMCR_JAR}\;${JAVA_MOCKITO_JAR}\;${JAVA_CGLIB_JAR}\;${JAVA_ASSERTJ_JAR}") |
| |
| if(NOT EXISTS ${PROJECT_SOURCE_DIR}/java/classes) |
| file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/java/classes) |
| endif() |
| |
| if(NOT EXISTS ${JAVA_TEST_LIBDIR}) |
| file(MAKE_DIRECTORY mkdir ${JAVA_TEST_LIBDIR}) |
| endif() |
| |
| if (DEFINED CUSTOM_REPO_URL) |
| set(SEARCH_REPO_URL ${CUSTOM_REPO_URL}/) |
| set(CENTRAL_REPO_URL ${CUSTOM_REPO_URL}/) |
| else () |
| set(SEARCH_REPO_URL "http://search.maven.org/remotecontent?filepath=") |
| set(CENTRAL_REPO_URL "http://central.maven.org/maven2/") |
| endif() |
| |
| if(NOT EXISTS ${JAVA_JUNIT_JAR}) |
| message("Downloading ${JAVA_JUNIT_JAR}") |
| file(DOWNLOAD ${SEARCH_REPO_URL}junit/junit/4.12/junit-4.12.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
| list(GET downloadStatus 0 error_code) |
| if(NOT error_code EQUAL 0) |
| message(FATAL_ERROR "Failed downloading ${JAVA_JUNIT_JAR}") |
| endif() |
| file(RENAME ${JAVA_TMP_JAR} ${JAVA_JUNIT_JAR}) |
| endif() |
| if(NOT EXISTS ${JAVA_HAMCR_JAR}) |
| message("Downloading ${JAVA_HAMCR_JAR}") |
| file(DOWNLOAD ${SEARCH_REPO_URL}org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
| list(GET downloadStatus 0 error_code) |
| if(NOT error_code EQUAL 0) |
| message(FATAL_ERROR "Failed downloading ${JAVA_HAMCR_JAR}") |
| endif() |
| file(RENAME ${JAVA_TMP_JAR} ${JAVA_HAMCR_JAR}) |
| endif() |
| if(NOT EXISTS ${JAVA_MOCKITO_JAR}) |
| message("Downloading ${JAVA_MOCKITO_JAR}") |
| file(DOWNLOAD ${SEARCH_REPO_URL}org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
| list(GET downloadStatus 0 error_code) |
| if(NOT error_code EQUAL 0) |
| message(FATAL_ERROR "Failed downloading ${JAVA_MOCKITO_JAR}") |
| endif() |
| file(RENAME ${JAVA_TMP_JAR} ${JAVA_MOCKITO_JAR}) |
| endif() |
| if(NOT EXISTS ${JAVA_CGLIB_JAR}) |
| message("Downloading ${JAVA_CGLIB_JAR}") |
| file(DOWNLOAD ${SEARCH_REPO_URL}cglib/cglib/2.2.2/cglib-2.2.2.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
| list(GET downloadStatus 0 error_code) |
| if(NOT error_code EQUAL 0) |
| message(FATAL_ERROR "Failed downloading ${JAVA_CGLIB_JAR}") |
| endif() |
| file(RENAME ${JAVA_TMP_JAR} ${JAVA_CGLIB_JAR}) |
| endif() |
| if(NOT EXISTS ${JAVA_ASSERTJ_JAR}) |
| message("Downloading ${JAVA_ASSERTJ_JAR}") |
| file(DOWNLOAD ${CENTRAL_REPO_URL}org/assertj/assertj-core/1.7.1/assertj-core-1.7.1.jar ${JAVA_TMP_JAR} STATUS downloadStatus) |
| list(GET downloadStatus 0 error_code) |
| if(NOT error_code EQUAL 0) |
| message(FATAL_ERROR "Failed downloading ${JAVA_ASSERTJ_JAR}") |
| endif() |
| file(RENAME ${JAVA_TMP_JAR} ${JAVA_ASSERTJ_JAR}) |
| endif() |
| |
| if(WIN32) |
| set(JAVAC cmd /c javac) |
| set(JAVAH cmd /c javah) |
| else() |
| set(JAVAC javac) |
| set(JAVAH javah) |
| endif() |
| |
| execute_process(COMMAND ${JAVAC} ${JAVAC_ARGS} -cp ${JAVA_TESTCLASSPATH} -d ${PROJECT_SOURCE_DIR}/java/classes ${PROJECT_SOURCE_DIR}/java/src/main/java/org/rocksdb/util/*.java ${PROJECT_SOURCE_DIR}/java/src/main/java/org/rocksdb/*.java ${PROJECT_SOURCE_DIR}/java/src/test/java/org/rocksdb/*.java) |
| execute_process(COMMAND ${JAVAH} -cp ${PROJECT_SOURCE_DIR}/java/classes -d ${PROJECT_SOURCE_DIR}/java/include -jni ${NATIVE_JAVA_CLASSES}) |
| add_library(rocksdbjni${ARTIFACT_SUFFIX} SHARED ${JNI_NATIVE_SOURCES}) |
| set_target_properties(rocksdbjni${ARTIFACT_SUFFIX} PROPERTIES COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/rocksdbjni${ARTIFACT_SUFFIX}.pdb") |
| target_link_libraries(rocksdbjni${ARTIFACT_SUFFIX} rocksdb${ARTIFACT_SUFFIX} ${LIBS}) |