mirror of https://gitee.com/bigwinds/arangodb
504 lines
14 KiB
CMake
504 lines
14 KiB
CMake
# -*- mode: CMAKE; -*-
|
|
|
|
include_directories(.)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/")
|
|
|
|
################################################################################
|
|
## BISON/FLEX
|
|
################################################################################
|
|
|
|
# note that we check-in the generated FLEX/BISON files, therefore they are
|
|
# generate inside the source tree
|
|
|
|
if (USE_MAINTAINER_MODE AND NOT MSVC)
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/Aql/tokens.cpp
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMAND ${CMAKE_SOURCE_DIR}/utils/flex-c++.sh
|
|
${FLEX_EXECUTABLE} Aql/tokens.cpp Aql/tokens.ll
|
|
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/Aql/tokens.ll
|
|
VERBATIM
|
|
)
|
|
|
|
add_custom_command(
|
|
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/Aql/grammar.cpp
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMAND ${CMAKE_SOURCE_DIR}/utils/bison-c.sh
|
|
${BISON_EXECUTABLE} Aql/grammar.cpp Aql/grammar.y
|
|
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/Aql/grammar.y
|
|
VERBATIM
|
|
)
|
|
|
|
add_custom_target(clean_aql_autogenerated
|
|
COMMAND rm -f Aql/tokens.cpp Aql/tokens.h Aql/grammar.cpp Aql/grammar.h
|
|
)
|
|
|
|
list(APPEND CLEAN_AUTOGENERATED_FILES clean_aql_autogenerated)
|
|
set(CLEAN_AUTOGENERATED_FILES ${CLEAN_AUTOGENERATED_FILES} PARENT_SCOPE)
|
|
endif ()
|
|
|
|
################################################################################
|
|
## arangod
|
|
################################################################################
|
|
|
|
if (MSVC AND NOT(SKIP_PACKAGING))
|
|
generate_product_version(ProductVersionFiles
|
|
NAME arangod
|
|
FILE_DESCRIPTION ${ARANGODB_FRIENDLY_STRING}
|
|
ICON ${ARANGO_ICON}
|
|
VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}
|
|
VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR}
|
|
VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH}
|
|
VERSION_REVISION ${BUILD_ID}
|
|
)
|
|
endif ()
|
|
|
|
if (USE_ENTERPRISE)
|
|
set(ENTERPRISE_FILES "")
|
|
else ()
|
|
set(ENTERPRISE_FILES
|
|
Utils/Events.cpp
|
|
)
|
|
endif ()
|
|
|
|
SET(ARANGOD_SOURCES
|
|
${ProductVersionFiles}
|
|
${ENTERPRISE_FILES}
|
|
Actions/ActionFeature.cpp
|
|
Actions/RestActionHandler.cpp
|
|
Actions/actions.cpp
|
|
Agency/ActivationCallback.cpp
|
|
Agency/AddFollower.cpp
|
|
Agency/AgencyComm.cpp
|
|
Agency/AgencyFeature.cpp
|
|
Agency/Agent.cpp
|
|
Agency/AgentActivator.cpp
|
|
Agency/AgentCallback.cpp
|
|
Agency/AgentConfiguration.cpp
|
|
Agency/CleanOutServer.cpp
|
|
Agency/Compactor.cpp
|
|
Agency/Constituent.cpp
|
|
Agency/FailedFollower.cpp
|
|
Agency/FailedLeader.cpp
|
|
Agency/FailedServer.cpp
|
|
Agency/GossipCallback.cpp
|
|
Agency/Inception.cpp
|
|
Agency/Job.cpp
|
|
Agency/JobContext.cpp
|
|
Agency/MoveShard.cpp
|
|
Agency/Node.cpp
|
|
Agency/NotifyCallback.cpp
|
|
Agency/RemoveFollower.cpp
|
|
Agency/RestAgencyHandler.cpp
|
|
Agency/RestAgencyPrivHandler.cpp
|
|
Agency/State.cpp
|
|
Agency/Store.cpp
|
|
Agency/StoreCallback.cpp
|
|
Agency/Supervision.cpp
|
|
Agency/v8-agency.cpp
|
|
Aql/Aggregator.cpp
|
|
Aql/AqlFunctionFeature.cpp
|
|
Aql/AqlItemBlock.cpp
|
|
Aql/AqlItemBlockManager.cpp
|
|
Aql/AqlTransaction.cpp
|
|
Aql/AqlValue.cpp
|
|
Aql/Ast.cpp
|
|
Aql/AstNode.cpp
|
|
Aql/AttributeAccessor.cpp
|
|
Aql/BaseExpressionContext.cpp
|
|
Aql/BasicBlocks.cpp
|
|
Aql/BindParameters.cpp
|
|
Aql/BlockCollector.cpp
|
|
Aql/CalculationBlock.cpp
|
|
Aql/ClusterBlocks.cpp
|
|
Aql/ClusterNodes.cpp
|
|
Aql/CollectBlock.cpp
|
|
Aql/CollectNode.cpp
|
|
Aql/CollectOptions.cpp
|
|
Aql/Collection.cpp
|
|
Aql/Collections.cpp
|
|
Aql/Condition.cpp
|
|
Aql/ConditionFinder.cpp
|
|
Aql/DocumentProducingBlock.cpp
|
|
Aql/DocumentProducingNode.cpp
|
|
Aql/EnumerateCollectionBlock.cpp
|
|
Aql/EnumerateListBlock.cpp
|
|
Aql/ExecutionBlock.cpp
|
|
Aql/ExecutionEngine.cpp
|
|
Aql/ExecutionNode.cpp
|
|
Aql/ExecutionPlan.cpp
|
|
Aql/ExecutionStats.cpp
|
|
Aql/Expression.cpp
|
|
Aql/FixedVarExpressionContext.cpp
|
|
Aql/Function.cpp
|
|
Aql/Functions.cpp
|
|
Aql/Graphs.cpp
|
|
Aql/GraphNode.cpp
|
|
Aql/IndexBlock.cpp
|
|
Aql/IndexNode.cpp
|
|
Aql/ModificationBlocks.cpp
|
|
Aql/ModificationNodes.cpp
|
|
Aql/ModificationOptions.cpp
|
|
Aql/NodeFinder.cpp
|
|
Aql/Optimizer.cpp
|
|
Aql/OptimizerRules.cpp
|
|
Aql/OptimizerRulesFeature.cpp
|
|
Aql/Parser.cpp
|
|
Aql/PlanCache.cpp
|
|
Aql/QueryExecutionState.cpp
|
|
Aql/QueryProfile.cpp
|
|
Aql/Quantifier.cpp
|
|
Aql/Query.cpp
|
|
Aql/QueryCache.cpp
|
|
Aql/QueryList.cpp
|
|
Aql/QueryOptions.cpp
|
|
Aql/QueryRegistry.cpp
|
|
Aql/QueryResources.cpp
|
|
Aql/QueryString.cpp
|
|
Aql/Range.cpp
|
|
Aql/RegexCache.cpp
|
|
Aql/RestAqlHandler.cpp
|
|
Aql/Scopes.cpp
|
|
Aql/ShortStringStorage.cpp
|
|
Aql/ShortestPathBlock.cpp
|
|
Aql/ShortestPathNode.cpp
|
|
Aql/SortBlock.cpp
|
|
Aql/SortCondition.cpp
|
|
Aql/SortNode.cpp
|
|
Aql/SubqueryBlock.cpp
|
|
Aql/TraversalBlock.cpp
|
|
Aql/TraversalConditionFinder.cpp
|
|
Aql/TraversalNode.cpp
|
|
Aql/V8Executor.cpp
|
|
Aql/V8Expression.cpp
|
|
Aql/Variable.cpp
|
|
Aql/VariableGenerator.cpp
|
|
Aql/grammar.cpp
|
|
Aql/tokens.cpp
|
|
Cache/Cache.cpp
|
|
Cache/CacheManagerFeature.cpp
|
|
Cache/CacheManagerFeatureThreads.cpp
|
|
Cache/CachedValue.cpp
|
|
Cache/Finding.cpp
|
|
Cache/Manager.cpp
|
|
Cache/ManagerTasks.cpp
|
|
Cache/Metadata.cpp
|
|
Cache/PlainBucket.cpp
|
|
Cache/PlainCache.cpp
|
|
Cache/Rebalancer.cpp
|
|
Cache/State.cpp
|
|
Cache/Table.cpp
|
|
Cache/Transaction.cpp
|
|
Cache/TransactionalBucket.cpp
|
|
Cache/TransactionalCache.cpp
|
|
Cache/TransactionManager.cpp
|
|
Cluster/AgencyCallback.cpp
|
|
Cluster/AgencyCallbackRegistry.cpp
|
|
Cluster/ClusterComm.cpp
|
|
Cluster/ClusterEdgeCursor.cpp
|
|
Cluster/ClusterFeature.cpp
|
|
Cluster/ClusterHelpers.cpp
|
|
Cluster/ClusterInfo.cpp
|
|
Cluster/ClusterMethods.cpp
|
|
Cluster/ClusterTraverser.cpp
|
|
Cluster/CollectionLockState.cpp
|
|
Cluster/FollowerInfo.cpp
|
|
Cluster/DBServerAgencySync.cpp
|
|
Cluster/HeartbeatThread.cpp
|
|
Cluster/RestAgencyCallbacksHandler.cpp
|
|
Cluster/ServerState.cpp
|
|
Cluster/TraverserEngine.cpp
|
|
Cluster/TraverserEngineRegistry.cpp
|
|
Cluster/v8-cluster.cpp
|
|
GeneralServer/AsyncJobManager.cpp
|
|
GeneralServer/AuthenticationFeature.cpp
|
|
GeneralServer/GeneralCommTask.cpp
|
|
GeneralServer/GeneralListenTask.cpp
|
|
GeneralServer/GeneralServer.cpp
|
|
GeneralServer/GeneralServerFeature.cpp
|
|
GeneralServer/HttpCommTask.cpp
|
|
GeneralServer/RestEngine.cpp
|
|
GeneralServer/RestHandler.cpp
|
|
GeneralServer/RestHandlerFactory.cpp
|
|
GeneralServer/RestStatus.cpp
|
|
GeneralServer/VstCommTask.cpp
|
|
Graph/AttributeWeightShortestPathFinder.cpp
|
|
Graph/BaseOptions.cpp
|
|
Graph/BreadthFirstEnumerator.cpp
|
|
Graph/ConstantWeightShortestPathFinder.cpp
|
|
Graph/ClusterTraverserCache.cpp
|
|
Graph/EdgeDocumentToken.cpp
|
|
Graph/NeighborsEnumerator.cpp
|
|
Graph/ShortestPathOptions.cpp
|
|
Graph/ShortestPathResult.cpp
|
|
Graph/SingleServerEdgeCursor.cpp
|
|
Graph/TraverserCache.cpp
|
|
Graph/TraverserCacheFactory.cpp
|
|
Graph/TraverserDocumentCache.cpp
|
|
Indexes/Index.cpp
|
|
Indexes/IndexIterator.cpp
|
|
Indexes/IndexLookupContext.cpp
|
|
Indexes/SimpleAttributeEqualityMatcher.cpp
|
|
InternalRestHandler/InternalRestTraverserHandler.cpp
|
|
Pregel/AggregatorHandler.cpp
|
|
Pregel/AlgoRegistry.cpp
|
|
Pregel/Algos/AsyncSCC.cpp
|
|
Pregel/Algos/ConnectedComponents.cpp
|
|
Pregel/Algos/EffectiveCloseness/EffectiveCloseness.cpp
|
|
Pregel/Algos/EffectiveCloseness/HLLCounter.cpp
|
|
Pregel/Algos/HITS.cpp
|
|
Pregel/Algos/LineRank.cpp
|
|
Pregel/Algos/PageRank.cpp
|
|
Pregel/Algos/RecoveringPageRank.cpp
|
|
Pregel/Algos/ShortestPath.cpp
|
|
Pregel/Algos/SSSP.cpp
|
|
Pregel/Algos/SCC.cpp
|
|
Pregel/Algos/SLPA.cpp
|
|
Pregel/Algos/LabelPropagation.cpp
|
|
Pregel/Algos/DMID/DMID.cpp
|
|
Pregel/Conductor.cpp
|
|
Pregel/GraphStore.cpp
|
|
Pregel/IncomingCache.cpp
|
|
Pregel/OutgoingCache.cpp
|
|
Pregel/PregelFeature.cpp
|
|
Pregel/Recovery.cpp
|
|
Pregel/Utils.cpp
|
|
Pregel/Worker.cpp
|
|
Pregel/WorkerConfig.cpp
|
|
Replication/ContinuousSyncer.cpp
|
|
Replication/InitialSyncer.cpp
|
|
Replication/Syncer.cpp
|
|
RestHandler/RestAdminLogHandler.cpp
|
|
RestHandler/RestAdminRoutingHandler.cpp
|
|
RestHandler/RestAqlFunctionsHandler.cpp
|
|
RestHandler/RestAuthHandler.cpp
|
|
RestHandler/RestBaseHandler.cpp
|
|
RestHandler/RestBatchHandler.cpp
|
|
RestHandler/RestCursorHandler.cpp
|
|
RestHandler/RestDatabaseHandler.cpp
|
|
RestHandler/RestDebugHandler.cpp
|
|
RestHandler/RestDemoHandler.cpp
|
|
RestHandler/RestDocumentHandler.cpp
|
|
RestHandler/RestEchoHandler.cpp
|
|
RestHandler/RestEdgesHandler.cpp
|
|
RestHandler/RestEndpointHandler.cpp
|
|
RestHandler/RestEngineHandler.cpp
|
|
RestHandler/RestExplainHandler.cpp
|
|
RestHandler/RestImportHandler.cpp
|
|
RestHandler/RestIndexHandler.cpp
|
|
RestHandler/RestJobHandler.cpp
|
|
RestHandler/RestPleaseUpgradeHandler.cpp
|
|
RestHandler/RestPregelHandler.cpp
|
|
RestHandler/RestQueryCacheHandler.cpp
|
|
RestHandler/RestQueryHandler.cpp
|
|
RestHandler/RestReplicationHandler.cpp
|
|
RestHandler/RestShutdownHandler.cpp
|
|
RestHandler/RestSimpleHandler.cpp
|
|
RestHandler/RestSimpleQueryHandler.cpp
|
|
RestHandler/RestTransactionHandler.cpp
|
|
RestHandler/RestUploadHandler.cpp
|
|
RestHandler/RestUsersHandler.cpp
|
|
RestHandler/RestVersionHandler.cpp
|
|
RestHandler/RestViewHandler.cpp
|
|
RestHandler/RestVocbaseBaseHandler.cpp
|
|
RestHandler/WorkMonitorHandler.cpp
|
|
RestServer/AqlFeature.cpp
|
|
RestServer/BootstrapFeature.cpp
|
|
RestServer/CheckVersionFeature.cpp
|
|
RestServer/ConsoleFeature.cpp
|
|
RestServer/ConsoleThread.cpp
|
|
RestServer/DatabaseFeature.cpp
|
|
RestServer/DatabasePathFeature.cpp
|
|
RestServer/EndpointFeature.cpp
|
|
RestServer/FeatureCacheFeature.cpp
|
|
RestServer/FileDescriptorsFeature.cpp
|
|
RestServer/FrontendFeature.cpp
|
|
RestServer/InitDatabaseFeature.cpp
|
|
RestServer/LockfileFeature.cpp
|
|
RestServer/QueryRegistryFeature.cpp
|
|
RestServer/ScriptFeature.cpp
|
|
RestServer/ServerFeature.cpp
|
|
RestServer/ServerIdFeature.cpp
|
|
RestServer/TransactionManagerFeature.cpp
|
|
RestServer/TraverserEngineRegistryFeature.cpp
|
|
RestServer/UnitTestsFeature.cpp
|
|
RestServer/UpgradeFeature.cpp
|
|
RestServer/ViewTypesFeature.cpp
|
|
RestServer/VocbaseContext.cpp
|
|
RestServer/WorkMonitorFeature.cpp
|
|
Scheduler/Acceptor.cpp
|
|
Scheduler/AcceptorTcp.cpp
|
|
Scheduler/Job.cpp
|
|
Scheduler/JobGuard.cpp
|
|
Scheduler/JobQueue.cpp
|
|
Scheduler/ListenTask.cpp
|
|
Scheduler/Scheduler.cpp
|
|
Scheduler/SchedulerFeature.cpp
|
|
Scheduler/Socket.cpp
|
|
Scheduler/SocketTask.cpp
|
|
Scheduler/SocketTcp.cpp
|
|
Scheduler/Task.cpp
|
|
Statistics/ConnectionStatistics.cpp
|
|
Statistics/RequestStatistics.cpp
|
|
Statistics/ServerStatistics.cpp
|
|
Statistics/StatisticsFeature.cpp
|
|
StorageEngine/EngineSelectorFeature.cpp
|
|
StorageEngine/PhysicalCollection.cpp
|
|
StorageEngine/TransactionCollection.cpp
|
|
StorageEngine/TransactionState.cpp
|
|
Transaction/Context.cpp
|
|
Transaction/Helpers.cpp
|
|
Transaction/Methods.cpp
|
|
Transaction/Options.cpp
|
|
Transaction/StandaloneContext.cpp
|
|
Transaction/V8Context.cpp
|
|
Utils/Authentication.cpp
|
|
Utils/CollectionKeys.cpp
|
|
Utils/CollectionKeysRepository.cpp
|
|
Utils/CollectionNameResolver.cpp
|
|
Utils/Cursor.cpp
|
|
Utils/CursorRepository.cpp
|
|
Utils/ExecContext.cpp
|
|
Utils/OperationCursor.cpp
|
|
Utils/SingleCollectionTransaction.cpp
|
|
Utils/WorkMonitorArangod.cpp
|
|
V8Server/FoxxQueuesFeature.cpp
|
|
V8Server/V8Context.cpp
|
|
V8Server/V8DealerFeature.cpp
|
|
V8Server/v8-actions.cpp
|
|
V8Server/v8-collection-util.cpp
|
|
V8Server/v8-collection.cpp
|
|
V8Server/v8-dispatcher.cpp
|
|
V8Server/v8-query.cpp
|
|
V8Server/v8-replication.cpp
|
|
V8Server/v8-statistics.cpp
|
|
V8Server/v8-users.cpp
|
|
V8Server/v8-user-structures.cpp
|
|
V8Server/v8-util.cpp
|
|
V8Server/v8-views.cpp
|
|
V8Server/v8-vocbase.cpp
|
|
V8Server/v8-voccursor.cpp
|
|
V8Server/v8-vocindex.cpp
|
|
Views/LoggerView.cpp
|
|
VocBase/Methods/Collections.cpp
|
|
VocBase/Methods/Databases.cpp
|
|
VocBase/Methods/Indexes.cpp
|
|
VocBase/Methods/Transactions.cpp
|
|
VocBase/AuthInfo.cpp
|
|
VocBase/AuthUserEntry.cpp
|
|
VocBase/EdgeCollectionInfo.cpp
|
|
VocBase/Graphs.cpp
|
|
VocBase/KeyGenerator.cpp
|
|
VocBase/LogicalCollection.cpp
|
|
VocBase/LogicalView.cpp
|
|
VocBase/ManagedDocumentResult.cpp
|
|
VocBase/PathEnumerator.cpp
|
|
VocBase/SingleServerTraverser.cpp
|
|
VocBase/Traverser.cpp
|
|
VocBase/TraverserOptions.cpp
|
|
VocBase/modes.cpp
|
|
VocBase/replication-applier.cpp
|
|
VocBase/replication-common.cpp
|
|
VocBase/ticks.cpp
|
|
VocBase/vocbase.cpp
|
|
${ADDITIONAL_BIN_ARANGOD_SOURCES}
|
|
)
|
|
|
|
if (NOT MSVC)
|
|
set(ARANGOD_SOURCES ${ARANGOD_SOURCES} Scheduler/AcceptorUnixDomain.cpp Scheduler/SocketUnixDomain.cpp)
|
|
endif()
|
|
|
|
include(RocksDBEngine/CMakeLists.txt)
|
|
include(MMFiles/CMakeLists.txt)
|
|
|
|
add_library(arangoserver STATIC ${ARANGOD_SOURCES} ${MMFILES_SOURCES} ${ROCKSDB_SOURCES})
|
|
|
|
target_link_libraries(arangoserver
|
|
${LIB_ARANGO_FE}
|
|
${LIB_ARANGO_V8}
|
|
${LIB_ARANGO}
|
|
${LINENOISE_LIBS}
|
|
${MSVC_LIBS}
|
|
${V8_LIBS}
|
|
${ROCKSDB_LIBS}
|
|
boost_boost
|
|
boost_system
|
|
${SYSTEM_LIBRARIES}
|
|
)
|
|
|
|
if (USE_ENTERPRISE)
|
|
target_compile_definitions(arangoserver "-DUSE_ENTERPRISE=1")
|
|
target_include_directories(arangoserver ${ENTERPRISE_INCLUDE_DIR})
|
|
if (MSVC)
|
|
target_link_libraries(arangoserver
|
|
Wldap32.lib
|
|
)
|
|
else()
|
|
target_link_libraries(arangoserver
|
|
ldap
|
|
lber
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
add_executable(${BIN_ARANGOD}
|
|
RestServer/arangod.cpp
|
|
)
|
|
|
|
target_link_libraries(${BIN_ARANGOD}
|
|
arangoserver
|
|
)
|
|
|
|
target_compile_features(${BIN_ARANGOD} PRIVATE cxx_constexpr)
|
|
|
|
install(
|
|
TARGETS ${BIN_ARANGOD}
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
|
)
|
|
|
|
install_config(arangod)
|
|
|
|
if (NOT USE_PRECOMPILED_V8)
|
|
add_dependencies(arangod zlibstatic v8_build)
|
|
else ()
|
|
add_dependencies(arangod zlibstatic)
|
|
endif ()
|
|
|
|
if (USE_JEMALLOC)
|
|
add_dependencies(arangod jemalloc)
|
|
endif ()
|
|
|
|
################################################################################
|
|
## arango-dfdb
|
|
################################################################################
|
|
|
|
install_command_alias(${BIN_ARANGOD}
|
|
${CMAKE_INSTALL_SBINDIR}
|
|
arango-dfdb
|
|
)
|
|
|
|
install_config(arango-dfdb)
|
|
|
|
################################################################################
|
|
## arango-secure-installation
|
|
################################################################################
|
|
|
|
install_command_alias(${BIN_ARANGOD}
|
|
${CMAKE_INSTALL_SBINDIR}
|
|
arango-secure-installation
|
|
)
|
|
|
|
install_config(arango-secure-installation)
|
|
|
|
################################################################################
|
|
## arango-init-database
|
|
################################################################################
|
|
|
|
install_command_alias(${BIN_ARANGOD}
|
|
${CMAKE_INSTALL_SBINDIR}
|
|
arango-init-database
|
|
)
|
|
|
|
install_config(arango-init-database)
|