ClickHouse/CMakeLists.txt
2016-03-07 11:07:07 +03:00

127 lines
5.5 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SET(CMAKE_C_COMPILER "gcc-5")
SET(CMAKE_CXX_COMPILER "g++-5")
project (METRICA)
cmake_minimum_required(VERSION 2.6)
# отключаем варнинг о том, что в каждой директории должен быть CMakeLists.txt
CMAKE_POLICY(SET CMP0014 OLD)
IF(NOT CMAKE_BUILD_TYPE)
message(STATUS "CMAKE_BUILD_TYPE is not set, set to default = RELWITHDEBINFO")
SET(CMAKE_BUILD_TYPE "RELWITHDEBINFO")
ENDIF()
MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} )
set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Debug;Release;MinSizeRel" CACHE STRING "" FORCE)
IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
SET(AARCH64 1)
ENDIF()
IF (NOT AARCH64)
SET(MACHINE_FLAGS "-msse4 -mpopcnt")
ENDIF()
SET(CMAKE_BUILD_COLOR_MAKEFILE ON)
SET(CMAKE_CXX_FLAGS "-std=gnu++1y -Wall -Werror -Wnon-virtual-dtor ${MACHINE_FLAGS}")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -g")
SET(CMAKE_C_FLAGS "-Wall -Werror ${MACHINE_FLAGS}")
SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g")
SET(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
# собираем с отслеживанием покрытия в Debug режиме
# cmake -DCMAKE_BUILD_TYPE=Debug ..
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage -fPIC -DIS_DEBUG")
# Собирать тесты?
IF (NOT DEFINED TESTS)
MESSAGE(STATUS "Tests are enabled")
SET(TESTS YES)
ENDIF()
# тесты запускать с помощью "make check"
IF(TESTS)
INCLUDE(add.test.cmake)
ENDIF(TESTS)
# Префикс для установки
SET(CMAKE_INSTALL_PREFIX /usr)
# Директория для файлов, специфичных для Яндекса
SET(CLICKHOUSE_PRIVATE_DIR ${METRICA_SOURCE_DIR}/private/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libcityhash/)
include_directories (${METRICA_SOURCE_DIR}/contrib/liblz4/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libdivide/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libvectorclass/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libdouble-conversion/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libcpuid/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libzstd/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libfarmhash/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libmetrohash/src)
include_directories (${METRICA_SOURCE_DIR}/contrib/libsparsehash/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libre2/)
include_directories (${METRICA_BINARY_DIR}/contrib/libre2/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libboost-threadpool/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Foundation/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Util/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Net/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/NetSSL_OpenSSL/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Data/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Data/MySQL/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Data/ODBC/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Data/SQLite/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Crypto/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/XML/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/JSON/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/MongoDB/include/)
include_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/Zip/include/)
include_directories (${METRICA_SOURCE_DIR}/libs/libcommon/include/)
include_directories (${METRICA_SOURCE_DIR}/libs/libdaemon/include/)
include_directories (${METRICA_SOURCE_DIR}/libs/libpocoext/include/)
include_directories (${METRICA_SOURCE_DIR}/libs/libmysqlxx/include/)
include_directories (${METRICA_SOURCE_DIR}/libs/libzkutil/include/)
include_directories (${METRICA_SOURCE_DIR}/tools/)
include_directories (${METRICA_SOURCE_DIR}/dbms/include)
include_directories (${METRICA_SOURCE_DIR})
include_directories (${METRICA_BINARY_DIR})
include_directories (/usr/local/include/glib-2.0/)
include_directories (/usr/local/lib/glib-2.0/include/)
include_directories (/usr/include/glib-2.0/)
IF (AARCH64)
include_directories (/usr/lib/aarch64-linux-gnu/glib-2.0/include/)
ELSE()
include_directories (/usr/lib/x86_64-linux-gnu/glib-2.0/include/)
ENDIF()
include_directories (/usr/local/include/)
link_directories (${METRICA_SOURCE_DIR}/contrib/libcityhash)
link_directories (${METRICA_SOURCE_DIR}/contrib/liblz4)
link_directories (${METRICA_SOURCE_DIR}/contrib/libvectorclass)
link_directories (${METRICA_SOURCE_DIR}/contrib/libdouble-conversion)
link_directories (${METRICA_SOURCE_DIR}/contrib/libcpuid)
link_directories (${METRICA_SOURCE_DIR}/contrib/libzstd)
link_directories (${METRICA_SOURCE_DIR}/contrib/libre2)
link_directories (${METRICA_SOURCE_DIR}/contrib/libpoco/lib)
link_directories (${METRICA_BINARY_DIR}/libs/libcommon)
link_directories (${METRICA_BINARY_DIR}/libs/libdaemon)
link_directories (${METRICA_BINARY_DIR}/libs/libpocoext)
link_directories (${METRICA_BINARY_DIR}/libs/libmysqlxx)
link_directories (${METRICA_BINARY_DIR}/dbms)
link_directories (/usr/local/lib)
add_subdirectory (contrib)
add_subdirectory (libs)
add_subdirectory (utils)
add_subdirectory (dbms)