Make Java an optional dependency
This commit is contained in:
parent
44eb80b161
commit
f601aa7407
|
@ -21,7 +21,7 @@ project(fdb
|
||||||
VERSION 6.1.0
|
VERSION 6.1.0
|
||||||
DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions."
|
DESCRIPTION "FoundationDB is a scalable, fault-tolerant, ordered key-value store with full ACID transactions."
|
||||||
HOMEPAGE_URL "http://www.foundationdb.org/"
|
HOMEPAGE_URL "http://www.foundationdb.org/"
|
||||||
LANGUAGES ASM C CXX Java)
|
LANGUAGES ASM C CXX)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# C# is currently only supported on Windows.
|
# C# is currently only supported on Windows.
|
||||||
|
@ -57,29 +57,16 @@ find_package(PythonLibs 3.4 REQUIRED)
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# LibreSSL
|
# Compiler configuration
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
set(DISABLE_TLS OFF CACHE BOOL "Don't try to find LibreSSL and always build without TLS support")
|
include(ConfigureCompiler)
|
||||||
if(DISABLE_TLS)
|
|
||||||
set(WITH_TLS FALSE)
|
|
||||||
else()
|
|
||||||
set(LIBRESSL_USE_STATIC_LIBS TRUE)
|
|
||||||
find_package(LibreSSL)
|
|
||||||
if(LibreSSL_FOUND)
|
|
||||||
set(WITH_TLS TRUE)
|
|
||||||
else()
|
|
||||||
message(STATUS "LibreSSL NOT Found - Will compile without TLS Support")
|
|
||||||
message(STATUS "You can set LibreSSL_ROOT to the LibreSSL install directory to help cmake find it")
|
|
||||||
set(WITH_TLS FALSE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Compiler configuration
|
# Compiler configuration
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
include(ConfigureCompiler)
|
include(FDBComponents)
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Get repository information
|
# Get repository information
|
||||||
|
@ -256,3 +243,9 @@ if (CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||||
)
|
)
|
||||||
add_custom_target(procossed_compile_commands ALL DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json)
|
add_custom_target(procossed_compile_commands ALL DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Inform user which components we are going to build
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
print_components()
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
add_subdirectory(c)
|
add_subdirectory(c)
|
||||||
add_subdirectory(python)
|
add_subdirectory(python)
|
||||||
add_subdirectory(java)
|
if(BUILD_JAVA)
|
||||||
|
add_subdirectory(java)
|
||||||
|
endif()
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
include(UseJava)
|
|
||||||
find_package(JNI 1.8 REQUIRED)
|
|
||||||
find_package(Java 1.8 COMPONENTS Development REQUIRED)
|
|
||||||
|
|
||||||
set(JAVA_BINDING_SRCS
|
set(JAVA_BINDING_SRCS
|
||||||
src/main/com/apple/foundationdb/async/AsyncIterable.java
|
src/main/com/apple/foundationdb/async/AsyncIterable.java
|
||||||
src/main/com/apple/foundationdb/async/AsyncIterator.java
|
src/main/com/apple/foundationdb/async/AsyncIterator.java
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
################################################################################
|
||||||
|
# Java Bindings
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
set(BUILD_JAVA OFF)
|
||||||
|
find_package(JNI 1.8 REQUIRED)
|
||||||
|
find_package(Java 1.8 COMPONENTS Development)
|
||||||
|
if(JNI_FOUND AND Java_FOUND AND Java_Development_FOUND)
|
||||||
|
set(BUILD_JAVA ON)
|
||||||
|
include(UseJava)
|
||||||
|
enable_language(Java)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# LibreSSL
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
set(DISABLE_TLS OFF CACHE BOOL "Don't try to find LibreSSL and always build without TLS support")
|
||||||
|
if(DISABLE_TLS)
|
||||||
|
set(WITH_TLS OFF)
|
||||||
|
else()
|
||||||
|
set(LIBRESSL_USE_STATIC_LIBS TRUE)
|
||||||
|
find_package(LibreSSL)
|
||||||
|
if(LibreSSL_FOUND)
|
||||||
|
set(WITH_TLS ON)
|
||||||
|
else()
|
||||||
|
message(STATUS "LibreSSL NOT Found - Will compile without TLS Support")
|
||||||
|
message(STATUS "You can set LibreSSL_ROOT to the LibreSSL install directory to help cmake find it")
|
||||||
|
set(WITH_TLS OFF)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
function(print_components)
|
||||||
|
message(STATUS "=============================")
|
||||||
|
message(STATUS " Components Build Overview ")
|
||||||
|
message(STATUS "=============================")
|
||||||
|
message(STATUS "Build Python Bindings: ON")
|
||||||
|
message(STATUS "Build Java Bindings: ${BUILD_JAVA}")
|
||||||
|
message(STATUS "Build with TLS support: ${WITH_TLS}")
|
||||||
|
message(STATUS "=============================")
|
||||||
|
endfunction()
|
Loading…
Reference in New Issue