1
0
Fork 0
arangodb/arangod/CMakeLists.txt

1064 lines
31 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 ${FLEX_EXECUTABLE} -L -oAql/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 ()
if (CMAKE_COMPILER_IS_GNUCC)
set_source_files_properties(Aql/tokens.cpp PROPERTIES COMPILE_FLAGS -Wno-sign-compare)
endif ()
################################################################################
## IResearch
################################################################################
find_package(IResearch REQUIRED)
add_library(arango_iresearch
STATIC
IResearch/ApplicationServerHelper.h IResearch/ApplicationServerHelper.cpp
IResearch/Containers.cpp IResearch/Containers.h
IResearch/IResearchAnalyzerFeature.cpp IResearch/IResearchAnalyzerFeature.h
IResearch/IResearchCommon.cpp IResearch/IResearchCommon.h
IResearch/IResearchKludge.cpp IResearch/IResearchKludge.h
IResearch/IResearchLink.cpp IResearch/IResearchLink.h
IResearch/IResearchLinkCoordinator.cpp IResearch/IResearchLinkCoordinator.h
IResearch/IResearchLinkHelper.cpp IResearch/IResearchLinkHelper.h
IResearch/IResearchLinkMeta.cpp IResearch/IResearchLinkMeta.h
IResearch/IResearchMMFilesLink.cpp IResearch/IResearchMMFilesLink.h
IResearch/IResearchRocksDBLink.cpp IResearch/IResearchRocksDBLink.h
IResearch/IResearchRocksDBRecoveryHelper.cpp
IResearch/IResearchRocksDBRecoveryHelper.h
IResearch/IResearchView.cpp IResearch/IResearchView.h
IResearch/IResearchVPackComparer.cpp IResearch/IResearchVPackComparer.h
IResearch/IResearchViewSort.cpp IResearch/IResearchViewSort.h
IResearch/IResearchViewCoordinator.cpp IResearch/IResearchViewCoordinator.h
IResearch/IResearchExpressionContext.cpp IResearch/IResearchExpressionContext.h
IResearch/IResearchViewMeta.cpp IResearch/IResearchViewMeta.h
IResearch/IResearchFeature.cpp IResearch/IResearchFeature.h
IResearch/IResearchDocument.cpp IResearch/IResearchDocument.h
IResearch/IResearchPrimaryKeyFilter.cpp IResearch/IResearchPrimaryKeyFilter.h
IResearch/IResearchFilterFactory.cpp IResearch/IResearchFilterFactory.h
IResearch/IResearchOrderFactory.cpp IResearch/IResearchOrderFactory.h
IResearch/VelocyPackHelper.cpp IResearch/VelocyPackHelper.h
IResearch/ExpressionFilter.cpp IResearch/ExpressionFilter.h
IResearch/AqlHelper.cpp IResearch/AqlHelper.h
RestHandler/RestAnalyzerHandler.cpp RestHandler/RestAnalyzerHandler.h
)
target_compile_definitions(arango_iresearch
PUBLIC "$<$<CONFIG:Debug>:IRESEARCH_DEBUG=1>"
)
target_include_directories(arango_iresearch
PUBLIC ${IRESEARCH_INCLUDE}
)
if (USE_ENTERPRISE)
target_include_directories(arango_iresearch
PUBLIC "${PROJECT_SOURCE_DIR}/${ENTERPRISE_INCLUDE_DIR}"
)
endif()
if(MSVC)
set(IRESEARCH_TARGET_DEPENDENCY iresearch-static-scrt) # use static + staticCRT to match ArangoDB
else()
set(IRESEARCH_TARGET_DEPENDENCY iresearch-static) # use static to match ArangoDB
endif()
target_link_libraries(arango_iresearch
${IRESEARCH_TARGET_DEPENDENCY}
s2 # needed for some includes
boost_locale # required by iResearch
)
add_dependencies(arango_iresearch
${IRESEARCH_TARGET_DEPENDENCY}
v8_build # for ICU required by iResearch
)
################################################################################
# llhttp
################################################################################
SET(LLHTTP_SOURCES
${PROJECT_SOURCE_DIR}/3rdParty/llhttp/src/api.c
${PROJECT_SOURCE_DIR}/3rdParty/llhttp/src/http.c
${PROJECT_SOURCE_DIR}/3rdParty/llhttp/src/llhttp.c
)
################################################################################
## 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(LIB_ARANGO_GRAPH_SOURCES
Aql/PruneExpressionEvaluator.cpp
Cluster/CallbackGuard.cpp
Cluster/ClusterEdgeCursor.cpp
Cluster/ClusterTraverser.cpp
Cluster/TraverserEngine.cpp
Cluster/TraverserEngineRegistry.cpp
Graph/AttributeWeightShortestPathFinder.cpp
Graph/BaseOptions.cpp
Graph/BreadthFirstEnumerator.cpp
Graph/ClusterTraverserCache.cpp
Graph/ConstantWeightShortestPathFinder.cpp
Graph/Graph.cpp
Graph/GraphManager.cpp
Graph/GraphOperations.cpp
Graph/KShortestPathsFinder.cpp
Graph/NeighborsEnumerator.cpp
Graph/PathEnumerator.cpp
Graph/ShortestPathFinder.cpp
Graph/ShortestPathOptions.cpp
Graph/ShortestPathResult.cpp
Graph/SingleServerEdgeCursor.cpp
Graph/SingleServerTraverser.cpp
Graph/Traverser.cpp
Graph/TraverserCache.cpp
Graph/TraverserCacheFactory.cpp
Graph/TraverserDocumentCache.cpp
Graph/TraverserOptions.cpp
InternalRestHandler/InternalRestTraverserHandler.cpp
RestHandler/RestGraphHandler.cpp
RestServer/TraverserEngineRegistryFeature.cpp
)
set(LIB_ARANGO_PREGEL_SOURCES
Pregel/AggregatorHandler.cpp
Pregel/AlgoRegistry.cpp
Pregel/Algos/AsyncSCC.cpp
Pregel/Algos/ConnectedComponents.cpp
Pregel/Algos/DMID/DMID.cpp
Pregel/Algos/EffectiveCloseness/EffectiveCloseness.cpp
Pregel/Algos/EffectiveCloseness/HLLCounter.cpp
Pregel/Algos/HITS.cpp
Pregel/Algos/LabelPropagation.cpp
Pregel/Algos/LineRank.cpp
Pregel/Algos/PageRank.cpp
Pregel/Algos/RecoveringPageRank.cpp
Pregel/Algos/SCC.cpp
Pregel/Algos/SLPA.cpp
Pregel/Algos/SSSP.cpp
Pregel/Algos/ShortestPath.cpp
Pregel/Conductor.cpp
Pregel/GraphStore.cpp
Pregel/IncomingCache.cpp
Pregel/IndexHelpers.cpp
Pregel/OutgoingCache.cpp
Pregel/PregelFeature.cpp
Pregel/Recovery.cpp
Pregel/Utils.cpp
Pregel/Worker-templates-algorithms.cpp
Pregel/Worker-templates-native-types.cpp
Pregel/Worker.cpp
Pregel/WorkerConfig.cpp
RestHandler/RestControlPregelHandler.cpp
RestHandler/RestPregelHandler.cpp
)
set(LIB_ARANGO_AQL_SOURCES
Aql/Aggregator.cpp
Aql/AllRowsFetcher.cpp
Aql/AqlFunctionFeature.cpp
Aql/AqlItemBlock.cpp
Aql/AqlItemBlockManager.cpp
Aql/AqlItemBlockUtils.cpp
Aql/AqlItemMatrix.cpp
Aql/AqlResult.cpp
Aql/AqlTransaction.cpp
Aql/AqlValue.cpp
Aql/AqlValueGroup.cpp
Aql/AqlValueMaterializer.cpp
Aql/Arithmetic.cpp
Aql/Ast.cpp
Aql/AstHelper.cpp
Aql/AstNode.cpp
Aql/AttributeAccessor.cpp
Aql/BaseExpressionContext.cpp
Aql/BindParameters.cpp
Aql/BlockCollector.cpp
Aql/BlocksWithClients.cpp
Aql/CalculationExecutor.cpp
Aql/ClusterNodes.cpp
Aql/CollectNode.cpp
Aql/CollectOptions.cpp
Aql/Collection.cpp
Aql/CollectionAccessingNode.cpp
Aql/Collections.cpp
Aql/Condition.cpp
Aql/ConditionFinder.cpp
Aql/ConstFetcher.cpp
Aql/ConstrainedSortExecutor.cpp
Aql/CostEstimate.cpp
Aql/CountCollectExecutor.cpp
Aql/DependencyProxy.cpp
Aql/DistinctCollectExecutor.cpp
Aql/DistributeConsumerNode.cpp
Aql/DistributeExecutor.cpp
Aql/DocumentExpressionContext.cpp
Aql/DocumentProducingHelper.cpp
Aql/DocumentProducingNode.cpp
Aql/EngineInfoContainerCoordinator.cpp
Aql/EngineInfoContainerDBServerServerBased.cpp
Aql/EnumerateCollectionExecutor.cpp
Aql/EnumerateListExecutor.cpp
Aql/ExecutionBlock.cpp
Aql/ExecutionBlockImpl.cpp
Aql/ExecutionEngine.cpp
Aql/ExecutionNode.cpp
Aql/ExecutionPlan.cpp
Aql/ExecutionState.cpp
Aql/ExecutionStats.cpp
Aql/ExecutorExpressionContext.cpp
Aql/ExecutorInfos.cpp
Aql/Expression.cpp
Aql/FilterExecutor.cpp
Aql/FixedVarExpressionContext.cpp
Aql/Function.cpp
Aql/Functions.cpp
Aql/GraphNode.cpp
Aql/Graphs.cpp
Aql/HashedCollectExecutor.cpp
Aql/IResearchViewExecutor.cpp
Aql/IResearchViewNode.cpp
Aql/IResearchViewOptimizerRules.cpp
Aql/IdExecutor.cpp
Aql/InAndOutRowExpressionContext.cpp
Aql/IndexExecutor.cpp
Aql/IndexHint.cpp
Aql/IndexNode.cpp
Aql/IndexNodeOptimizerRules.cpp
Aql/InputAqlItemRow.cpp
Aql/InsertModifier.cpp
Aql/KShortestPathsExecutor.cpp
Aql/KShortestPathsNode.cpp
Aql/LateMaterializedOptimizerRulesCommon.cpp
Aql/LimitExecutor.cpp
Aql/MaterializeExecutor.cpp
Aql/ModificationExecutor.cpp
Aql/ModificationExecutorHelpers.cpp
Aql/ModificationExecutorInfos.cpp
Aql/ModificationNodes.cpp
Aql/ModificationOptions.cpp
Aql/MultiDependencySingleRowFetcher.cpp
Aql/NoResultsExecutor.cpp
Aql/NodeFinder.cpp
Aql/Optimizer.cpp
Aql/OptimizerRules.cpp
Aql/OptimizerRulesCluster.cpp
Aql/OptimizerRulesFeature.cpp
Aql/OptimizerRulesReplaceFunctions.cpp
Aql/OutputAqlItemRow.cpp
Aql/Parser.cpp
Aql/Quantifier.cpp
Aql/Query.cpp
Aql/QueryCache.cpp
Aql/QueryExecutionState.cpp
Aql/QueryExpressionContext.cpp
Aql/QueryList.cpp
Aql/QueryOptions.cpp
Aql/QueryProfile.cpp
Aql/QueryRegistry.cpp
Aql/QueryResources.cpp
Aql/QuerySnippet.cpp
Aql/QueryString.cpp
Aql/Range.cpp
Aql/RemoveModifier.cpp
Aql/RegexCache.cpp
Aql/RegisterPlan.cpp
Aql/RemoteExecutor.cpp
Aql/RestAqlHandler.cpp
Aql/ReturnExecutor.cpp
Aql/ScatterExecutor.cpp
Aql/Scopes.cpp
Aql/ShadowAqlItemRow.cpp
Aql/ShardLocking.cpp
Aql/SharedAqlItemBlockPtr.cpp
Aql/SharedQueryState.cpp
Aql/ShortStringStorage.cpp
Aql/ShortestPathExecutor.cpp
Aql/ShortestPathNode.cpp
Aql/SimpleModifier.cpp
Aql/SingleRemoteModificationExecutor.cpp
Aql/SingleRowFetcher.cpp
Aql/SortCondition.cpp
Aql/SortExecutor.cpp
Aql/SortNode.cpp
Aql/SortRegister.cpp
Aql/SortedCollectExecutor.cpp
Aql/SortingGatherExecutor.cpp
Aql/SubqueryEndExecutionNode.cpp
Aql/SubqueryExecutor.cpp
Aql/SubqueryEndExecutor.cpp
Aql/SubqueryStartExecutionNode.cpp
Aql/SubqueryStartExecutor.cpp
Aql/TraversalConditionFinder.cpp
Aql/TraversalExecutor.cpp
Aql/TraversalNode.cpp
Aql/ParallelUnsortedGatherExecutor.cpp
Aql/UnsortedGatherExecutor.cpp
Aql/UpdateReplaceModifier.cpp
Aql/UpsertModifier.cpp
Aql/V8Executor.cpp
Aql/Variable.cpp
Aql/VariableGenerator.cpp
Aql/grammar.cpp
Aql/tokens.cpp
)
set(LIB_ARANGO_VOCBASE_SOURCES
Aql/PlanCache.cpp
Aql/QueryCursor.cpp
Replication/DatabaseReplicationApplier.cpp
Utils/CollectionNameResolver.cpp
Utils/CursorRepository.cpp
Utils/DatabaseGuard.cpp
Utils/SingleCollectionTransaction.cpp
VocBase/KeyGenerator.cpp
VocBase/KeyLockInfo.cpp
VocBase/LogicalCollection.cpp
VocBase/LogicalDataSource.cpp
VocBase/LogicalView.cpp
VocBase/ManagedDocumentResult.cpp
VocBase/Methods/AqlUserFunctions.cpp
VocBase/Methods/Collections.cpp
VocBase/Methods/Databases.cpp
VocBase/Methods/Indexes.cpp
VocBase/Methods/Tasks.cpp
VocBase/Methods/Transactions.cpp
VocBase/Methods/Ttl.cpp
VocBase/Methods/Upgrade.cpp
VocBase/Methods/UpgradeTasks.cpp
VocBase/Methods/Version.cpp
VocBase/ticks.cpp
VocBase/vocbase.cpp
VocBase/VocbaseInfo.cpp
)
set(LIB_ARANGO_UTILS_SOURCES
Utils/CollectionKeys.cpp
Utils/CollectionKeysRepository.cpp
Utils/ExecContext.cpp
Utils/FlushThread.cpp
Utils/OperationCursor.cpp
Utils/UrlHelper.cpp
${ENTERPRISE_FILES}
)
set(LIB_ARANGO_STORAGE_ENGINE_SOURCES
StorageEngine/EngineSelectorFeature.cpp
StorageEngine/HotBackup.cpp
StorageEngine/PhysicalCollection.cpp
StorageEngine/RocksDBOptionFeature.cpp
StorageEngine/TransactionCollection.cpp
StorageEngine/TransactionState.cpp
)
set(LIB_ARANGO_STORAGE_ENGINE_COMMON_SOURCES
StorageEngine/WalAccess.cpp
)
set(LIB_ARANGO_INDEXES_SOURCES
GeoIndex/Index.cpp
GeoIndex/Near.cpp
Indexes/Index.cpp
Indexes/IndexFactory.cpp
Indexes/IndexIterator.cpp
Indexes/SimpleAttributeEqualityMatcher.cpp
Indexes/SortedIndexAttributeMatcher.cpp
)
set(LIB_ARANGO_CACHE_SOURCES
Cache/BucketState.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/Table.cpp
Cache/Transaction.cpp
Cache/TransactionManager.cpp
Cache/TransactionalBucket.cpp
Cache/TransactionalCache.cpp
)
set(LIB_ARANGO_REPLICATION_SOURCES
Replication/DatabaseInitialSyncer.cpp
Replication/DatabaseTailingSyncer.cpp
Replication/GlobalInitialSyncer.cpp
Replication/GlobalReplicationApplier.cpp
Replication/GlobalTailingSyncer.cpp
Replication/InitialSyncer.cpp
Replication/ReplicationApplier.cpp
Replication/ReplicationApplierConfiguration.cpp
Replication/ReplicationApplierState.cpp
Replication/ReplicationClients.cpp
Replication/ReplicationFeature.cpp
Replication/Syncer.cpp
Replication/SyncerId.cpp
Replication/TailingSyncer.cpp
Replication/common-defines.cpp
Replication/utilities.cpp
)
set (LIB_ARANGO_METRICS_SOURCES
RestServer/Metrics.cpp
RestServer/MetricsFeature.cpp
RestHandler/RestMetricsHandler.cpp
)
set(LIB_ARANGO_AGENCY_SOURCES
Agency/AgentConfiguration.cpp
Agency/ResignLeadership.cpp
Agency/ActiveFailoverJob.cpp
Agency/AddFollower.cpp
Agency/AgencyComm.cpp
Agency/AgencyFeature.cpp
Agency/Agent.cpp
Agency/AgentCallback.cpp
Agency/CleanOutServer.cpp
Agency/Compactor.cpp
Agency/Constituent.cpp
Agency/FailedFollower.cpp
Agency/FailedLeader.cpp
Agency/FailedServer.cpp
Agency/Inception.cpp
Agency/Job.cpp
Agency/JobContext.cpp
Agency/MoveShard.cpp
Agency/Node.cpp
Agency/RemoveFollower.cpp
Agency/RestAgencyHandler.cpp
Agency/RestAgencyPrivHandler.cpp
Agency/State.cpp
Agency/Store.cpp
Agency/Supervision.cpp
Agency/v8-agency.cpp
)
set(LIB_ARANGO_V8SERVER_SOURCES
Transaction/V8Context.cpp
V8Server/FoxxQueuesFeature.cpp
V8Server/V8Context.cpp
V8Server/V8DealerFeature.cpp
V8Server/v8-actions.cpp
V8Server/v8-analyzers.cpp
V8Server/v8-collection-util.cpp
V8Server/v8-collection.cpp
V8Server/v8-dispatcher.cpp
V8Server/v8-general-graph.cpp
V8Server/v8-query.cpp
V8Server/v8-replication.cpp
V8Server/v8-statistics.cpp
V8Server/v8-ttl.cpp
V8Server/v8-user-functions.cpp
V8Server/v8-user-structures.cpp
V8Server/v8-users.cpp
V8Server/v8-util.cpp
V8Server/v8-views.cpp
V8Server/v8-vocbase.cpp
V8Server/v8-voccursor.cpp
V8Server/v8-vocindex.cpp
)
set(LIB_ARANGO_NETWORK_SOURCES
Network/ClusterUtils.cpp
Network/ConnectionPool.cpp
Network/Methods.cpp
Network/NetworkFeature.cpp
Network/Utils.cpp
)
set(LIB_ARANGOSERVER_SOURCES
Actions/ActionFeature.cpp
Actions/RestActionHandler.cpp
Actions/actions.cpp
Auth/Common.cpp
Auth/TokenCache.cpp
Auth/User.cpp
Auth/UserManager.cpp
Cluster/Action.cpp
Cluster/ActionBase.cpp
Cluster/ActionDescription.cpp
Cluster/AgencyCallback.cpp
Cluster/AgencyCallbackRegistry.cpp
Cluster/AgencyPaths.cpp
Cluster/ClusterCollectionCreationInfo.cpp
Cluster/ClusterComm.cpp
Cluster/ClusterFeature.cpp
Cluster/ClusterHelpers.cpp
Cluster/ClusterInfo.cpp
Cluster/ClusterRepairDistributeShardsLike.cpp
Cluster/ClusterRepairOperations.cpp
Cluster/ClusterUpgradeFeature.cpp
Cluster/ClusterTrxMethods.cpp
Cluster/ClusterTypes.cpp
Cluster/CreateCollection.cpp
Cluster/CreateDatabase.cpp
Cluster/CriticalThread.cpp
Cluster/DBServerAgencySync.cpp
Cluster/DropCollection.cpp
Cluster/DropDatabase.cpp
Cluster/DropIndex.cpp
Cluster/EnsureIndex.cpp
Cluster/FollowerInfo.cpp
Cluster/HeartbeatThread.cpp
Cluster/Maintenance.cpp
Cluster/MaintenanceFeature.cpp
Cluster/MaintenanceRestHandler.cpp
Cluster/MaintenanceWorker.cpp
Cluster/NonAction.cpp
Cluster/PathComponent.cpp
Cluster/RebootTracker.cpp
Cluster/ReplicationTimeoutFeature.cpp
Cluster/ResignShardLeadership.cpp
Cluster/RestAgencyCallbacksHandler.cpp
Cluster/RestClusterHandler.cpp
Cluster/ServerState.cpp
Cluster/SynchronizeShard.cpp
Cluster/TakeoverShardLeadership.cpp
Cluster/UpdateCollection.cpp
Cluster/v8-cluster.cpp
FeaturePhases/AgencyFeaturePhase.cpp
FeaturePhases/AqlFeaturePhase.cpp
FeaturePhases/BasicFeaturePhaseServer.cpp
FeaturePhases/ClusterFeaturePhase.cpp
FeaturePhases/DatabaseFeaturePhase.cpp
FeaturePhases/FinalFeaturePhase.cpp
FeaturePhases/FoxxFeaturePhase.cpp
FeaturePhases/ServerFeaturePhase.cpp
FeaturePhases/V8FeaturePhase.cpp
GeneralServer/Acceptor.cpp
GeneralServer/AcceptorTcp.cpp
GeneralServer/AsyncJobManager.cpp
GeneralServer/AuthenticationFeature.cpp
GeneralServer/CommTask.cpp
GeneralServer/GeneralCommTask.cpp
GeneralServer/GeneralServer.cpp
GeneralServer/GeneralServerFeature.cpp
GeneralServer/HttpCommTask.cpp
GeneralServer/IoContext.cpp
GeneralServer/RestHandler.cpp
GeneralServer/RestHandlerFactory.cpp
GeneralServer/ServerSecurityFeature.cpp
GeneralServer/SslServerFeature.cpp
GeneralServer/Task.cpp
GeneralServer/VstCommTask.cpp
RestHandler/RestAdminDatabaseHandler.cpp
RestHandler/RestAdminExecuteHandler.cpp
RestHandler/RestAdminLogHandler.cpp
RestHandler/RestAdminRoutingHandler.cpp
RestHandler/RestAdminServerHandler.cpp
RestHandler/RestAdminStatisticsHandler.cpp
RestHandler/RestAqlFunctionsHandler.cpp
RestHandler/RestAqlReloadHandler.cpp
RestHandler/RestAqlUserFunctionsHandler.cpp
RestHandler/RestAuthHandler.cpp
RestHandler/RestAuthReloadHandler.cpp
RestHandler/RestBaseHandler.cpp
RestHandler/RestBatchHandler.cpp
RestHandler/RestCursorHandler.cpp
RestHandler/RestDatabaseHandler.cpp
RestHandler/RestDebugHandler.cpp
RestHandler/RestDocumentHandler.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/RestQueryCacheHandler.cpp
RestHandler/RestQueryHandler.cpp
RestHandler/RestRepairHandler.cpp
RestHandler/RestShutdownHandler.cpp
RestHandler/RestSimpleHandler.cpp
RestHandler/RestSimpleQueryHandler.cpp
RestHandler/RestStatusHandler.cpp
RestHandler/RestTasksHandler.cpp
RestHandler/RestTimeHandler.cpp
RestHandler/RestTransactionHandler.cpp
RestHandler/RestTtlHandler.cpp
RestHandler/RestUploadHandler.cpp
RestHandler/RestUsersHandler.cpp
RestHandler/RestVersionHandler.cpp
RestHandler/RestViewHandler.cpp
RestHandler/RestVocbaseBaseHandler.cpp
RestHandler/RestWalAccessHandler.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/FileDescriptorsFeature.cpp
RestServer/FlushFeature.cpp
RestServer/FortuneFeature.cpp
RestServer/FrontendFeature.cpp
RestServer/InitDatabaseFeature.cpp
RestServer/LanguageCheckFeature.cpp
RestServer/LockfileFeature.cpp
RestServer/QueryRegistryFeature.cpp
RestServer/ScriptFeature.cpp
RestServer/ServerFeature.cpp
RestServer/ServerIdFeature.cpp
RestServer/SystemDatabaseFeature.cpp
RestServer/TtlFeature.cpp
RestServer/UpgradeFeature.cpp
RestServer/ViewTypesFeature.cpp
RestServer/VocbaseContext.cpp
Scheduler/Scheduler.cpp
Scheduler/SchedulerFeature.cpp
Scheduler/SupervisedScheduler.cpp
Sharding/ShardDistributionReporter.cpp
Sharding/ShardingFeature.cpp
Sharding/ShardingInfo.cpp
Sharding/ShardingStrategy.cpp
Sharding/ShardingStrategyDefault.cpp
Statistics/ConnectionStatistics.cpp
Statistics/Descriptions.cpp
Statistics/RequestStatistics.cpp
Statistics/ServerStatistics.cpp
Statistics/StatisticsFeature.cpp
Statistics/StatisticsWorker.cpp
Transaction/ClusterUtils.cpp
Transaction/Context.cpp
Transaction/CountCache.cpp
Transaction/Helpers.cpp
Transaction/Manager.cpp
Transaction/ManagerFeature.cpp
Transaction/Methods.cpp
Transaction/Options.cpp
Transaction/SmartContext.cpp
Transaction/StandaloneContext.cpp
Transaction/Status.cpp
)
set(LIB_ARANGO_COMMON_REST_HANDLER_SOURCES
RestHandler/RestCollectionHandler.cpp
RestHandler/RestReplicationHandler.cpp
)
set(LIB_ARANGO_CLUSTER_METHODS_SOURCES
Cluster/ClusterMethods.cpp
Cluster/ClusterTtlMethods.cpp
)
if (USE_MAINTAINER_MODE)
set(LIB_ARANGOSERVER_SOURCES ${LIB_ARANGOSERVER_SOURCES} RestHandler/RestTestHandler.cpp)
endif()
if (NOT MSVC)
set(LIB_ARANGOSERVER_SOURCES ${LIB_ARANGOSERVER_SOURCES} GeneralServer/AcceptorUnixDomain.cpp)
endif()
include(ClusterEngine/CMakeLists.txt)
include(RocksDBEngine/CMakeLists.txt)
include(MMFiles/CMakeLists.txt)
add_library(arango_graph STATIC
${LIB_ARANGO_GRAPH_SOURCES}
${ADDITIONAL_LIB_ARANGO_GRAPH_SOURCES}
)
add_library(arango_pregel STATIC
${LIB_ARANGO_PREGEL_SOURCES}
)
add_library(arango_aql STATIC
${LIB_ARANGO_AQL_SOURCES}
${ADDITIONAL_LIB_ARANGO_AQL_SOURCES}
)
add_library(arango_vocbase STATIC
${LIB_ARANGO_VOCBASE_SOURCES}
${ADDITIONAL_LIB_ARANGO_VOCBASE_SOURCES}
)
add_library(arango_v8server STATIC
${LIB_ARANGO_V8SERVER_SOURCES}
)
add_library(arango_utils STATIC
${LIB_ARANGO_UTILS_SOURCES}
)
add_library(arango_storage_engine STATIC
${LIB_ARANGO_STORAGE_ENGINE_SOURCES}
)
# arango_storage_engine uses arango_mmfiles and arango_rocksdb.
# In turn, arango_storage_engine_common provides something for both.
add_library(arango_storage_engine_common STATIC
${LIB_ARANGO_STORAGE_ENGINE_COMMON_SOURCES}
)
add_library(arango_indexes STATIC
${LIB_ARANGO_INDEXES_SOURCES}
)
add_library(arango_cache STATIC
${LIB_ARANGO_CACHE_SOURCES}
)
add_library(arango_replication STATIC
${LIB_ARANGO_REPLICATION_SOURCES}
)
add_library(arango_metrics STATIC
${LIB_ARANGO_METRICS_SOURCES}
)
add_library(arango_agency STATIC
${LIB_ARANGO_AGENCY_SOURCES}
)
add_library(arangoserver STATIC
${LIB_ARANGOSERVER_SOURCES}
${ADDITIONAL_LIB_ARANGOSERVER_SOURCES}
${ProductVersionFiles}
)
add_library(arango_network STATIC
${LIB_ARANGO_NETWORK_SOURCES}
)
add_library(arango_mmfiles STATIC
${MMFILES_SOURCES}
)
add_library(arango_rocksdb STATIC
${ROCKSDB_SOURCES}
${ADDITIONAL_LIB_ARANGO_ROCKSDB_SOURCES}
)
add_library(arango_cluster_engine STATIC
${CLUSTER_ENGINE_SOURCES}
)
add_library(arango_common_rest_handler STATIC
${LIB_ARANGO_COMMON_REST_HANDLER_SOURCES}
)
add_library(arango_cluster_methods STATIC
${LIB_ARANGO_CLUSTER_METHODS_SOURCES}
${ADDITIONAL_LIB_ARANGO_CLUSTER_METHODS_SOURCES}
)
add_library(llhttp STATIC
${LLHTTP_SOURCES}
)
target_include_directories(llhttp PUBLIC "${PROJECT_SOURCE_DIR}/3rdParty/llhttp/include")
# Note that arango_geo publicly exports the /J compile option for MSVC, because
# s2 requires /J to be set on Windows.
# /J makes char unsigned.
# Thus all libraries depending on arango_geo will be compiled with /J (and need
# to, if they include s2 headers).
# I think it would safer to compile everything with /J, so we would not get a
# mixture of signed and unsigned char interpretations in the same binary.
# However, just setting
# add_compile_options(/J)
# does not work, either, because
# C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\atlmfc\include\atldef.h(94): fatal error C1189: #error: ATL does not support compilation with /J or _CHAR_UNSIGNED flag enabled [C:\vm04-windows\oskar\work\ArangoDB\build\lib\arango.vcxproj]
# .
target_link_libraries(arango_agency arango)
target_link_libraries(arango_agency arango_iresearch)
target_link_libraries(arango_agency arango_metrics)
target_link_libraries(arango_aql arango_geo)
target_link_libraries(arango_aql arango_graph)
target_link_libraries(arango_aql arango_indexes)
target_link_libraries(arango_aql arango_iresearch)
target_link_libraries(arango_aql arango_network)
target_link_libraries(arango_cache arango)
target_link_libraries(arango_cache boost_system)
target_link_libraries(arango_cluster_engine arango_indexes)
target_link_libraries(arango_cluster_engine boost_boost)
target_link_libraries(arango_cluster_methods arango)
target_link_libraries(arango_cluster_methods arango_network)
target_link_libraries(arango_common_rest_handler arango_cluster_methods)
target_link_libraries(arango_common_rest_handler arango_utils)
target_link_libraries(arango_graph arango_cache)
target_link_libraries(arango_graph arango_vocbase)
target_link_libraries(arango_graph boost_boost)
target_link_libraries(arango_indexes arango_geo)
target_link_libraries(arango_indexes boost_boost)
target_link_libraries(arango_iresearch arango_indexes)
target_link_libraries(arango_iresearch arango_cluster_engine)
target_link_libraries(arango_metrics arango)
target_link_libraries(arango_mmfiles arango_geo)
target_link_libraries(arango_mmfiles arango_indexes)
target_link_libraries(arango_mmfiles arango_storage_engine_common)
target_link_libraries(arango_mmfiles arango_utils)
target_link_libraries(arango_mmfiles boost_boost)
target_link_libraries(arango_mmfiles boost_system)
target_link_libraries(arango_mmfiles llhttp)
target_link_libraries(arango_network boost_boost)
target_link_libraries(arango_network fuerte)
target_link_libraries(arango_network llhttp)
target_link_libraries(arango_pregel arango_agency)
target_link_libraries(arango_pregel boost_boost)
target_link_libraries(arango_pregel boost_system)
target_link_libraries(arango_replication arango_storage_engine)
target_link_libraries(arango_replication arango_utils)
target_link_libraries(arango_rocksdb ${ROCKSDB_LIBS})
target_link_libraries(arango_rocksdb arango_cache)
target_link_libraries(arango_rocksdb arango_common_rest_handler)
target_link_libraries(arango_rocksdb arango_geo)
target_link_libraries(arango_rocksdb arango_indexes)
target_link_libraries(arango_rocksdb arango_storage_engine_common)
target_link_libraries(arango_rocksdb boost_boost)
if (USE_ENTERPRISE)
# this is required for hotbackup. Views need to be flushed.
target_include_directories(arango_rocksdb
PUBLIC ${IRESEARCH_INCLUDE}
)
endif()
target_link_libraries(arango_storage_engine arango_cluster_engine)
target_link_libraries(arango_storage_engine arango_cluster_methods)
target_link_libraries(arango_storage_engine arango_mmfiles)
target_link_libraries(arango_storage_engine arango_rocksdb)
target_link_libraries(arango_utils boost_boost)
target_link_libraries(arango_v8server arango_agency)
target_link_libraries(arango_v8server arango_iresearch)
target_link_libraries(arango_v8server arango_replication)
target_link_libraries(arango_v8server arango_v8 ${V8_LIBS})
target_link_libraries(arango_vocbase arango_agency)
target_link_libraries(arango_vocbase arango_cluster_methods)
target_link_libraries(arango_vocbase arango_indexes)
target_link_libraries(arango_vocbase arango_replication)
target_link_libraries(arango_vocbase boost_system)
target_link_libraries(arangoserver arango_agency)
target_link_libraries(arangoserver arango_aql)
target_link_libraries(arangoserver arango_cluster_engine)
target_link_libraries(arangoserver arango_cluster_methods)
target_link_libraries(arangoserver arango_common_rest_handler)
target_link_libraries(arangoserver arango_geo)
target_link_libraries(arangoserver arango_graph)
target_link_libraries(arangoserver arango_indexes)
target_link_libraries(arangoserver arango_iresearch)
target_link_libraries(arangoserver arango_metrics)
target_link_libraries(arangoserver arango_network)
target_link_libraries(arangoserver arango_pregel)
target_link_libraries(arangoserver arango_replication)
target_link_libraries(arangoserver arango_storage_engine)
target_link_libraries(arangoserver arango_utils)
target_link_libraries(arangoserver arango_v8server)
target_link_libraries(arangoserver arango_vocbase)
target_link_libraries(arangoserver boost_boost)
target_link_libraries(arangoserver
${LINENOISE_LIBS} # Is this ever anything but empty?
${MSVC_LIBS}
)
if (MSVC)
target_link_libraries(arangoserver Bcrypt.lib)
endif()
if (USE_ENTERPRISE)
add_library(arango_rclone STATIC
${LIB_RCLONE_SOURCES}
)
target_link_libraries(arango_rclone arango)
target_link_libraries(arango_rocksdb arango_rclone)
endif()
if (USE_ENTERPRISE)
add_definitions(-DUSE_ENTERPRISE=1)
if (MSVC)
target_link_libraries(arangoserver
Wldap32.lib
)
else()
target_link_libraries(arangoserver
${LDAP_LIB}
${LBER_LIB}
${OPENSSL_LIBRARIES}
)
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 arango_iresearch)
else ()
add_dependencies(arangod zlibstatic arango_iresearch)
endif ()
if (USE_JEMALLOC)
add_dependencies(arangod jemalloc)
endif ()
foreach(TARGET
arango_agency
arango_aql
arango_cache
arango_cluster_engine
arango_cluster_methods
arango_common_rest_handler
arango_graph
arango_indexes
arango_metrics
arango_mmfiles
arango_pregel
arango_replication
arango_rocksdb
arango_storage_engine
arango_storage_engine_common
arango_utils
arango_v8server
arango_vocbase
arangod
arangoserver
)
target_include_directories(${TARGET} PUBLIC "${PROJECT_SOURCE_DIR}/${ENTERPRISE_INCLUDE_DIR}")
if (USE_FAIL_ON_WARNINGS)
if (MSVC)
target_compile_options(${TARGET} PRIVATE /WX /D_WINSOCK_DEPRECATED_NO_WARNINGS)
else ()
target_compile_options(${TARGET} PRIVATE -Werror -Wno-error=deprecated-declarations)
endif ()
endif ()
endforeach()
################################################################################
## 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)