# -*- 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) 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/EnumerateCollectionBlock.cpp Aql/EnumerateListBlock.cpp Aql/ExecutionBlock.cpp Aql/ExecutionEngine.cpp Aql/ExecutionNode.cpp Aql/ExecutionPlan.cpp Aql/ExecutionStats.cpp Aql/Executor.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/QueryRegistry.cpp Aql/QueryResources.cpp Aql/Range.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/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/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/AuthenticationHandler.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/VppCommTask.cpp Graph/AttributeWeightShortestPathFinder.cpp Graph/BaseOptions.cpp Graph/BreadthFirstEnumerator.cpp Graph/ConstantWeightShortestPathFinder.cpp Graph/ClusterTraverserCache.cpp Graph/NeighborsEnumerator.cpp Graph/ShortestPathOptions.cpp Graph/ShortestPathResult.cpp Graph/SingleServerEdgeCursor.cpp Indexes/Index.cpp Indexes/IndexIterator.cpp Indexes/SimpleAttributeEqualityMatcher.cpp InternalRestHandler/InternalRestTraverserHandler.cpp Pregel/AggregatorHandler.cpp Pregel/AlgoRegistry.cpp Pregel/Algos/SSSP.cpp Pregel/Algos/ShortestPath.cpp Pregel/Algos/PageRank.cpp Pregel/Algos/RecoveringPageRank.cpp Pregel/Algos/LineRank.cpp Pregel/Algos/ConnectedComponents.cpp Pregel/Algos/SCC.cpp Pregel/Algos/AsyncSCC.cpp Pregel/Algos/HITS.cpp Pregel/Algos/LabelPropagation.cpp Pregel/Algos/DMID/DMID.cpp Pregel/Algos/EffectiveCloseness/EffectiveCloseness.cpp Pregel/Algos/EffectiveCloseness/HLLCounter.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/RestAqlFunctionsHandler.cpp RestHandler/RestAuthHandler.cpp RestHandler/RestBaseHandler.cpp RestHandler/RestBatchHandler.cpp RestHandler/RestCursorHandler.cpp RestHandler/RestDebugHandler.cpp RestHandler/RestDemoHandler.cpp RestHandler/RestDocumentHandler.cpp RestHandler/RestEchoHandler.cpp RestHandler/RestEdgesHandler.cpp RestHandler/RestEngineHandler.cpp RestHandler/RestImportHandler.cpp RestHandler/RestJobHandler.cpp RestHandler/RestPleaseUpgradeHandler.cpp RestHandler/RestPregelHandler.cpp RestHandler/RestQueryCacheHandler.cpp RestHandler/RestQueryHandler.cpp RestHandler/RestShutdownHandler.cpp RestHandler/RestSimpleHandler.cpp RestHandler/RestSimpleQueryHandler.cpp RestHandler/RestUploadHandler.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/StandaloneContext.cpp Transaction/V8Context.cpp Utils/CollectionKeys.cpp Utils/CollectionKeysRepository.cpp Utils/CollectionNameResolver.cpp Utils/Cursor.cpp Utils/CursorRepository.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-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/AuthInfo.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/TransactionManager.cpp VocBase/Traverser.cpp VocBase/TraverserCache.cpp VocBase/TraverserCacheFactory.cpp VocBase/TraverserDocumentCache.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}) if (USE_SSL) target_compile_definitions(${BIN_ARANGOD} PUBLIC "ARANGODB_SSL_ENABLED=1") endif() 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) 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 () ################################################################################ ## 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)