mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-14 09:58:50 +08:00
Fixed C bindings DLLEXPORT and Java bindings
This commit is contained in:
parent
5fafeaf219
commit
f8eac70700
@ -29,11 +29,18 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/foundationdb/fdb_c_options
|
||||
COMMENT "Generate C options")
|
||||
add_custom_target(fdb_c_options DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/foundationdb/fdb_c_options.g.h)
|
||||
|
||||
add_library(fdb_c SHARED ${FDB_C_SRCS})
|
||||
include(GenerateExportHeader)
|
||||
|
||||
add_library(fdb_c SHARED ${FDB_C_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/fdb_c.g.S)
|
||||
add_dependencies(fdb_c fdb_c_generated fdb_c_options)
|
||||
target_link_libraries(fdb_c PUBLIC fdbclient)
|
||||
target_include_directories(fdb_c PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/foundationdb)
|
||||
|
||||
target_include_directories(fdb_c PUBLIC
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/foundationdb)
|
||||
# TODO: re-enable once the old vcxproj-based build system is removed.
|
||||
#generate_export_header(fdb_c EXPORT_MACRO_NAME "DLLEXPORT"
|
||||
# EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/foundationdb/fdb_c_export.h)
|
||||
install(TARGETS fdb_c DESTINATION lib64 COMPONENT clients)
|
||||
install(FILES foundationdb/fdb_c.h ${CMAKE_CURRENT_BINARY_DIR}/foundationdb/fdb_c_options.g.h ${CMAKE_SOURCE_DIR}/fdbclient/vexillographer/fdb.options
|
||||
DESTINATION include/foundationdb COMPONENT clients)
|
||||
|
140
bindings/java/CMakeLists.txt
Normal file
140
bindings/java/CMakeLists.txt
Normal file
@ -0,0 +1,140 @@
|
||||
set(JAVA_BINDING_SRCS
|
||||
src/main/com/apple/foundationdb/async/AsyncIterable.java
|
||||
src/main/com/apple/foundationdb/async/AsyncIterator.java
|
||||
src/main/com/apple/foundationdb/async/AsyncUtil.java
|
||||
src/main/com/apple/foundationdb/async/Cancellable.java
|
||||
src/main/com/apple/foundationdb/async/CloneableException.java
|
||||
src/main/com/apple/foundationdb/async/CloseableAsyncIterator.java
|
||||
src/main/com/apple/foundationdb/async/package-info.java
|
||||
src/main/com/apple/foundationdb/Cluster.java
|
||||
src/main/com/apple/foundationdb/Database.java
|
||||
src/main/com/apple/foundationdb/directory/Directory.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryAlreadyExistsException.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryException.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryLayer.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryMoveException.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryPartition.java
|
||||
src/main/com/apple/foundationdb/directory/DirectorySubspace.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryUtil.java
|
||||
src/main/com/apple/foundationdb/directory/DirectoryVersionException.java
|
||||
src/main/com/apple/foundationdb/directory/MismatchedLayerException.java
|
||||
src/main/com/apple/foundationdb/directory/NoSuchDirectoryException.java
|
||||
src/main/com/apple/foundationdb/directory/package-info.java
|
||||
src/main/com/apple/foundationdb/directory/PathUtil.java
|
||||
src/main/com/apple/foundationdb/FDB.java
|
||||
src/main/com/apple/foundationdb/FDBDatabase.java
|
||||
src/main/com/apple/foundationdb/FDBTransaction.java
|
||||
src/main/com/apple/foundationdb/FutureCluster.java
|
||||
src/main/com/apple/foundationdb/FutureDatabase.java
|
||||
src/main/com/apple/foundationdb/FutureKey.java
|
||||
src/main/com/apple/foundationdb/FutureResult.java
|
||||
src/main/com/apple/foundationdb/FutureResults.java
|
||||
src/main/com/apple/foundationdb/FutureStrings.java
|
||||
src/main/com/apple/foundationdb/FutureVersion.java
|
||||
src/main/com/apple/foundationdb/FutureVoid.java
|
||||
src/main/com/apple/foundationdb/JNIUtil.java
|
||||
src/main/com/apple/foundationdb/KeySelector.java
|
||||
src/main/com/apple/foundationdb/KeyValue.java
|
||||
src/main/com/apple/foundationdb/LocalityUtil.java
|
||||
src/main/com/apple/foundationdb/NativeFuture.java
|
||||
src/main/com/apple/foundationdb/NativeObjectWrapper.java
|
||||
src/main/com/apple/foundationdb/OptionConsumer.java
|
||||
src/main/com/apple/foundationdb/OptionsSet.java
|
||||
src/main/com/apple/foundationdb/package-info.java
|
||||
src/main/com/apple/foundationdb/Range.java
|
||||
src/main/com/apple/foundationdb/RangeQuery.java
|
||||
src/main/com/apple/foundationdb/RangeResult.java
|
||||
src/main/com/apple/foundationdb/RangeResultInfo.java
|
||||
src/main/com/apple/foundationdb/RangeResultSummary.java
|
||||
src/main/com/apple/foundationdb/ReadTransaction.java
|
||||
src/main/com/apple/foundationdb/ReadTransactionContext.java
|
||||
src/main/com/apple/foundationdb/subspace/package-info.java
|
||||
src/main/com/apple/foundationdb/subspace/Subspace.java
|
||||
src/main/com/apple/foundationdb/Transaction.java
|
||||
src/main/com/apple/foundationdb/TransactionContext.java
|
||||
src/main/com/apple/foundationdb/tuple/ByteArrayUtil.java
|
||||
src/main/com/apple/foundationdb/tuple/IterableComparator.java
|
||||
src/main/com/apple/foundationdb/tuple/package-info.java
|
||||
src/main/com/apple/foundationdb/tuple/Tuple.java
|
||||
src/main/com/apple/foundationdb/tuple/TupleUtil.java
|
||||
src/main/com/apple/foundationdb/tuple/Versionstamp.java)
|
||||
|
||||
set(JAVA_TESTS_SRCS
|
||||
src/test/com/apple/foundationdb/test/AbstractTester.java
|
||||
src/test/com/apple/foundationdb/test/AsyncDirectoryExtension.java
|
||||
src/test/com/apple/foundationdb/test/AsyncStackTester.java
|
||||
src/test/com/apple/foundationdb/test/BlockingBenchmark.java
|
||||
src/test/com/apple/foundationdb/test/ConcurrentGetSetGet.java
|
||||
src/test/com/apple/foundationdb/test/Context.java
|
||||
src/test/com/apple/foundationdb/test/ContinuousSample.java
|
||||
src/test/com/apple/foundationdb/test/DirectoryExtension.java
|
||||
src/test/com/apple/foundationdb/test/DirectoryOperation.java
|
||||
src/test/com/apple/foundationdb/test/DirectoryTest.java
|
||||
src/test/com/apple/foundationdb/test/DirectoryUtil.java
|
||||
src/test/com/apple/foundationdb/test/Example.java
|
||||
src/test/com/apple/foundationdb/test/Instruction.java
|
||||
src/test/com/apple/foundationdb/test/IterableTest.java
|
||||
src/test/com/apple/foundationdb/test/LocalityTests.java
|
||||
src/test/com/apple/foundationdb/test/ParallelRandomScan.java
|
||||
src/test/com/apple/foundationdb/test/PerformanceTester.java
|
||||
src/test/com/apple/foundationdb/test/RangeTest.java
|
||||
src/test/com/apple/foundationdb/test/RYWBenchmark.java
|
||||
src/test/com/apple/foundationdb/test/SerialInsertion.java
|
||||
src/test/com/apple/foundationdb/test/SerialIteration.java
|
||||
src/test/com/apple/foundationdb/test/SerialTest.java
|
||||
src/test/com/apple/foundationdb/test/Stack.java
|
||||
src/test/com/apple/foundationdb/test/StackEntry.java
|
||||
src/test/com/apple/foundationdb/test/StackOperation.java
|
||||
src/test/com/apple/foundationdb/test/StackTester.java
|
||||
src/test/com/apple/foundationdb/test/StackUtils.java
|
||||
src/test/com/apple/foundationdb/test/TesterArgs.java
|
||||
src/test/com/apple/foundationdb/test/TestResult.java
|
||||
src/test/com/apple/foundationdb/test/TupleTest.java
|
||||
src/test/com/apple/foundationdb/test/VersionstampSmokeTest.java
|
||||
src/test/com/apple/foundationdb/test/WatchTest.java
|
||||
src/test/com/apple/foundationdb/test/WhileTrueTest.java)
|
||||
|
||||
set(GENERATED_JAVA_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/main/com/foundationdb)
|
||||
file(MAKE_DIRECTORY ${GENERATED_JAVA_DIR})
|
||||
|
||||
set(GENERATED_JAVA_FILES
|
||||
${GENERATED_JAVA_DIR}/ClusterOptions.java
|
||||
${GENERATED_JAVA_DIR}/ConflictRangeType.java
|
||||
${GENERATED_JAVA_DIR}/DatabaseOptions.java
|
||||
${GENERATED_JAVA_DIR}/MutationType.java
|
||||
${GENERATED_JAVA_DIR}/NetworkOptions.java
|
||||
${GENERATED_JAVA_DIR}/StreamingMode.java
|
||||
${GENERATED_JAVA_DIR}/TransactionOptions.java
|
||||
${GENERATED_JAVA_DIR}/FDBException.java)
|
||||
|
||||
add_custom_command(OUTPUT ${GENERATED_JAVA_FILES}
|
||||
COMMAND ${MONO_EXECUTABLE} ${VEXILLOGRAPHER_EXE} ${CMAKE_SOURCE_DIR}/fdbclient/vexillographer/fdb.options java ${GENERATED_JAVA_DIR}
|
||||
DEPENDS ${CMAKE_SOURCE_DIR}/fdbclient/vexillographer/fdb.options vexillographer
|
||||
COMMENT "Generate Java options")
|
||||
add_custom_target(fdb_java_options DEPENDS ${GENERATED_JAVA_DIR}/StreamingMode.java)
|
||||
|
||||
set(SYSTEM_NAME "linux")
|
||||
if (APPLE)
|
||||
set(SYSTEM_NAME "osx")
|
||||
endif()
|
||||
|
||||
add_library(fdb_java SHARED fdbJNI.cpp)
|
||||
message(DEBUG ${JNI_INCLUDE_DIRS})
|
||||
message(DEBUG ${JNI_LIBRARIES})
|
||||
target_include_directories(fdb_java PRIVATE ${JNI_INCLUDE_DIRS})
|
||||
# libfdb_java.so is loaded by fdb-java.jar and doesn't need to depened on jvm shared libraries.
|
||||
target_link_libraries(fdb_java PRIVATE fdb_c)
|
||||
set_target_properties(fdb_java PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib/${SYSTEM_NAME}/amd64/)
|
||||
|
||||
set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.8" "-target" "1.8")
|
||||
set(CMAKE_JNI_TARGET TRUE)
|
||||
set(JAR_VERSION "${FDB_MAJOR}.${FDB_MINOR}.${FDB_REVISION}")
|
||||
add_jar(fdb-java ${JAVA_BINDING_SRCS} ${GENERATED_JAVA_FILES}
|
||||
OUTPUT_DIR ${PROJECT_BINARY_DIR}/lib)
|
||||
add_dependencies(fdb-java fdb_java_options fdb_java)
|
||||
add_jar(foundationdb-tests SOURCES ${JAVA_TESTS_SRCS} INCLUDE_JARS fdb-java)
|
||||
add_dependencies(foundationdb-tests fdb_java_options)
|
||||
|
||||
install_jar(fdb-java DESTINATION share/java COMPONENT clients)
|
||||
install(TARGETS fdb_java DESTINATION lib64 COMPONENT clients)
|
53
bindings/python/CMakeLists.txt
Normal file
53
bindings/python/CMakeLists.txt
Normal file
@ -0,0 +1,53 @@
|
||||
set(SRCS
|
||||
fdb/__init__.py
|
||||
fdb/directory_impl.py
|
||||
fdb/impl.py
|
||||
fdb/locality.py
|
||||
fdb/six.py
|
||||
fdb/subspace_impl.py
|
||||
fdb/tuple.py)
|
||||
|
||||
if(APPLE)
|
||||
list(APPEND SRCS fdb/libfdb_c.dylib.pth)
|
||||
else()
|
||||
list(APPEND SRCS fdb/libfdb_c.so.pth)
|
||||
endif()
|
||||
|
||||
set(out_files "")
|
||||
foreach(src ${SRCS})
|
||||
get_filename_component(dirname ${src} DIRECTORY)
|
||||
get_filename_component(extname ${src} EXT)
|
||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/bindings/python/${src}
|
||||
COMMAND mkdir -p ${PROJECT_BINARY_DIR}/bindings/python/${dirname}
|
||||
COMMAND cp ${src} ${PROJECT_BINARY_DIR}/bindings/python/${dirname}/
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${src}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "copy ${src}")
|
||||
set(out_files "${out_files};${PROJECT_BINARY_DIR}/bindings/python/${src}")
|
||||
if(${extname} STREQUAL ".py")
|
||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/bindings/python/${src}c
|
||||
COMMAND python -m py_compile ${PROJECT_BINARY_DIR}/bindings/python/${src}
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${CMAKE_CURRENT_BINARY_DIR}/${src}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/bindings/python/${dirname}
|
||||
COMMENT "compile ${src}")
|
||||
set(out_files "${out_files};${PROJECT_BINARY_DIR}/bindings/python/${src}c")
|
||||
endif()
|
||||
endforeach()
|
||||
add_custom_target(python_binding ALL DEPENDS ${out_files})
|
||||
|
||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/bindings/python/fdb)
|
||||
set(options_file ${PROJECT_BINARY_DIR}/bindings/python/fdb/fdboptions.py)
|
||||
add_custom_command(OUTPUT ${options_file} ${options_file}c
|
||||
COMMAND ${MONO_EXECUTABLE} ${VEXILLOGRAPHER_EXE} ${CMAKE_SOURCE_DIR}/fdbclient/vexillographer/fdb.options python ${options_file}
|
||||
COMMAND python -m py_compile ${options_file}
|
||||
DEPENDS ${PROJECT_SOURCE_DIR}/fdbclient/vexillographer/fdb.options vexillographer
|
||||
COMMENT "Generate Python options")
|
||||
add_custom_target(fdb_python_options DEPENDS
|
||||
${options_file}
|
||||
${PROJECT_SOURCE_DIR}/fdbclient/vexillographer/fdb.options
|
||||
vexillographer)
|
||||
|
||||
add_dependencies(python_binding fdb_python_options)
|
||||
|
||||
set(out_files "${out_files};${options_file};${options_file}c")
|
||||
install(FILES ${out_files} DESTINATION lib64/python2.6/site-packages/fdb COMPONENT clients)
|
Loading…
x
Reference in New Issue
Block a user