mirror of https://gitee.com/bigwinds/arangodb
351 lines
11 KiB
CMake
351 lines
11 KiB
CMake
# -*- mode: CMAKE; -*-
|
|
|
|
include_directories(.)
|
|
|
|
################################################################################
|
|
## 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_SOURCE_DIR}/lib/V8/v8-json.cpp
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
COMMAND ${FLEX_EXECUTABLE} -L -olib/V8/v8-json.cpp lib/V8/v8-json.ll
|
|
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/lib/V8/v8-json.ll
|
|
VERBATIM
|
|
)
|
|
|
|
add_custom_target(clean_lib_autogenerated
|
|
COMMAND rm -f ${CMAKE_SOURCE_DIR}/lib/V8/v8-json.cpp)
|
|
|
|
list(APPEND CLEAN_AUTOGENERATED_FILES clean_lib_autogenerated)
|
|
set(CLEAN_AUTOGENERATED_FILES ${CLEAN_AUTOGENERATED_FILES} PARENT_SCOPE)
|
|
endif ()
|
|
|
|
|
|
if (CMAKE_COMPILER_IS_GNUCC)
|
|
set_source_files_properties(V8/v8-json.cpp PROPERTIES COMPILE_FLAGS -Wno-sign-compare)
|
|
endif ()
|
|
|
|
################################################################################
|
|
## LIB_ARANGO
|
|
################################################################################
|
|
|
|
if (MSVC)
|
|
set(LIB_ARANGO_MSVC
|
|
Basics/locks-win32.cpp
|
|
Basics/memory-map-win32.cpp
|
|
Basics/terminal-utils-win32.cpp
|
|
Basics/threads-win32.cpp
|
|
Basics/win-utils.cpp
|
|
Zip/iowin32.cpp
|
|
ApplicationFeatures/WindowsServiceFeature.cpp
|
|
)
|
|
else ()
|
|
set(LIB_ARANGO_POSIX
|
|
ApplicationFeatures/DaemonFeature.cpp
|
|
ApplicationFeatures/SupervisorFeature.cpp
|
|
Basics/locks-posix.cpp
|
|
Basics/memory-map-posix.cpp
|
|
Basics/terminal-utils-posix.cpp
|
|
Basics/threads-posix.cpp
|
|
Endpoint/EndpointUnixDomain.cpp
|
|
Endpoint/EndpointSrv.cpp
|
|
)
|
|
endif ()
|
|
|
|
set(LIB_ARANGO_LINENOISE
|
|
${PROJECT_SOURCE_DIR}/3rdParty/linenoise-ng/src/ConvertUTF.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/linenoise-ng/src/linenoise.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/linenoise-ng/src/wcwidth.cpp
|
|
Utilities/LinenoiseShell.cpp
|
|
)
|
|
|
|
set(LIB_ARANGO_VPACK
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/AttributeTranslator.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Builder.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Collection.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Compare.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Dumper.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Exception.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/HexDump.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Iterator.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Options.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Parser.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Serializable.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Slice.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/SliceStaticData.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/StringRef.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Utf8Helper.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Value.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/ValueType.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Validator.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/Version.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/asm-functions.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/asm-utf8check.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/fpconv.cpp
|
|
${PROJECT_SOURCE_DIR}/3rdParty/velocypack/src/velocypack-common.cpp
|
|
${PROJECT_SOURCE_DIR}/lib/Basics/xxhash.cpp
|
|
)
|
|
|
|
add_definitions("-DARCHITECTURE_OPTIMIZATIONS=${ARCHITECTURE_OPTIMIZATIONS}")
|
|
|
|
if (ASM_OPTIMIZATIONS AND CMAKE_TARGET_ARCHITECTURE_CODE MATCHES "x86_64")
|
|
if (DARWIN)
|
|
set(LIB_ASM_SOURCES Basics/crc1.S)
|
|
else()
|
|
set(LIB_ASM_SOURCES Basics/crc5.S)
|
|
endif()
|
|
|
|
add_definitions("-DENABLE_ASM_CRC32=1")
|
|
message(STATUS "Will compile in hand-optimized assembler code for CRC32.")
|
|
else()
|
|
add_definitions("-DENABLE_ASM_CRC32=0")
|
|
message(STATUS "Will not compile in hand-optimized assembler code for CRC32.")
|
|
endif()
|
|
|
|
if (USE_LOCAL_CLOCK_GETTIME)
|
|
set(LIB_CLOCK_GETTIME Utilities/clock_gettime.cpp)
|
|
endif ()
|
|
|
|
add_library(${LIB_ARANGO} STATIC
|
|
${LIB_ARANGO_APPLE}
|
|
${LIB_ARANGO_MSVC}
|
|
${LIB_ARANGO_POSIX}
|
|
${LIB_ARANGO_LINENOISE}
|
|
${LIB_ARANGO_VPACK}
|
|
${LIB_CLOCK_GETTIME}
|
|
${LIB_ASM_SOURCES}
|
|
ApplicationFeatures/ApplicationFeature.cpp
|
|
ApplicationFeatures/ApplicationFeaturePhase.cpp
|
|
ApplicationFeatures/ApplicationServer.cpp
|
|
ApplicationFeatures/AgencyPhase.cpp
|
|
ApplicationFeatures/CommunicationPhase.cpp
|
|
ApplicationFeatures/AQLPhase.cpp
|
|
ApplicationFeatures/BasicPhase.cpp
|
|
ApplicationFeatures/ClusterPhase.cpp
|
|
ApplicationFeatures/DatabasePhase.cpp
|
|
ApplicationFeatures/FinalPhase.cpp
|
|
ApplicationFeatures/FoxxPhase.cpp
|
|
ApplicationFeatures/GreetingsPhase.cpp
|
|
ApplicationFeatures/ServerPhase.cpp
|
|
ApplicationFeatures/V8Phase.cpp
|
|
ApplicationFeatures/V8ShellPhase.cpp
|
|
ApplicationFeatures/ConfigFeature.cpp
|
|
ApplicationFeatures/EnvironmentFeature.cpp
|
|
ApplicationFeatures/GreetingsFeature.cpp
|
|
ApplicationFeatures/LanguageFeature.cpp
|
|
ApplicationFeatures/MaxMapCountFeature.cpp
|
|
ApplicationFeatures/NonceFeature.cpp
|
|
ApplicationFeatures/PageSizeFeature.cpp
|
|
ApplicationFeatures/PrivilegeFeature.cpp
|
|
ApplicationFeatures/RocksDBOptionFeature.cpp
|
|
ApplicationFeatures/ShellColorsFeature.cpp
|
|
ApplicationFeatures/ShutdownFeature.cpp
|
|
ApplicationFeatures/TempFeature.cpp
|
|
ApplicationFeatures/V8PlatformFeature.cpp
|
|
ApplicationFeatures/VersionFeature.cpp
|
|
Basics/ArangoGlobalContext.cpp
|
|
Basics/AttributeNameParser.cpp
|
|
Basics/ConditionLocker.cpp
|
|
Basics/ConditionVariable.cpp
|
|
Basics/DataProtector.cpp
|
|
Basics/Exceptions.cpp
|
|
Basics/FileUtils.cpp
|
|
Basics/FunctionUtils.cpp
|
|
Basics/HybridLogicalClock.cpp
|
|
Basics/LdapUrlParser.cpp
|
|
Basics/LocalTaskQueue.cpp
|
|
Basics/Mutex.cpp
|
|
Basics/Nonce.cpp
|
|
Basics/ReadWriteLock.cpp
|
|
Basics/Result.cpp
|
|
Basics/FileResult.cpp
|
|
Basics/RocksDBLogger.cpp
|
|
Basics/RocksDBUtils.cpp
|
|
Basics/SharedPRNG.cpp
|
|
Basics/StaticStrings.cpp
|
|
Basics/StringBuffer.cpp
|
|
Basics/StringHeap.cpp
|
|
Basics/StringUtils.cpp
|
|
Basics/Thread.cpp
|
|
Basics/Utf8Helper.cpp
|
|
Basics/VelocyPackDumper.cpp
|
|
Basics/VelocyPackHelper.cpp
|
|
Basics/application-exit.cpp
|
|
Basics/CleanupFunctions.cpp
|
|
Basics/conversions.cpp
|
|
Basics/csv.cpp
|
|
Basics/datetime.cpp
|
|
Basics/debugging.cpp
|
|
Basics/error.cpp
|
|
Basics/fasthash.cpp
|
|
Basics/files.cpp
|
|
Basics/fpconv.cpp
|
|
Basics/hashes.cpp
|
|
Basics/json.cpp
|
|
Basics/levenshtein.cpp
|
|
Basics/memory.cpp
|
|
Basics/mimetypes.cpp
|
|
Basics/prime-numbers.cpp
|
|
Basics/process-utils.cpp
|
|
Basics/socket-utils.cpp
|
|
Basics/system-functions.cpp
|
|
Basics/terminal-utils.cpp
|
|
Basics/tri-strings.cpp
|
|
Basics/tri-zip.cpp
|
|
Basics/vector.cpp
|
|
Basics/voc-errors.cpp
|
|
Basics/exitcodes.cpp
|
|
Basics/voc-mimetypes.cpp
|
|
Basics/xxhash.cpp
|
|
Endpoint/Endpoint.cpp
|
|
Endpoint/EndpointIp.cpp
|
|
Endpoint/EndpointIpV4.cpp
|
|
Endpoint/EndpointIpV6.cpp
|
|
Endpoint/EndpointList.cpp
|
|
Futures/Future.cpp
|
|
Logger/LogAppender.cpp
|
|
Logger/LogAppenderFile.cpp
|
|
Logger/LogAppenderSyslog.cpp
|
|
Logger/LogBuffer.cpp
|
|
Logger/LogLevel.cpp
|
|
Logger/LogThread.cpp
|
|
Logger/LogTopic.cpp
|
|
Logger/Logger.cpp
|
|
Logger/LoggerBufferFeature.cpp
|
|
Logger/LoggerFeature.cpp
|
|
Logger/LoggerStream.cpp
|
|
Logger/LogTimeFormat.cpp
|
|
Maskings/AttributeMasking.cpp
|
|
Maskings/Collection.cpp
|
|
Maskings/Maskings.cpp
|
|
Maskings/Path.cpp
|
|
Maskings/RandomMask.cpp
|
|
Maskings/RandomStringMask.cpp
|
|
ProgramOptions/Option.cpp
|
|
ProgramOptions/Parameters.cpp
|
|
ProgramOptions/ProgramOptions.cpp
|
|
ProgramOptions/Section.cpp
|
|
ProgramOptions/Translator.cpp
|
|
ProgramOptions/IniFileParser.cpp
|
|
Random/RandomFeature.cpp
|
|
Random/RandomGenerator.cpp
|
|
Random/UniformCharacter.cpp
|
|
Rest/GeneralRequest.cpp
|
|
Rest/GeneralResponse.cpp
|
|
Rest/VstRequest.cpp
|
|
Rest/VstResponse.cpp
|
|
Rest/HttpRequest.cpp
|
|
Rest/HttpResponse.cpp
|
|
Rest/InitializeRest.cpp
|
|
Rest/Version.cpp
|
|
SimpleHttpClient/ClientConnection.cpp
|
|
SimpleHttpClient/Communicator.cpp
|
|
SimpleHttpClient/GeneralClientConnection.cpp
|
|
SimpleHttpClient/SimpleHttpClient.cpp
|
|
SimpleHttpClient/SimpleHttpResult.cpp
|
|
SimpleHttpClient/SslClientConnection.cpp
|
|
Ssl/SslFeature.cpp
|
|
Ssl/SslInterface.cpp
|
|
Ssl/SslServerFeature.cpp
|
|
Ssl/ssl-helper.cpp
|
|
Utilities/LineEditor.cpp
|
|
Utilities/ScriptLoader.cpp
|
|
Utilities/ShellBase.cpp
|
|
Zip/ioapi.cpp
|
|
Zip/unzip.cpp
|
|
Zip/zip.cpp
|
|
${ADDITIONAL_LIB_ARANGO_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(${LIB_ARANGO}
|
|
s2
|
|
boost_system
|
|
boost_boost
|
|
)
|
|
|
|
# Enterprise
|
|
if (USE_ENTERPRISE)
|
|
target_compile_definitions(${LIB_ARANGO} PUBLIC "-DUSE_ENTERPRISE=1")
|
|
target_include_directories(${LIB_ARANGO} PUBLIC "${PROJECT_SOURCE_DIR}/${ENTERPRISE_INCLUDE_DIR}")
|
|
endif()
|
|
|
|
################################################################################
|
|
## LIB_ARANGO_GEO
|
|
################################################################################
|
|
|
|
add_library(${LIB_ARANGO_GEO} STATIC
|
|
Geo/Ellipsoid.cpp
|
|
Geo/GeoJson.cpp
|
|
Geo/GeoParams.cpp
|
|
Geo/ShapeContainer.cpp
|
|
Geo/Shapes.cpp
|
|
Geo/Utils.cpp
|
|
Geo/karney/geodesic.c
|
|
Geo/S2/S2MultiPointRegion.cpp
|
|
Geo/S2/S2MultiPolyline.cpp
|
|
)
|
|
|
|
target_link_libraries(${LIB_ARANGO_GEO}
|
|
${LIB_ARANGO}
|
|
boost_system
|
|
boost_boost
|
|
)
|
|
|
|
if (WINDOWS)
|
|
target_compile_options(${LIB_ARANGO_GEO} PUBLIC "-J")
|
|
endif()
|
|
|
|
# Enterprise
|
|
if (USE_ENTERPRISE)
|
|
target_compile_definitions(${LIB_ARANGO_GEO} PUBLIC "-DUSE_ENTERPRISE=1")
|
|
target_include_directories(${LIB_ARANGO_GEO} PUBLIC "${PROJECT_SOURCE_DIR}/${ENTERPRISE_INCLUDE_DIR}")
|
|
endif()
|
|
|
|
################################################################################
|
|
## LIB_ARANGO_V8
|
|
################################################################################
|
|
|
|
add_library(${LIB_ARANGO_V8} STATIC
|
|
ApplicationFeatures/V8SecurityFeature.cpp
|
|
V8/JavaScriptSecurityContext.cpp
|
|
V8/JSLoader.cpp
|
|
V8/V8LineEditor.cpp
|
|
V8/v8-buffer.cpp
|
|
V8/v8-conv.cpp
|
|
V8/v8-globals.cpp
|
|
V8/v8-json.cpp
|
|
V8/v8-shell.cpp
|
|
V8/v8-utils.cpp
|
|
V8/v8-vpack.cpp
|
|
V8/v8-environment.cpp
|
|
)
|
|
|
|
target_link_libraries(${LIB_ARANGO_V8}
|
|
boost_system
|
|
boost_boost
|
|
)
|
|
|
|
# Enterprise
|
|
if (USE_ENTERPRISE)
|
|
target_compile_definitions(${LIB_ARANGO_V8} PUBLIC "-DUSE_ENTERPRISE=1")
|
|
target_include_directories(${LIB_ARANGO_V8} PUBLIC "${PROJECT_SOURCE_DIR}/${ENTERPRISE_INCLUDE_DIR}")
|
|
endif()
|
|
|
|
|
|
if(MSVC)
|
|
target_compile_options(${LIB_ARANGO_V8} PRIVATE /WX /D_WINSOCK_DEPRECATED_NO_WARNINGS)
|
|
target_compile_options(${LIB_ARANGO_GEO} PRIVATE /WX /D_WINSOCK_DEPRECATED_NO_WARNINGS)
|
|
target_compile_options(${LIB_ARANGO} PRIVATE /WX /D_WINSOCK_DEPRECATED_NO_WARNINGS)
|
|
endif()
|
|
|
|
if (DARWIN)
|
|
target_compile_options(${LIB_ARANGO_V8} PRIVATE -Werror)
|
|
target_compile_options(${LIB_ARANGO_GEO} PRIVATE -Werror)
|
|
target_compile_options(${LIB_ARANGO} PRIVATE -Werror)
|
|
endif()
|