1
0
Fork 0
arangodb/lib/CMakeLists.txt

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()