mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Merge branch 'master' into nv/parts-uuid-move-shard-kill
This commit is contained in:
commit
ce88a84e88
13
.github/workflows/cancel.yml
vendored
Normal file
13
.github/workflows/cancel.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
name: Cancel
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_run:
|
||||||
|
workflows: ["CIGithubActions"]
|
||||||
|
types:
|
||||||
|
- requested
|
||||||
|
jobs:
|
||||||
|
cancel:
|
||||||
|
runs-on: [self-hosted, style-checker]
|
||||||
|
steps:
|
||||||
|
- uses: styfle/cancel-workflow-action@0.9.1
|
||||||
|
with:
|
||||||
|
workflow_id: ${{ github.event.workflow.id }}
|
128
.github/workflows/main.yml
vendored
Normal file
128
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
name: CIGithubActions
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
- unlabeled
|
||||||
|
- synchronize
|
||||||
|
- reopened
|
||||||
|
- opened
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
jobs:
|
||||||
|
CheckLabels:
|
||||||
|
runs-on: [self-hosted, style-checker]
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Labels check
|
||||||
|
run: |
|
||||||
|
cd $GITHUB_WORKSPACE/tests/ci
|
||||||
|
python3 run_check.py
|
||||||
|
DockerHubPush:
|
||||||
|
needs: CheckLabels
|
||||||
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'pr-documentation') && !contains(github.event.pull_request.labels.*.name, 'pr-doc-fix') }}
|
||||||
|
runs-on: [self-hosted, style-checker]
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Images check
|
||||||
|
run: |
|
||||||
|
cd $GITHUB_WORKSPACE/tests/ci
|
||||||
|
python3 docker_images_check.py
|
||||||
|
- name: Upload images files to artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: changed_images
|
||||||
|
path: ${{ runner.temp }}/docker_images_check/changed_images.json
|
||||||
|
StyleCheck:
|
||||||
|
needs: DockerHubPush
|
||||||
|
runs-on: [self-hosted, style-checker]
|
||||||
|
steps:
|
||||||
|
- name: Download changed images
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: changed_images
|
||||||
|
path: ${{ runner.temp }}/style_check
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Style Check
|
||||||
|
run: |
|
||||||
|
cd $GITHUB_WORKSPACE/tests/ci
|
||||||
|
python3 style_check.py
|
||||||
|
BuilderDebDebug:
|
||||||
|
needs: DockerHubPush
|
||||||
|
runs-on: [self-hosted, builder]
|
||||||
|
steps:
|
||||||
|
- name: Download changed images
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: changed_images
|
||||||
|
path: ${{ runner.temp }}/build_check
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: 'recursive'
|
||||||
|
- name: Build
|
||||||
|
env:
|
||||||
|
TEMP_PATH: ${{runner.temp}}/build_check
|
||||||
|
REPO_COPY: ${{runner.temp}}/build_check/ClickHouse
|
||||||
|
CACHES_PATH: ${{runner.temp}}/../ccaches
|
||||||
|
CHECK_NAME: 'ClickHouse build check (actions)'
|
||||||
|
BUILD_NUMBER: 7
|
||||||
|
run: |
|
||||||
|
sudo rm -fr $TEMP_PATH
|
||||||
|
mkdir -p $TEMP_PATH
|
||||||
|
cp -r $GITHUB_WORKSPACE $TEMP_PATH
|
||||||
|
cd $REPO_COPY/tests/ci && python3 build_check.py "$CHECK_NAME" $BUILD_NUMBER
|
||||||
|
- name: Upload build URLs to artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: ${{ env.BUILD_NAME }}
|
||||||
|
path: ${{ runner.temp }}/build_check/${{ env.BUILD_NAME }}.json
|
||||||
|
BuilderReport:
|
||||||
|
needs: [BuilderDebDebug]
|
||||||
|
runs-on: [self-hosted, style-checker]
|
||||||
|
steps:
|
||||||
|
- name: Download json reports
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
path: ${{runner.temp}}/reports_dir
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Report Builder
|
||||||
|
env:
|
||||||
|
TEMP_PATH: ${{runner.temp}}/report_check
|
||||||
|
REPORTS_PATH: ${{runner.temp}}/reports_dir
|
||||||
|
CHECK_NAME: 'ClickHouse build check (actions)'
|
||||||
|
run: |
|
||||||
|
sudo rm -fr $TEMP_PATH
|
||||||
|
mkdir -p $TEMP_PATH
|
||||||
|
cd $GITHUB_WORKSPACE/tests/ci
|
||||||
|
python3 build_report_check.py "$CHECK_NAME"
|
||||||
|
FastTest:
|
||||||
|
needs: DockerHubPush
|
||||||
|
runs-on: [self-hosted, builder]
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Fast Test
|
||||||
|
env:
|
||||||
|
TEMP_PATH: ${{runner.temp}}/fasttest
|
||||||
|
REPO_COPY: ${{runner.temp}}/fasttest/ClickHouse
|
||||||
|
CACHES_PATH: ${{runner.temp}}/../ccaches
|
||||||
|
run: |
|
||||||
|
sudo rm -fr $TEMP_PATH
|
||||||
|
mkdir -p $TEMP_PATH
|
||||||
|
cp -r $GITHUB_WORKSPACE $TEMP_PATH
|
||||||
|
cd $REPO_COPY/tests/ci && python3 fast_test_check.py
|
||||||
|
FinishCheck:
|
||||||
|
needs: [StyleCheck, DockerHubPush, CheckLabels, BuilderReport, FastTest]
|
||||||
|
runs-on: [self-hosted, style-checker]
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Finish label
|
||||||
|
run: |
|
||||||
|
cd $GITHUB_WORKSPACE/tests/ci
|
||||||
|
python3 finish_check.py
|
9
.gitmodules
vendored
9
.gitmodules
vendored
@ -140,7 +140,7 @@
|
|||||||
url = https://github.com/ClickHouse-Extras/libc-headers.git
|
url = https://github.com/ClickHouse-Extras/libc-headers.git
|
||||||
[submodule "contrib/replxx"]
|
[submodule "contrib/replxx"]
|
||||||
path = contrib/replxx
|
path = contrib/replxx
|
||||||
url = https://github.com/ClickHouse-Extras/replxx.git
|
url = https://github.com/AmokHuginnsson/replxx.git
|
||||||
[submodule "contrib/avro"]
|
[submodule "contrib/avro"]
|
||||||
path = contrib/avro
|
path = contrib/avro
|
||||||
url = https://github.com/ClickHouse-Extras/avro.git
|
url = https://github.com/ClickHouse-Extras/avro.git
|
||||||
@ -213,6 +213,7 @@
|
|||||||
[submodule "contrib/boringssl"]
|
[submodule "contrib/boringssl"]
|
||||||
path = contrib/boringssl
|
path = contrib/boringssl
|
||||||
url = https://github.com/ClickHouse-Extras/boringssl.git
|
url = https://github.com/ClickHouse-Extras/boringssl.git
|
||||||
|
branch = MergeWithUpstream
|
||||||
[submodule "contrib/NuRaft"]
|
[submodule "contrib/NuRaft"]
|
||||||
path = contrib/NuRaft
|
path = contrib/NuRaft
|
||||||
url = https://github.com/ClickHouse-Extras/NuRaft.git
|
url = https://github.com/ClickHouse-Extras/NuRaft.git
|
||||||
@ -249,3 +250,9 @@
|
|||||||
[submodule "contrib/magic_enum"]
|
[submodule "contrib/magic_enum"]
|
||||||
path = contrib/magic_enum
|
path = contrib/magic_enum
|
||||||
url = https://github.com/Neargye/magic_enum
|
url = https://github.com/Neargye/magic_enum
|
||||||
|
[submodule "contrib/libprotobuf-mutator"]
|
||||||
|
path = contrib/libprotobuf-mutator
|
||||||
|
url = https://github.com/google/libprotobuf-mutator
|
||||||
|
[submodule "contrib/sysroot"]
|
||||||
|
path = contrib/sysroot
|
||||||
|
url = https://github.com/ClickHouse-Extras/sysroot.git
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
### ClickHouse release v21.10, 2021-10-08
|
### ClickHouse release v21.10, 2021-10-16
|
||||||
|
|
||||||
#### Backward Incompatible Change
|
#### Backward Incompatible Change
|
||||||
|
|
||||||
@ -110,6 +110,7 @@
|
|||||||
* Fix the issue that in case of some sophisticated query with column aliases identical to the names of expressions, bad cast may happen. This fixes [#25447](https://github.com/ClickHouse/ClickHouse/issues/25447). This fixes [#26914](https://github.com/ClickHouse/ClickHouse/issues/26914). This fix may introduce backward incompatibility: if there are different expressions with identical names, exception will be thrown. It may break some rare cases when `enable_optimize_predicate_expression` is set. [#26639](https://github.com/ClickHouse/ClickHouse/pull/26639) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
* Fix the issue that in case of some sophisticated query with column aliases identical to the names of expressions, bad cast may happen. This fixes [#25447](https://github.com/ClickHouse/ClickHouse/issues/25447). This fixes [#26914](https://github.com/ClickHouse/ClickHouse/issues/26914). This fix may introduce backward incompatibility: if there are different expressions with identical names, exception will be thrown. It may break some rare cases when `enable_optimize_predicate_expression` is set. [#26639](https://github.com/ClickHouse/ClickHouse/pull/26639) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||||
* Now, scalar subquery always returns `Nullable` result if it's type can be `Nullable`. It is needed because in case of empty subquery it's result should be `Null`. Previously, it was possible to get error about incompatible types (type deduction does not execute scalar subquery, and it could use not-nullable type). Scalar subquery with empty result which can't be converted to `Nullable` (like `Array` or `Tuple`) now throws error. Fixes [#25411](https://github.com/ClickHouse/ClickHouse/issues/25411). [#26423](https://github.com/ClickHouse/ClickHouse/pull/26423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
|
* Now, scalar subquery always returns `Nullable` result if it's type can be `Nullable`. It is needed because in case of empty subquery it's result should be `Null`. Previously, it was possible to get error about incompatible types (type deduction does not execute scalar subquery, and it could use not-nullable type). Scalar subquery with empty result which can't be converted to `Nullable` (like `Array` or `Tuple`) now throws error. Fixes [#25411](https://github.com/ClickHouse/ClickHouse/issues/25411). [#26423](https://github.com/ClickHouse/ClickHouse/pull/26423) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
|
||||||
* Introduce syntax for here documents. Example `SELECT $doc$ VALUE $doc$`. [#26671](https://github.com/ClickHouse/ClickHouse/pull/26671) ([Maksim Kita](https://github.com/kitaisreal)). This change is backward incompatible if in query there are identifiers that contain `$` [#28768](https://github.com/ClickHouse/ClickHouse/issues/28768).
|
* Introduce syntax for here documents. Example `SELECT $doc$ VALUE $doc$`. [#26671](https://github.com/ClickHouse/ClickHouse/pull/26671) ([Maksim Kita](https://github.com/kitaisreal)). This change is backward incompatible if in query there are identifiers that contain `$` [#28768](https://github.com/ClickHouse/ClickHouse/issues/28768).
|
||||||
|
* Now indices can handle Nullable types, including `isNull` and `isNotNull`. [#12433](https://github.com/ClickHouse/ClickHouse/pull/12433) and [#12455](https://github.com/ClickHouse/ClickHouse/pull/12455) ([Amos Bird](https://github.com/amosbird)) and [#27250](https://github.com/ClickHouse/ClickHouse/pull/27250) ([Azat Khuzhin](https://github.com/azat)). But this was done with on-disk format changes, and even though new server can read old data, old server cannot. Also, in case you have `MINMAX` data skipping indices, you may get `Data after mutation/merge is not byte-identical` error, since new index will have `.idx2` extension while before it was `.idx`. That said, that you should not delay updating all existing replicas, in this case, otherwise, if old replica (<21.9) will download data from new replica with 21.9+ it will not be able to apply index for downloaded part.
|
||||||
|
|
||||||
#### New Feature
|
#### New Feature
|
||||||
|
|
||||||
@ -179,7 +180,6 @@
|
|||||||
* Add setting `log_formatted_queries` to log additional formatted query into `system.query_log`. It's useful for normalized query analysis because functions like `normalizeQuery` and `normalizeQueryKeepNames` don't parse/format queries in order to achieve better performance. [#27380](https://github.com/ClickHouse/ClickHouse/pull/27380) ([Amos Bird](https://github.com/amosbird)).
|
* Add setting `log_formatted_queries` to log additional formatted query into `system.query_log`. It's useful for normalized query analysis because functions like `normalizeQuery` and `normalizeQueryKeepNames` don't parse/format queries in order to achieve better performance. [#27380](https://github.com/ClickHouse/ClickHouse/pull/27380) ([Amos Bird](https://github.com/amosbird)).
|
||||||
* Add two settings `max_hyperscan_regexp_length` and `max_hyperscan_regexp_total_length` to prevent huge regexp being used in hyperscan related functions, such as `multiMatchAny`. [#27378](https://github.com/ClickHouse/ClickHouse/pull/27378) ([Amos Bird](https://github.com/amosbird)).
|
* Add two settings `max_hyperscan_regexp_length` and `max_hyperscan_regexp_total_length` to prevent huge regexp being used in hyperscan related functions, such as `multiMatchAny`. [#27378](https://github.com/ClickHouse/ClickHouse/pull/27378) ([Amos Bird](https://github.com/amosbird)).
|
||||||
* Memory consumed by bitmap aggregate functions now is taken into account for memory limits. This closes [#26555](https://github.com/ClickHouse/ClickHouse/issues/26555). [#27252](https://github.com/ClickHouse/ClickHouse/pull/27252) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
* Memory consumed by bitmap aggregate functions now is taken into account for memory limits. This closes [#26555](https://github.com/ClickHouse/ClickHouse/issues/26555). [#27252](https://github.com/ClickHouse/ClickHouse/pull/27252) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||||
* Add new index data skipping minmax index format for proper Nullable support. [#27250](https://github.com/ClickHouse/ClickHouse/pull/27250) ([Azat Khuzhin](https://github.com/azat)).
|
|
||||||
* Add 10 seconds cache for S3 proxy resolver. [#27216](https://github.com/ClickHouse/ClickHouse/pull/27216) ([ianton-ru](https://github.com/ianton-ru)).
|
* Add 10 seconds cache for S3 proxy resolver. [#27216](https://github.com/ClickHouse/ClickHouse/pull/27216) ([ianton-ru](https://github.com/ianton-ru)).
|
||||||
* Split global mutex into individual regexp construction. This helps avoid huge regexp construction blocking other related threads. [#27211](https://github.com/ClickHouse/ClickHouse/pull/27211) ([Amos Bird](https://github.com/amosbird)).
|
* Split global mutex into individual regexp construction. This helps avoid huge regexp construction blocking other related threads. [#27211](https://github.com/ClickHouse/ClickHouse/pull/27211) ([Amos Bird](https://github.com/amosbird)).
|
||||||
* Support schema for PostgreSQL database engine. Closes [#27166](https://github.com/ClickHouse/ClickHouse/issues/27166). [#27198](https://github.com/ClickHouse/ClickHouse/pull/27198) ([Kseniia Sumarokova](https://github.com/kssenii)).
|
* Support schema for PostgreSQL database engine. Closes [#27166](https://github.com/ClickHouse/ClickHouse/issues/27166). [#27198](https://github.com/ClickHouse/ClickHouse/pull/27198) ([Kseniia Sumarokova](https://github.com/kssenii)).
|
||||||
@ -234,7 +234,6 @@
|
|||||||
* Fix multiple block insertion into distributed table with `insert_distributed_one_random_shard = 1`. This is a marginal feature. Mark as improvement. [#23140](https://github.com/ClickHouse/ClickHouse/pull/23140) ([Amos Bird](https://github.com/amosbird)).
|
* Fix multiple block insertion into distributed table with `insert_distributed_one_random_shard = 1`. This is a marginal feature. Mark as improvement. [#23140](https://github.com/ClickHouse/ClickHouse/pull/23140) ([Amos Bird](https://github.com/amosbird)).
|
||||||
* Support `LowCardinality` and `FixedString` keys/values for `Map` type. [#21543](https://github.com/ClickHouse/ClickHouse/pull/21543) ([hexiaoting](https://github.com/hexiaoting)).
|
* Support `LowCardinality` and `FixedString` keys/values for `Map` type. [#21543](https://github.com/ClickHouse/ClickHouse/pull/21543) ([hexiaoting](https://github.com/hexiaoting)).
|
||||||
* Enable reloading of local disk config. [#19526](https://github.com/ClickHouse/ClickHouse/pull/19526) ([taiyang-li](https://github.com/taiyang-li)).
|
* Enable reloading of local disk config. [#19526](https://github.com/ClickHouse/ClickHouse/pull/19526) ([taiyang-li](https://github.com/taiyang-li)).
|
||||||
* Now KeyConditions can correctly skip nullable keys, including `isNull` and `isNotNull`. https://github.com/ClickHouse/ClickHouse/pull/12433. [#12455](https://github.com/ClickHouse/ClickHouse/pull/12455) ([Amos Bird](https://github.com/amosbird)).
|
|
||||||
|
|
||||||
#### Bug Fix
|
#### Bug Fix
|
||||||
|
|
||||||
|
@ -136,6 +136,21 @@ if (ENABLE_FUZZING)
|
|||||||
message (STATUS "Fuzzing instrumentation enabled")
|
message (STATUS "Fuzzing instrumentation enabled")
|
||||||
set (FUZZER "libfuzzer")
|
set (FUZZER "libfuzzer")
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib++")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib++")
|
||||||
|
set (ENABLE_CLICKHOUSE_ODBC_BRIDGE OFF)
|
||||||
|
set (ENABLE_LIBRARIES 0)
|
||||||
|
set (ENABLE_SSL 1)
|
||||||
|
set (USE_INTERNAL_SSL_LIBRARY 1)
|
||||||
|
set (USE_UNWIND ON)
|
||||||
|
set (ENABLE_EMBEDDED_COMPILER 0)
|
||||||
|
set (ENABLE_EXAMPLES 0)
|
||||||
|
set (ENABLE_UTILS 0)
|
||||||
|
set (ENABLE_THINLTO 0)
|
||||||
|
set (ENABLE_TCMALLOC 0)
|
||||||
|
set (ENABLE_JEMALLOC 0)
|
||||||
|
set (ENABLE_CHECK_HEAVY_BUILDS 1)
|
||||||
|
set (GLIBC_COMPATIBILITY OFF)
|
||||||
|
set (ENABLE_PROTOBUF ON)
|
||||||
|
set (USE_INTERNAL_PROTOBUF_LIBRARY ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Global libraries
|
# Global libraries
|
||||||
@ -188,7 +203,7 @@ endif ()
|
|||||||
option(ENABLE_TESTS "Provide unit_test_dbms target with Google.Test unit tests" ON)
|
option(ENABLE_TESTS "Provide unit_test_dbms target with Google.Test unit tests" ON)
|
||||||
option(ENABLE_EXAMPLES "Build all example programs in 'examples' subdirectories" OFF)
|
option(ENABLE_EXAMPLES "Build all example programs in 'examples' subdirectories" OFF)
|
||||||
|
|
||||||
if (OS_LINUX AND (ARCH_AMD64 OR ARCH_AARCH64) AND NOT UNBUNDLED AND MAKE_STATIC_LIBRARIES AND NOT SPLIT_SHARED_LIBRARIES AND CMAKE_VERSION VERSION_GREATER "3.9.0")
|
if (OS_LINUX AND (ARCH_AMD64 OR ARCH_AARCH64) AND NOT UNBUNDLED AND MAKE_STATIC_LIBRARIES AND NOT SPLIT_SHARED_LIBRARIES AND NOT USE_MUSL)
|
||||||
# Only for Linux, x86_64 or aarch64.
|
# Only for Linux, x86_64 or aarch64.
|
||||||
option(GLIBC_COMPATIBILITY "Enable compatibility with older glibc libraries." ON)
|
option(GLIBC_COMPATIBILITY "Enable compatibility with older glibc libraries." ON)
|
||||||
elseif(GLIBC_COMPATIBILITY)
|
elseif(GLIBC_COMPATIBILITY)
|
||||||
@ -203,10 +218,6 @@ if (GLIBC_COMPATIBILITY)
|
|||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -include ${CMAKE_CURRENT_SOURCE_DIR}/base/glibc-compatibility/glibc-compat-2.32.h")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -include ${CMAKE_CURRENT_SOURCE_DIR}/base/glibc-compatibility/glibc-compat-2.32.h")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT CMAKE_VERSION VERSION_GREATER "3.9.0")
|
|
||||||
message (WARNING "CMake version must be greater than 3.9.0 for production builds.")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Make sure the final executable has symbols exported
|
# Make sure the final executable has symbols exported
|
||||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
|
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
|
||||||
|
|
||||||
@ -336,6 +347,10 @@ if (COMPILER_GCC OR COMPILER_CLANG)
|
|||||||
set(COMPILER_FLAGS "${COMPILER_FLAGS} -falign-functions=32")
|
set(COMPILER_FLAGS "${COMPILER_FLAGS} -falign-functions=32")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (COMPILER_GCC)
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcoroutines")
|
||||||
|
endif ()
|
||||||
|
|
||||||
# Compiler-specific coverage flags e.g. -fcoverage-mapping for gcc
|
# Compiler-specific coverage flags e.g. -fcoverage-mapping for gcc
|
||||||
option(WITH_COVERAGE "Profile the resulting binary/binaries" OFF)
|
option(WITH_COVERAGE "Profile the resulting binary/binaries" OFF)
|
||||||
|
|
||||||
@ -566,6 +581,7 @@ include (cmake/find/yaml-cpp.cmake)
|
|||||||
include (cmake/find/s2geometry.cmake)
|
include (cmake/find/s2geometry.cmake)
|
||||||
include (cmake/find/nlp.cmake)
|
include (cmake/find/nlp.cmake)
|
||||||
include (cmake/find/bzip2.cmake)
|
include (cmake/find/bzip2.cmake)
|
||||||
|
include (cmake/find/filelog.cmake)
|
||||||
|
|
||||||
if(NOT USE_INTERNAL_PARQUET_LIBRARY)
|
if(NOT USE_INTERNAL_PARQUET_LIBRARY)
|
||||||
set (ENABLE_ORC OFF CACHE INTERNAL "")
|
set (ENABLE_ORC OFF CACHE INTERNAL "")
|
||||||
@ -578,6 +594,7 @@ include (cmake/find/cassandra.cmake)
|
|||||||
include (cmake/find/sentry.cmake)
|
include (cmake/find/sentry.cmake)
|
||||||
include (cmake/find/stats.cmake)
|
include (cmake/find/stats.cmake)
|
||||||
include (cmake/find/datasketches.cmake)
|
include (cmake/find/datasketches.cmake)
|
||||||
|
include (cmake/find/libprotobuf-mutator.cmake)
|
||||||
|
|
||||||
set (USE_INTERNAL_CITYHASH_LIBRARY ON CACHE INTERNAL "")
|
set (USE_INTERNAL_CITYHASH_LIBRARY ON CACHE INTERNAL "")
|
||||||
find_contrib_lib(cityhash)
|
find_contrib_lib(cityhash)
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
[![ClickHouse — open source distributed column-oriented DBMS](https://github.com/ClickHouse/ClickHouse/raw/master/website/images/logo-400x240.png)](https://clickhouse.com)
|
[![ClickHouse — open source distributed column-oriented DBMS](https://github.com/ClickHouse/ClickHouse/raw/master/website/images/logo-400x240.png)](https://clickhouse.com)
|
||||||
|
|
||||||
ClickHouse® is an open-source column-oriented database management system that allows generating analytical data reports in real time.
|
ClickHouse® is an open-source column-oriented database management system that allows generating analytical data reports in real-time.
|
||||||
|
|
||||||
## Useful Links
|
## Useful Links
|
||||||
|
|
||||||
* [Official website](https://clickhouse.com/) has quick high-level overview of ClickHouse on main page.
|
* [Official website](https://clickhouse.com/) has a quick high-level overview of ClickHouse on the main page.
|
||||||
* [Tutorial](https://clickhouse.com/docs/en/getting_started/tutorial/) shows how to set up and query small ClickHouse cluster.
|
* [Tutorial](https://clickhouse.com/docs/en/getting_started/tutorial/) shows how to set up and query a small ClickHouse cluster.
|
||||||
* [Documentation](https://clickhouse.com/docs/en/) provides more in-depth information.
|
* [Documentation](https://clickhouse.com/docs/en/) provides more in-depth information.
|
||||||
* [YouTube channel](https://www.youtube.com/c/ClickHouseDB) has a lot of content about ClickHouse in video format.
|
* [YouTube channel](https://www.youtube.com/c/ClickHouseDB) has a lot of content about ClickHouse in video format.
|
||||||
* [Slack](https://join.slack.com/t/clickhousedb/shared_invite/zt-rxm3rdrk-lIUmhLC3V8WTaL0TGxsOmg) and [Telegram](https://telegram.me/clickhouse_en) allow to chat with ClickHouse users in real-time.
|
* [Slack](https://join.slack.com/t/clickhousedb/shared_invite/zt-rxm3rdrk-lIUmhLC3V8WTaL0TGxsOmg) and [Telegram](https://telegram.me/clickhouse_en) allow chatting with ClickHouse users in real-time.
|
||||||
* [Blog](https://clickhouse.com/blog/en/) contains various ClickHouse-related articles, as well as announcements and reports about events.
|
* [Blog](https://clickhouse.com/blog/en/) contains various ClickHouse-related articles, as well as announcements and reports about events.
|
||||||
* [Code Browser](https://clickhouse.com/codebrowser/html_report/ClickHouse/index.html) with syntax highlight and navigation.
|
* [Code Browser](https://clickhouse.com/codebrowser/html_report/ClickHouse/index.html) with syntax highlight and navigation.
|
||||||
* [Contacts](https://clickhouse.com/company/#contact) can help to get your questions answered if there are any.
|
* [Contacts](https://clickhouse.com/company/#contact) can help to get your questions answered if there are any.
|
||||||
|
14
SECURITY.md
14
SECURITY.md
@ -1,7 +1,7 @@
|
|||||||
# Security Policy
|
# Security Policy
|
||||||
|
|
||||||
## Security Announcements
|
## Security Announcements
|
||||||
Security fixes will be announced by posting them in the [security changelog](https://clickhouse.com/docs/en/whats-new/security-changelog/)
|
Security fixes will be announced by posting them in the [security changelog](https://clickhouse.com/docs/en/whats-new/security-changelog/).
|
||||||
|
|
||||||
## Scope and Supported Versions
|
## Scope and Supported Versions
|
||||||
|
|
||||||
@ -12,17 +12,7 @@ The following versions of ClickHouse server are currently being supported with s
|
|||||||
| 1.x | :x: |
|
| 1.x | :x: |
|
||||||
| 18.x | :x: |
|
| 18.x | :x: |
|
||||||
| 19.x | :x: |
|
| 19.x | :x: |
|
||||||
| 20.1 | :x: |
|
| 20.x | :x: |
|
||||||
| 20.3 | :x: |
|
|
||||||
| 20.4 | :x: |
|
|
||||||
| 20.5 | :x: |
|
|
||||||
| 20.6 | :x: |
|
|
||||||
| 20.7 | :x: |
|
|
||||||
| 20.8 | :x: |
|
|
||||||
| 20.9 | :x: |
|
|
||||||
| 20.10 | :x: |
|
|
||||||
| 20.11 | :x: |
|
|
||||||
| 20.12 | :x: |
|
|
||||||
| 21.1 | :x: |
|
| 21.1 | :x: |
|
||||||
| 21.2 | :x: |
|
| 21.2 | :x: |
|
||||||
| 21.3 | ✅ |
|
| 21.3 | ✅ |
|
||||||
|
@ -5,6 +5,10 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/select.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef OS_LINUX
|
#ifdef OS_LINUX
|
||||||
/// We can detect if code is linked with one or another readline variants or open the library dynamically.
|
/// We can detect if code is linked with one or another readline variants or open the library dynamically.
|
||||||
|
@ -177,6 +177,10 @@ ReplxxLineReader::ReplxxLineReader(
|
|||||||
/// bind C-p/C-n to history-previous/history-next like readline.
|
/// bind C-p/C-n to history-previous/history-next like readline.
|
||||||
rx.bind_key(Replxx::KEY::control('N'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::HISTORY_NEXT, code); });
|
rx.bind_key(Replxx::KEY::control('N'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::HISTORY_NEXT, code); });
|
||||||
rx.bind_key(Replxx::KEY::control('P'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::HISTORY_PREVIOUS, code); });
|
rx.bind_key(Replxx::KEY::control('P'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::HISTORY_PREVIOUS, code); });
|
||||||
|
|
||||||
|
/// bind C-j to ENTER action.
|
||||||
|
rx.bind_key(Replxx::KEY::control('J'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::COMMIT_LINE, code); });
|
||||||
|
|
||||||
/// By default COMPLETE_NEXT/COMPLETE_PREV was binded to C-p/C-n, re-bind
|
/// By default COMPLETE_NEXT/COMPLETE_PREV was binded to C-p/C-n, re-bind
|
||||||
/// to M-P/M-N (that was used for HISTORY_COMMON_PREFIX_SEARCH before, but
|
/// to M-P/M-N (that was used for HISTORY_COMMON_PREFIX_SEARCH before, but
|
||||||
/// it also binded to M-p/M-n).
|
/// it also binded to M-p/M-n).
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#include <base/defines.h>
|
#include <base/defines.h>
|
||||||
|
|
||||||
#if defined(__linux__) && !defined(THREAD_SANITIZER)
|
#if defined(__linux__) && !defined(THREAD_SANITIZER) && !defined(USE_MUSL)
|
||||||
#define USE_PHDR_CACHE 1
|
#define USE_PHDR_CACHE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <Common/StackTrace.h>
|
#include <Common/StackTrace.h>
|
||||||
#include <Common/getNumberOfPhysicalCPUCores.h>
|
#include <Common/getNumberOfPhysicalCPUCores.h>
|
||||||
#include <Core/ServerUUID.h>
|
#include <Core/ServerUUID.h>
|
||||||
|
#include <Common/hex.h>
|
||||||
|
|
||||||
#if !defined(ARCADIA_BUILD)
|
#if !defined(ARCADIA_BUILD)
|
||||||
# include "Common/config_version.h"
|
# include "Common/config_version.h"
|
||||||
@ -64,41 +65,6 @@ void setExtras()
|
|||||||
sentry_set_extra("disk_free_space", sentry_value_new_string(formatReadableSizeWithBinarySuffix(fs::space(server_data_path).free).c_str()));
|
sentry_set_extra("disk_free_space", sentry_value_new_string(formatReadableSizeWithBinarySuffix(fs::space(server_data_path).free).c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void sentry_logger(sentry_level_e level, const char * message, va_list args, void *)
|
|
||||||
{
|
|
||||||
auto * logger = &Poco::Logger::get("SentryWriter");
|
|
||||||
size_t size = 1024;
|
|
||||||
char buffer[size];
|
|
||||||
#ifdef __clang__
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored "-Wformat-nonliteral"
|
|
||||||
#endif
|
|
||||||
if (vsnprintf(buffer, size, message, args) >= 0)
|
|
||||||
{
|
|
||||||
#ifdef __clang__
|
|
||||||
#pragma clang diagnostic pop
|
|
||||||
#endif
|
|
||||||
switch (level)
|
|
||||||
{
|
|
||||||
case SENTRY_LEVEL_DEBUG:
|
|
||||||
logger->debug(buffer);
|
|
||||||
break;
|
|
||||||
case SENTRY_LEVEL_INFO:
|
|
||||||
logger->information(buffer);
|
|
||||||
break;
|
|
||||||
case SENTRY_LEVEL_WARNING:
|
|
||||||
logger->warning(buffer);
|
|
||||||
break;
|
|
||||||
case SENTRY_LEVEL_ERROR:
|
|
||||||
logger->error(buffer);
|
|
||||||
break;
|
|
||||||
case SENTRY_LEVEL_FATAL:
|
|
||||||
logger->fatal(buffer);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -107,13 +73,13 @@ void SentryWriter::initialize(Poco::Util::LayeredConfiguration & config)
|
|||||||
bool enabled = false;
|
bool enabled = false;
|
||||||
bool debug = config.getBool("send_crash_reports.debug", false);
|
bool debug = config.getBool("send_crash_reports.debug", false);
|
||||||
auto * logger = &Poco::Logger::get("SentryWriter");
|
auto * logger = &Poco::Logger::get("SentryWriter");
|
||||||
|
|
||||||
if (config.getBool("send_crash_reports.enabled", false))
|
if (config.getBool("send_crash_reports.enabled", false))
|
||||||
{
|
{
|
||||||
if (debug || (strlen(VERSION_OFFICIAL) > 0)) //-V560
|
if (debug || (strlen(VERSION_OFFICIAL) > 0)) //-V560
|
||||||
{
|
|
||||||
enabled = true;
|
enabled = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
{
|
{
|
||||||
server_data_path = config.getString("path", "");
|
server_data_path = config.getString("path", "");
|
||||||
@ -126,7 +92,6 @@ void SentryWriter::initialize(Poco::Util::LayeredConfiguration & config)
|
|||||||
|
|
||||||
sentry_options_t * options = sentry_options_new(); /// will be freed by sentry_init or sentry_shutdown
|
sentry_options_t * options = sentry_options_new(); /// will be freed by sentry_init or sentry_shutdown
|
||||||
sentry_options_set_release(options, VERSION_STRING_SHORT);
|
sentry_options_set_release(options, VERSION_STRING_SHORT);
|
||||||
sentry_options_set_logger(options, &sentry_logger, nullptr);
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
sentry_options_set_debug(options, 1);
|
sentry_options_set_debug(options, 1);
|
||||||
@ -199,34 +164,34 @@ void SentryWriter::onFault(int sig, const std::string & error_message, const Sta
|
|||||||
if (stack_size > 0)
|
if (stack_size > 0)
|
||||||
{
|
{
|
||||||
ssize_t offset = stack_trace.getOffset();
|
ssize_t offset = stack_trace.getOffset();
|
||||||
char instruction_addr[100];
|
|
||||||
|
char instruction_addr[19]
|
||||||
|
{
|
||||||
|
'0', 'x',
|
||||||
|
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
|
||||||
|
'\0'
|
||||||
|
};
|
||||||
|
|
||||||
StackTrace::Frames frames;
|
StackTrace::Frames frames;
|
||||||
StackTrace::symbolize(stack_trace.getFramePointers(), offset, stack_size, frames);
|
StackTrace::symbolize(stack_trace.getFramePointers(), offset, stack_size, frames);
|
||||||
|
|
||||||
for (ssize_t i = stack_size - 1; i >= offset; --i)
|
for (ssize_t i = stack_size - 1; i >= offset; --i)
|
||||||
{
|
{
|
||||||
const StackTrace::Frame & current_frame = frames[i];
|
const StackTrace::Frame & current_frame = frames[i];
|
||||||
sentry_value_t sentry_frame = sentry_value_new_object();
|
sentry_value_t sentry_frame = sentry_value_new_object();
|
||||||
UInt64 frame_ptr = reinterpret_cast<UInt64>(current_frame.virtual_addr);
|
UInt64 frame_ptr = reinterpret_cast<UInt64>(current_frame.virtual_addr);
|
||||||
|
|
||||||
if (std::snprintf(instruction_addr, sizeof(instruction_addr), "0x%" PRIx64, frame_ptr) >= 0)
|
writeHexUIntLowercase(frame_ptr, instruction_addr + 2);
|
||||||
{
|
sentry_value_set_by_key(sentry_frame, "instruction_addr", sentry_value_new_string(instruction_addr));
|
||||||
sentry_value_set_by_key(sentry_frame, "instruction_addr", sentry_value_new_string(instruction_addr));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (current_frame.symbol.has_value())
|
if (current_frame.symbol.has_value())
|
||||||
{
|
|
||||||
sentry_value_set_by_key(sentry_frame, "function", sentry_value_new_string(current_frame.symbol.value().c_str()));
|
sentry_value_set_by_key(sentry_frame, "function", sentry_value_new_string(current_frame.symbol.value().c_str()));
|
||||||
}
|
|
||||||
|
|
||||||
if (current_frame.file.has_value())
|
if (current_frame.file.has_value())
|
||||||
{
|
|
||||||
sentry_value_set_by_key(sentry_frame, "filename", sentry_value_new_string(current_frame.file.value().c_str()));
|
sentry_value_set_by_key(sentry_frame, "filename", sentry_value_new_string(current_frame.file.value().c_str()));
|
||||||
}
|
|
||||||
|
|
||||||
if (current_frame.line.has_value())
|
if (current_frame.line.has_value())
|
||||||
{
|
|
||||||
sentry_value_set_by_key(sentry_frame, "lineno", sentry_value_new_int32(current_frame.line.value()));
|
sentry_value_set_by_key(sentry_frame, "lineno", sentry_value_new_int32(current_frame.line.value()));
|
||||||
}
|
|
||||||
|
|
||||||
sentry_value_append(sentry_frames, sentry_frame);
|
sentry_value_append(sentry_frames, sentry_frame);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include <cstddef>
|
#include <stddef.h>
|
||||||
|
|
||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
|||||||
|
|
||||||
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, log_file);
|
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, log_file);
|
||||||
log->setLevel(log_level);
|
log->setLevel(log_level);
|
||||||
split->addChannel(log);
|
split->addChannel(log, "log");
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto errorlog_path = config.getString("logger.errorlog", "");
|
const auto errorlog_path = config.getString("logger.errorlog", "");
|
||||||
@ -116,7 +116,7 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
|||||||
Poco::AutoPtr<DB::OwnFormattingChannel> errorlog = new DB::OwnFormattingChannel(pf, error_log_file);
|
Poco::AutoPtr<DB::OwnFormattingChannel> errorlog = new DB::OwnFormattingChannel(pf, error_log_file);
|
||||||
errorlog->setLevel(errorlog_level);
|
errorlog->setLevel(errorlog_level);
|
||||||
errorlog->open();
|
errorlog->open();
|
||||||
split->addChannel(errorlog);
|
split->addChannel(errorlog, "errorlog");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.getBool("logger.use_syslog", false))
|
if (config.getBool("logger.use_syslog", false))
|
||||||
@ -155,7 +155,7 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
|||||||
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, syslog_channel);
|
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, syslog_channel);
|
||||||
log->setLevel(syslog_level);
|
log->setLevel(syslog_level);
|
||||||
|
|
||||||
split->addChannel(log);
|
split->addChannel(log, "syslog");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool should_log_to_console = isatty(STDIN_FILENO) || isatty(STDERR_FILENO);
|
bool should_log_to_console = isatty(STDIN_FILENO) || isatty(STDERR_FILENO);
|
||||||
@ -177,7 +177,7 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
|||||||
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, new Poco::ConsoleChannel);
|
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, new Poco::ConsoleChannel);
|
||||||
logger.warning("Logging " + console_log_level_string + " to console");
|
logger.warning("Logging " + console_log_level_string + " to console");
|
||||||
log->setLevel(console_log_level);
|
log->setLevel(console_log_level);
|
||||||
split->addChannel(log);
|
split->addChannel(log, "console");
|
||||||
}
|
}
|
||||||
|
|
||||||
split->open();
|
split->open();
|
||||||
@ -224,6 +224,89 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Loggers::updateLevels(Poco::Util::AbstractConfiguration & config, Poco::Logger & logger)
|
||||||
|
{
|
||||||
|
int max_log_level = 0;
|
||||||
|
|
||||||
|
const auto log_level_string = config.getString("logger.level", "trace");
|
||||||
|
int log_level = Poco::Logger::parseLevel(log_level_string);
|
||||||
|
if (log_level > max_log_level)
|
||||||
|
max_log_level = log_level;
|
||||||
|
|
||||||
|
const auto log_path = config.getString("logger.log", "");
|
||||||
|
if (!log_path.empty())
|
||||||
|
split->setLevel("log", log_level);
|
||||||
|
else
|
||||||
|
split->setLevel("log", 0);
|
||||||
|
|
||||||
|
// Set level to console
|
||||||
|
bool is_daemon = config.getBool("application.runAsDaemon", false);
|
||||||
|
bool should_log_to_console = isatty(STDIN_FILENO) || isatty(STDERR_FILENO);
|
||||||
|
if (config.getBool("logger.console", false)
|
||||||
|
|| (!config.hasProperty("logger.console") && !is_daemon && should_log_to_console))
|
||||||
|
split->setLevel("console", log_level);
|
||||||
|
else
|
||||||
|
split->setLevel("console", 0);
|
||||||
|
|
||||||
|
// Set level to errorlog
|
||||||
|
int errorlog_level = 0;
|
||||||
|
const auto errorlog_path = config.getString("logger.errorlog", "");
|
||||||
|
if (!errorlog_path.empty())
|
||||||
|
{
|
||||||
|
errorlog_level = Poco::Logger::parseLevel(config.getString("logger.errorlog_level", "notice"));
|
||||||
|
if (errorlog_level > max_log_level)
|
||||||
|
max_log_level = errorlog_level;
|
||||||
|
}
|
||||||
|
split->setLevel("errorlog", errorlog_level);
|
||||||
|
|
||||||
|
// Set level to syslog
|
||||||
|
int syslog_level = 0;
|
||||||
|
if (config.getBool("logger.use_syslog", false))
|
||||||
|
{
|
||||||
|
syslog_level = Poco::Logger::parseLevel(config.getString("logger.syslog_level", log_level_string));
|
||||||
|
if (syslog_level > max_log_level)
|
||||||
|
max_log_level = syslog_level;
|
||||||
|
}
|
||||||
|
split->setLevel("syslog", syslog_level);
|
||||||
|
|
||||||
|
// Global logging level (it can be overridden for specific loggers).
|
||||||
|
logger.setLevel(max_log_level);
|
||||||
|
|
||||||
|
// Set level to all already created loggers
|
||||||
|
std::vector<std::string> names;
|
||||||
|
|
||||||
|
logger.root().names(names);
|
||||||
|
for (const auto & name : names)
|
||||||
|
logger.root().get(name).setLevel(max_log_level);
|
||||||
|
|
||||||
|
logger.root().setLevel(max_log_level);
|
||||||
|
|
||||||
|
// Explicitly specified log levels for specific loggers.
|
||||||
|
{
|
||||||
|
Poco::Util::AbstractConfiguration::Keys loggers_level;
|
||||||
|
config.keys("logger.levels", loggers_level);
|
||||||
|
|
||||||
|
if (!loggers_level.empty())
|
||||||
|
{
|
||||||
|
for (const auto & key : loggers_level)
|
||||||
|
{
|
||||||
|
if (key == "logger" || key.starts_with("logger["))
|
||||||
|
{
|
||||||
|
const std::string name(config.getString("logger.levels." + key + ".name"));
|
||||||
|
const std::string level(config.getString("logger.levels." + key + ".level"));
|
||||||
|
logger.root().get(name).setLevel(level);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Legacy syntax
|
||||||
|
const std::string level(config.getString("logger.levels." + key, "trace"));
|
||||||
|
logger.root().get(key).setLevel(level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Loggers::closeLogs(Poco::Logger & logger)
|
void Loggers::closeLogs(Poco::Logger & logger)
|
||||||
{
|
{
|
||||||
if (log_file)
|
if (log_file)
|
||||||
|
@ -19,6 +19,8 @@ class Loggers
|
|||||||
public:
|
public:
|
||||||
void buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Logger & logger, const std::string & cmd_name = "");
|
void buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Logger & logger, const std::string & cmd_name = "");
|
||||||
|
|
||||||
|
void updateLevels(Poco::Util::AbstractConfiguration & config, Poco::Logger & logger);
|
||||||
|
|
||||||
/// Close log files. On next log write files will be reopened.
|
/// Close log files. On next log write files will be reopened.
|
||||||
void closeLogs(Poco::Logger & logger);
|
void closeLogs(Poco::Logger & logger);
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
#include <atomic>
|
||||||
#include <Poco/AutoPtr.h>
|
#include <Poco/AutoPtr.h>
|
||||||
#include <Poco/Channel.h>
|
#include <Poco/Channel.h>
|
||||||
#include <Poco/FormattingChannel.h>
|
#include <Poco/FormattingChannel.h>
|
||||||
@ -14,7 +15,7 @@ class OwnFormattingChannel : public Poco::Channel, public ExtendedLogChannel
|
|||||||
public:
|
public:
|
||||||
explicit OwnFormattingChannel(
|
explicit OwnFormattingChannel(
|
||||||
Poco::AutoPtr<OwnPatternFormatter> pFormatter_ = nullptr, Poco::AutoPtr<Poco::Channel> pChannel_ = nullptr)
|
Poco::AutoPtr<OwnPatternFormatter> pFormatter_ = nullptr, Poco::AutoPtr<Poco::Channel> pChannel_ = nullptr)
|
||||||
: pFormatter(std::move(pFormatter_)), pChannel(std::move(pChannel_))
|
: pFormatter(std::move(pFormatter_)), pChannel(std::move(pChannel_)), priority(Poco::Message::PRIO_TRACE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +46,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
Poco::AutoPtr<OwnPatternFormatter> pFormatter;
|
Poco::AutoPtr<OwnPatternFormatter> pFormatter;
|
||||||
Poco::AutoPtr<Poco::Channel> pChannel;
|
Poco::AutoPtr<Poco::Channel> pChannel;
|
||||||
Poco::Message::Priority priority = Poco::Message::PRIO_TRACE;
|
std::atomic<Poco::Message::Priority> priority;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "OwnSplitChannel.h"
|
#include "OwnSplitChannel.h"
|
||||||
|
#include "OwnFormattingChannel.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <Core/Block.h>
|
#include <Core/Block.h>
|
||||||
@ -75,7 +76,7 @@ void OwnSplitChannel::logSplit(const Poco::Message & msg)
|
|||||||
ExtendedLogMessage msg_ext = ExtendedLogMessage::getFrom(msg);
|
ExtendedLogMessage msg_ext = ExtendedLogMessage::getFrom(msg);
|
||||||
|
|
||||||
/// Log data to child channels
|
/// Log data to child channels
|
||||||
for (auto & channel : channels)
|
for (auto & [name, channel] : channels)
|
||||||
{
|
{
|
||||||
if (channel.second)
|
if (channel.second)
|
||||||
channel.second->logExtended(msg_ext); // extended child
|
channel.second->logExtended(msg_ext); // extended child
|
||||||
@ -100,7 +101,7 @@ void OwnSplitChannel::logSplit(const Poco::Message & msg)
|
|||||||
columns[i++]->insert(msg.getSource());
|
columns[i++]->insert(msg.getSource());
|
||||||
columns[i++]->insert(msg.getText());
|
columns[i++]->insert(msg.getText());
|
||||||
|
|
||||||
logs_queue->emplace(std::move(columns));
|
[[maybe_unused]] bool push_result = logs_queue->emplace(std::move(columns));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Also log to system.text_log table, if message is not too noisy
|
/// Also log to system.text_log table, if message is not too noisy
|
||||||
@ -137,9 +138,9 @@ void OwnSplitChannel::logSplit(const Poco::Message & msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void OwnSplitChannel::addChannel(Poco::AutoPtr<Poco::Channel> channel)
|
void OwnSplitChannel::addChannel(Poco::AutoPtr<Poco::Channel> channel, const std::string & name)
|
||||||
{
|
{
|
||||||
channels.emplace_back(std::move(channel), dynamic_cast<ExtendedLogChannel *>(channel.get()));
|
channels.emplace(name, ExtendedChannelPtrPair(std::move(channel), dynamic_cast<ExtendedLogChannel *>(channel.get())));
|
||||||
}
|
}
|
||||||
|
|
||||||
void OwnSplitChannel::addTextLog(std::shared_ptr<DB::TextLog> log, int max_priority)
|
void OwnSplitChannel::addTextLog(std::shared_ptr<DB::TextLog> log, int max_priority)
|
||||||
@ -149,4 +150,14 @@ void OwnSplitChannel::addTextLog(std::shared_ptr<DB::TextLog> log, int max_prior
|
|||||||
text_log_max_priority.store(max_priority, std::memory_order_relaxed);
|
text_log_max_priority.store(max_priority, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OwnSplitChannel::setLevel(const std::string & name, int level)
|
||||||
|
{
|
||||||
|
auto it = channels.find(name);
|
||||||
|
if (it != channels.end())
|
||||||
|
{
|
||||||
|
if (auto * channel = dynamic_cast<DB::OwnFormattingChannel *>(it->second.first.get()))
|
||||||
|
channel->setLevel(level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,12 @@ public:
|
|||||||
/// Makes an extended message from msg and passes it to the client logs queue and child (if possible)
|
/// Makes an extended message from msg and passes it to the client logs queue and child (if possible)
|
||||||
void log(const Poco::Message & msg) override;
|
void log(const Poco::Message & msg) override;
|
||||||
/// Adds a child channel
|
/// Adds a child channel
|
||||||
void addChannel(Poco::AutoPtr<Poco::Channel> channel);
|
void addChannel(Poco::AutoPtr<Poco::Channel> channel, const std::string & name);
|
||||||
|
|
||||||
void addTextLog(std::shared_ptr<DB::TextLog> log, int max_priority);
|
void addTextLog(std::shared_ptr<DB::TextLog> log, int max_priority);
|
||||||
|
|
||||||
|
void setLevel(const std::string & name, int level);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void logSplit(const Poco::Message & msg);
|
void logSplit(const Poco::Message & msg);
|
||||||
void tryLogSplit(const Poco::Message & msg);
|
void tryLogSplit(const Poco::Message & msg);
|
||||||
@ -29,7 +31,7 @@ private:
|
|||||||
using ChannelPtr = Poco::AutoPtr<Poco::Channel>;
|
using ChannelPtr = Poco::AutoPtr<Poco::Channel>;
|
||||||
/// Handler and its pointer casted to extended interface
|
/// Handler and its pointer casted to extended interface
|
||||||
using ExtendedChannelPtrPair = std::pair<ChannelPtr, ExtendedLogChannel *>;
|
using ExtendedChannelPtrPair = std::pair<ChannelPtr, ExtendedLogChannel *>;
|
||||||
std::vector<ExtendedChannelPtrPair> channels;
|
std::map<std::string, ExtendedChannelPtrPair> channels;
|
||||||
|
|
||||||
std::mutex text_log_mutex;
|
std::mutex text_log_mutex;
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ TRIES=3
|
|||||||
|
|
||||||
AMD64_BIN_URL="https://builds.clickhouse.com/master/amd64/clickhouse"
|
AMD64_BIN_URL="https://builds.clickhouse.com/master/amd64/clickhouse"
|
||||||
AARCH64_BIN_URL="https://builds.clickhouse.com/master/aarch64/clickhouse"
|
AARCH64_BIN_URL="https://builds.clickhouse.com/master/aarch64/clickhouse"
|
||||||
|
POWERPC64_BIN_URL="https://builds.clickhouse.com/master/ppc64le/clickhouse"
|
||||||
|
|
||||||
# Note: on older Ubuntu versions, 'axel' does not support IPv6. If you are using IPv6-only servers on very old Ubuntu, just don't install 'axel'.
|
# Note: on older Ubuntu versions, 'axel' does not support IPv6. If you are using IPv6-only servers on very old Ubuntu, just don't install 'axel'.
|
||||||
|
|
||||||
@ -38,6 +39,8 @@ if [[ ! -f clickhouse ]]; then
|
|||||||
$FASTER_DOWNLOAD "$AMD64_BIN_URL"
|
$FASTER_DOWNLOAD "$AMD64_BIN_URL"
|
||||||
elif [[ $CPU == aarch64 ]]; then
|
elif [[ $CPU == aarch64 ]]; then
|
||||||
$FASTER_DOWNLOAD "$AARCH64_BIN_URL"
|
$FASTER_DOWNLOAD "$AARCH64_BIN_URL"
|
||||||
|
elif [[ $CPU == powerpc64le ]]; then
|
||||||
|
$FASTER_DOWNLOAD "$POWERPC64_BIN_URL"
|
||||||
else
|
else
|
||||||
echo "Unsupported CPU type: $CPU"
|
echo "Unsupported CPU type: $CPU"
|
||||||
exit 1
|
exit 1
|
||||||
@ -52,7 +55,7 @@ fi
|
|||||||
|
|
||||||
if [[ ! -d data ]]; then
|
if [[ ! -d data ]]; then
|
||||||
if [[ ! -f $DATASET ]]; then
|
if [[ ! -f $DATASET ]]; then
|
||||||
$FASTER_DOWNLOAD "https://clickhouse-datasets.s3.yandex.net/hits/partitions/$DATASET"
|
$FASTER_DOWNLOAD "https://datasets.clickhouse.com/hits/partitions/$DATASET"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tar $TAR_PARAMS --strip-components=1 --directory=. -x -v -f $DATASET
|
tar $TAR_PARAMS --strip-components=1 --directory=. -x -v -f $DATASET
|
||||||
|
@ -13,7 +13,6 @@ endif ()
|
|||||||
if ((ARCH_ARM AND NOT ARCH_AARCH64) OR ARCH_I386)
|
if ((ARCH_ARM AND NOT ARCH_AARCH64) OR ARCH_I386)
|
||||||
message (FATAL_ERROR "32bit platforms are not supported")
|
message (FATAL_ERROR "32bit platforms are not supported")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(ppc64le.*|PPC64LE.*)")
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(ppc64le.*|PPC64LE.*)")
|
||||||
set (ARCH_PPC64LE 1)
|
set (ARCH_PPC64LE 1)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -18,6 +18,10 @@ option (ENABLE_PCLMULQDQ "Use pclmulqdq instructions on x86_64" 1)
|
|||||||
option (ENABLE_POPCNT "Use popcnt instructions on x86_64" 1)
|
option (ENABLE_POPCNT "Use popcnt instructions on x86_64" 1)
|
||||||
option (ENABLE_AVX "Use AVX instructions on x86_64" 0)
|
option (ENABLE_AVX "Use AVX instructions on x86_64" 0)
|
||||||
option (ENABLE_AVX2 "Use AVX2 instructions on x86_64" 0)
|
option (ENABLE_AVX2 "Use AVX2 instructions on x86_64" 0)
|
||||||
|
option (ENABLE_AVX512 "Use AVX512 instructions on x86_64" 0)
|
||||||
|
option (ENABLE_BMI "Use BMI instructions on x86_64" 0)
|
||||||
|
option (ENABLE_AVX2_FOR_SPEC_OP "Use avx2 instructions for specific operations on x86_64" 0)
|
||||||
|
option (ENABLE_AVX512_FOR_SPEC_OP "Use avx512 instructions for specific operations on x86_64" 0)
|
||||||
|
|
||||||
option (ARCH_NATIVE "Add -march=native compiler flag. This makes your binaries non-portable but more performant code may be generated. This option overrides ENABLE_* options for specific instruction set. Highly not recommended to use." 0)
|
option (ARCH_NATIVE "Add -march=native compiler flag. This makes your binaries non-portable but more performant code may be generated. This option overrides ENABLE_* options for specific instruction set. Highly not recommended to use." 0)
|
||||||
|
|
||||||
@ -127,6 +131,57 @@ else ()
|
|||||||
if (HAVE_AVX2 AND ENABLE_AVX2)
|
if (HAVE_AVX2 AND ENABLE_AVX2)
|
||||||
set (COMPILER_FLAGS "${COMPILER_FLAGS} ${TEST_FLAG}")
|
set (COMPILER_FLAGS "${COMPILER_FLAGS} ${TEST_FLAG}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
set (TEST_FLAG "-mavx512f -mavx512bw")
|
||||||
|
set (CMAKE_REQUIRED_FLAGS "${TEST_FLAG} -O0")
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <immintrin.h>
|
||||||
|
int main() {
|
||||||
|
auto a = _mm512_setzero_epi32();
|
||||||
|
(void)a;
|
||||||
|
auto b = _mm512_add_epi16(__m512i(), __m512i());
|
||||||
|
(void)b;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
" HAVE_AVX512)
|
||||||
|
if (HAVE_AVX512 AND ENABLE_AVX512)
|
||||||
|
set (COMPILER_FLAGS "${COMPILER_FLAGS} ${TEST_FLAG}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set (TEST_FLAG "-mbmi")
|
||||||
|
set (CMAKE_REQUIRED_FLAGS "${TEST_FLAG} -O0")
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <immintrin.h>
|
||||||
|
int main() {
|
||||||
|
auto a = _blsr_u32(0);
|
||||||
|
(void)a;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
" HAVE_BMI)
|
||||||
|
if (HAVE_BMI AND ENABLE_BMI)
|
||||||
|
set (COMPILER_FLAGS "${COMPILER_FLAGS} ${TEST_FLAG}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
#Limit avx2/avx512 flag for specific source build
|
||||||
|
set (X86_INTRINSICS_FLAGS "")
|
||||||
|
if (ENABLE_AVX2_FOR_SPEC_OP)
|
||||||
|
if (HAVE_BMI)
|
||||||
|
set (X86_INTRINSICS_FLAGS "${X86_INTRINSICS_FLAGS} -mbmi")
|
||||||
|
endif ()
|
||||||
|
if (HAVE_AVX AND HAVE_AVX2)
|
||||||
|
set (X86_INTRINSICS_FLAGS "${X86_INTRINSICS_FLAGS} -mavx -mavx2")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (ENABLE_AVX512_FOR_SPEC_OP)
|
||||||
|
set (X86_INTRINSICS_FLAGS "")
|
||||||
|
if (HAVE_BMI)
|
||||||
|
set (X86_INTRINSICS_FLAGS "${X86_INTRINSICS_FLAGS} -mbmi")
|
||||||
|
endif ()
|
||||||
|
if (HAVE_AVX512)
|
||||||
|
set (X86_INTRINSICS_FLAGS "${X86_INTRINSICS_FLAGS} -mavx512f -mavx512bw")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
cmake_pop_check_state ()
|
cmake_pop_check_state ()
|
||||||
|
@ -1,14 +1,7 @@
|
|||||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.12")
|
macro(add_glob cur_list)
|
||||||
macro(add_glob cur_list)
|
file(GLOB __tmp RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${ARGN})
|
||||||
file(GLOB __tmp RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${ARGN})
|
list(APPEND ${cur_list} ${__tmp})
|
||||||
list(APPEND ${cur_list} ${__tmp})
|
endmacro()
|
||||||
endmacro()
|
|
||||||
else ()
|
|
||||||
macro(add_glob cur_list)
|
|
||||||
file(GLOB __tmp RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${ARGN})
|
|
||||||
list(APPEND ${cur_list} ${__tmp})
|
|
||||||
endmacro()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
macro(add_headers_and_sources prefix common_path)
|
macro(add_headers_and_sources prefix common_path)
|
||||||
add_glob(${prefix}_headers ${CMAKE_CURRENT_SOURCE_DIR} ${common_path}/*.h)
|
add_glob(${prefix}_headers ${CMAKE_CURRENT_SOURCE_DIR} ${common_path}/*.h)
|
||||||
|
@ -10,7 +10,7 @@ if (NOT ENABLE_AMQPCPP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/CMakeLists.txt")
|
||||||
message (WARNING "submodule contrib/AMQP-CPP is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/AMQP-CPP is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal AMQP-CPP library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal AMQP-CPP library")
|
||||||
set (USE_AMQPCPP 0)
|
set (USE_AMQPCPP 0)
|
||||||
return()
|
return()
|
||||||
|
@ -13,7 +13,7 @@ option (USE_INTERNAL_AVRO_LIBRARY
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/avro/lang/c++/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/avro/lang/c++/CMakeLists.txt")
|
||||||
if (USE_INTERNAL_AVRO_LIBRARY)
|
if (USE_INTERNAL_AVRO_LIBRARY)
|
||||||
message(WARNING "submodule contrib/avro is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/avro is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot find internal avro")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot find internal avro")
|
||||||
set(USE_INTERNAL_AVRO_LIBRARY 0)
|
set(USE_INTERNAL_AVRO_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -10,11 +10,11 @@ endif()
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/base64/LICENSE")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/base64/LICENSE")
|
||||||
set (MISSING_INTERNAL_BASE64_LIBRARY 1)
|
set (MISSING_INTERNAL_BASE64_LIBRARY 1)
|
||||||
message (WARNING "submodule contrib/base64 is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/base64 is missing. to fix try run: \n git submodule update --init")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/base64")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/base64")
|
||||||
message (WARNING "submodule contrib/base64 is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/base64 is missing. to fix try run: \n git submodule update --init")
|
||||||
else()
|
else()
|
||||||
set (BASE64_LIBRARY base64)
|
set (BASE64_LIBRARY base64)
|
||||||
set (USE_BASE64 1)
|
set (USE_BASE64 1)
|
||||||
|
@ -16,7 +16,7 @@ endif()
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/brotli/c/include/brotli/decode.h")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/brotli/c/include/brotli/decode.h")
|
||||||
if (USE_INTERNAL_BROTLI_LIBRARY)
|
if (USE_INTERNAL_BROTLI_LIBRARY)
|
||||||
message (WARNING "submodule contrib/brotli is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/brotli is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot find internal brotli")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot find internal brotli")
|
||||||
set (USE_INTERNAL_BROTLI_LIBRARY 0)
|
set (USE_INTERNAL_BROTLI_LIBRARY 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -6,7 +6,7 @@ if (NOT ENABLE_BZIP2)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/bzip2/bzlib.h")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/bzip2/bzlib.h")
|
||||||
message (WARNING "submodule contrib/bzip2 is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/bzip2 is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal bzip2 library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal bzip2 library")
|
||||||
set (USE_NLP 0)
|
set (USE_NLP 0)
|
||||||
return()
|
return()
|
||||||
|
@ -11,7 +11,7 @@ option (USE_INTERNAL_CAPNP_LIBRARY "Set to FALSE to use system capnproto library
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/capnproto/CMakeLists.txt")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/capnproto/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_CAPNP_LIBRARY)
|
if(USE_INTERNAL_CAPNP_LIBRARY)
|
||||||
message(WARNING "submodule contrib/capnproto is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/capnproto is missing. to fix try run: \n git submodule update --init")
|
||||||
message(${RECONFIGURE_MESSAGE_LEVEL} "cannot find internal capnproto")
|
message(${RECONFIGURE_MESSAGE_LEVEL} "cannot find internal capnproto")
|
||||||
set(USE_INTERNAL_CAPNP_LIBRARY 0)
|
set(USE_INTERNAL_CAPNP_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
@ -34,8 +34,6 @@ endif()
|
|||||||
if (CAPNP_LIBRARIES)
|
if (CAPNP_LIBRARIES)
|
||||||
set (USE_CAPNP 1)
|
set (USE_CAPNP 1)
|
||||||
elseif(NOT MISSING_INTERNAL_CAPNP_LIBRARY)
|
elseif(NOT MISSING_INTERNAL_CAPNP_LIBRARY)
|
||||||
add_subdirectory(contrib/capnproto-cmake)
|
|
||||||
|
|
||||||
set (CAPNP_LIBRARIES capnpc)
|
set (CAPNP_LIBRARIES capnpc)
|
||||||
set (USE_CAPNP 1)
|
set (USE_CAPNP 1)
|
||||||
set (USE_INTERNAL_CAPNP_LIBRARY 1)
|
set (USE_INTERNAL_CAPNP_LIBRARY 1)
|
||||||
|
@ -14,7 +14,7 @@ if (APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cassandra")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cassandra")
|
||||||
message (ERROR "submodule contrib/cassandra is missing. to fix try run: \n git submodule update --init --recursive")
|
message (ERROR "submodule contrib/cassandra is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal Cassandra")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal Cassandra")
|
||||||
set (USE_CASSANDRA 0)
|
set (USE_CASSANDRA 0)
|
||||||
return()
|
return()
|
||||||
|
@ -17,7 +17,7 @@ option (USE_INTERNAL_LIBCXX_LIBRARY "Disable to use system libcxx and libcxxabi
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libcxx/CMakeLists.txt")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libcxx/CMakeLists.txt")
|
||||||
if (USE_INTERNAL_LIBCXX_LIBRARY)
|
if (USE_INTERNAL_LIBCXX_LIBRARY)
|
||||||
message(WARNING "submodule contrib/libcxx is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/libcxx is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libcxx")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libcxx")
|
||||||
set(USE_INTERNAL_LIBCXX_LIBRARY 0)
|
set(USE_INTERNAL_LIBCXX_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -6,7 +6,7 @@ endif()
|
|||||||
|
|
||||||
OPTION(ENABLE_CYRUS_SASL "Enable cyrus-sasl" ${DEFAULT_ENABLE_CYRUS_SASL})
|
OPTION(ENABLE_CYRUS_SASL "Enable cyrus-sasl" ${DEFAULT_ENABLE_CYRUS_SASL})
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl/README")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl/README")
|
||||||
message (WARNING "submodule contrib/cyrus-sasl is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/cyrus-sasl is missing. to fix try run: \n git submodule update --init")
|
||||||
set (ENABLE_CYRUS_SASL 0)
|
set (ENABLE_CYRUS_SASL 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ option (USE_INTERNAL_DATASKETCHES_LIBRARY "Set to FALSE to use system DataSketch
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/datasketches-cpp/theta/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/datasketches-cpp/theta/CMakeLists.txt")
|
||||||
if (USE_INTERNAL_DATASKETCHES_LIBRARY)
|
if (USE_INTERNAL_DATASKETCHES_LIBRARY)
|
||||||
message(WARNING "submodule contrib/datasketches-cpp is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/datasketches-cpp is missing. to fix try run: \n git submodule update --init")
|
||||||
endif()
|
endif()
|
||||||
set(MISSING_INTERNAL_DATASKETCHES_LIBRARY 1)
|
set(MISSING_INTERNAL_DATASKETCHES_LIBRARY 1)
|
||||||
set(USE_INTERNAL_DATASKETCHES_LIBRARY 0)
|
set(USE_INTERNAL_DATASKETCHES_LIBRARY 0)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/fast_float/include/fast_float/fast_float.h")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/fast_float/include/fast_float/fast_float.h")
|
||||||
message (FATAL_ERROR "submodule contrib/fast_float is missing. to fix try run: \n git submodule update --init --recursive")
|
message (FATAL_ERROR "submodule contrib/fast_float is missing. to fix try run: \n git submodule update --init")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(FAST_FLOAT_LIBRARY fast_float)
|
set(FAST_FLOAT_LIBRARY fast_float)
|
||||||
|
@ -10,7 +10,7 @@ if(NOT ENABLE_FASTOPS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/fastops/fastops/fastops.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/fastops/fastops/fastops.h")
|
||||||
message(WARNING "submodule contrib/fastops is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/fastops is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal fastops library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal fastops library")
|
||||||
set(MISSING_INTERNAL_FASTOPS_LIBRARY 1)
|
set(MISSING_INTERNAL_FASTOPS_LIBRARY 1)
|
||||||
endif()
|
endif()
|
||||||
|
15
cmake/find/filelog.cmake
Normal file
15
cmake/find/filelog.cmake
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
option (ENABLE_FILELOG "Enable FILELOG" ON)
|
||||||
|
|
||||||
|
if (NOT ENABLE_FILELOG)
|
||||||
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use StorageFileLog with ENABLE_FILELOG=OFF")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# StorageFileLog only support Linux platform
|
||||||
|
if (OS_LINUX)
|
||||||
|
set (USE_FILELOG 1)
|
||||||
|
message (STATUS "Using StorageFileLog = 1")
|
||||||
|
else()
|
||||||
|
message(STATUS "StorageFileLog is only supported on Linux")
|
||||||
|
endif ()
|
||||||
|
|
@ -26,7 +26,7 @@ option(USE_INTERNAL_GRPC_LIBRARY "Set to FALSE to use system gRPC library instea
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/grpc/CMakeLists.txt")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/grpc/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_GRPC_LIBRARY)
|
if(USE_INTERNAL_GRPC_LIBRARY)
|
||||||
message(WARNING "submodule contrib/grpc is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/grpc is missing. to fix try run: \n git submodule update --init")
|
||||||
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't use internal grpc")
|
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't use internal grpc")
|
||||||
set(USE_INTERNAL_GRPC_LIBRARY 0)
|
set(USE_INTERNAL_GRPC_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -4,7 +4,7 @@ option (USE_INTERNAL_GTEST_LIBRARY "Set to FALSE to use system Google Test inste
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/googletest/googletest/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/googletest/googletest/CMakeLists.txt")
|
||||||
if (USE_INTERNAL_GTEST_LIBRARY)
|
if (USE_INTERNAL_GTEST_LIBRARY)
|
||||||
message (WARNING "submodule contrib/googletest is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/googletest is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal gtest")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal gtest")
|
||||||
set (USE_INTERNAL_GTEST_LIBRARY 0)
|
set (USE_INTERNAL_GTEST_LIBRARY 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -11,7 +11,7 @@ option(USE_INTERNAL_H3_LIBRARY "Set to FALSE to use system h3 library instead of
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/h3/src/h3lib/include/h3Index.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/h3/src/h3lib/include/h3Index.h")
|
||||||
if(USE_INTERNAL_H3_LIBRARY)
|
if(USE_INTERNAL_H3_LIBRARY)
|
||||||
message(WARNING "submodule contrib/h3 is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/h3 is missing. to fix try run: \n git submodule update --init")
|
||||||
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal h3 library")
|
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal h3 library")
|
||||||
set(USE_INTERNAL_H3_LIBRARY 0)
|
set(USE_INTERNAL_H3_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -16,7 +16,7 @@ option(USE_INTERNAL_HDFS3_LIBRARY "Set to FALSE to use system HDFS3 instead of b
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libhdfs3/include/hdfs/hdfs.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libhdfs3/include/hdfs/hdfs.h")
|
||||||
if(USE_INTERNAL_HDFS3_LIBRARY)
|
if(USE_INTERNAL_HDFS3_LIBRARY)
|
||||||
message(WARNING "submodule contrib/libhdfs3 is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/libhdfs3 is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use internal HDFS3 library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use internal HDFS3 library")
|
||||||
set(USE_INTERNAL_HDFS3_LIBRARY 0)
|
set(USE_INTERNAL_HDFS3_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -16,7 +16,7 @@ option (USE_INTERNAL_ICU_LIBRARY "Set to FALSE to use system ICU library instead
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/icu/icu4c/LICENSE")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/icu/icu4c/LICENSE")
|
||||||
if (USE_INTERNAL_ICU_LIBRARY)
|
if (USE_INTERNAL_ICU_LIBRARY)
|
||||||
message (WARNING "submodule contrib/icu is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/icu is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal ICU")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal ICU")
|
||||||
set (USE_INTERNAL_ICU_LIBRARY 0)
|
set (USE_INTERNAL_ICU_LIBRARY 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
OPTION(ENABLE_KRB5 "Enable krb5" ${ENABLE_LIBRARIES})
|
OPTION(ENABLE_KRB5 "Enable krb5" ${ENABLE_LIBRARIES})
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/krb5/README")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/krb5/README")
|
||||||
message (WARNING "submodule contrib/krb5 is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/krb5 is missing. to fix try run: \n git submodule update --init")
|
||||||
set (ENABLE_KRB5 0)
|
set (ENABLE_KRB5 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ option (USE_INTERNAL_LDAP_LIBRARY "Set to FALSE to use system *LDAP library inst
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/openldap/README")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/openldap/README")
|
||||||
if (USE_INTERNAL_LDAP_LIBRARY)
|
if (USE_INTERNAL_LDAP_LIBRARY)
|
||||||
message (WARNING "Submodule contrib/openldap is missing. To fix try running:\n git submodule update --init --recursive")
|
message (WARNING "Submodule contrib/openldap is missing. To fix try running:\n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal LDAP library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal LDAP library")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
@ -64,6 +64,7 @@ if (NOT OPENLDAP_FOUND AND NOT MISSING_INTERNAL_LDAP_LIBRARY)
|
|||||||
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "aarch64" ) OR
|
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "aarch64" ) OR
|
||||||
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "ppc64le" ) OR
|
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "ppc64le" ) OR
|
||||||
( "${_system_name}" STREQUAL "freebsd" AND "${_system_processor}" STREQUAL "x86_64" ) OR
|
( "${_system_name}" STREQUAL "freebsd" AND "${_system_processor}" STREQUAL "x86_64" ) OR
|
||||||
|
( "${_system_name}" STREQUAL "freebsd" AND "${_system_processor}" STREQUAL "aarch64" ) OR
|
||||||
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "x86_64" ) OR
|
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "x86_64" ) OR
|
||||||
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "aarch64" )
|
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "aarch64" )
|
||||||
)
|
)
|
||||||
|
@ -16,7 +16,7 @@ endif()
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libgsasl/src/gsasl.h")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libgsasl/src/gsasl.h")
|
||||||
if (USE_INTERNAL_LIBGSASL_LIBRARY)
|
if (USE_INTERNAL_LIBGSASL_LIBRARY)
|
||||||
message (WARNING "submodule contrib/libgsasl is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/libgsasl is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libgsasl")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libgsasl")
|
||||||
set (USE_INTERNAL_LIBGSASL_LIBRARY 0)
|
set (USE_INTERNAL_LIBGSASL_LIBRARY 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -5,14 +5,14 @@ if (NOT ENABLE_LIBPQXX)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libpqxx/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libpqxx/CMakeLists.txt")
|
||||||
message (WARNING "submodule contrib/libpqxx is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/libpqxx is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libpqxx library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libpqxx library")
|
||||||
set (USE_LIBPQXX 0)
|
set (USE_LIBPQXX 0)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libpq/include")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libpq/include")
|
||||||
message (ERROR "submodule contrib/libpq is missing. to fix try run: \n git submodule update --init --recursive")
|
message (ERROR "submodule contrib/libpq is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libpq needed for libpqxx")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libpq needed for libpqxx")
|
||||||
set (USE_LIBPQXX 0)
|
set (USE_LIBPQXX 0)
|
||||||
return()
|
return()
|
||||||
|
11
cmake/find/libprotobuf-mutator.cmake
Normal file
11
cmake/find/libprotobuf-mutator.cmake
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
option(USE_LIBPROTOBUF_MUTATOR "Enable libprotobuf-mutator" ${ENABLE_FUZZING})
|
||||||
|
|
||||||
|
if (NOT USE_LIBPROTOBUF_MUTATOR)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LibProtobufMutator_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libprotobuf-mutator")
|
||||||
|
|
||||||
|
if (NOT EXISTS "${LibProtobufMutator_SOURCE_DIR}/README.md")
|
||||||
|
message (ERROR "submodule contrib/libprotobuf-mutator is missing. to fix try run: \n git submodule update --init")
|
||||||
|
endif()
|
@ -5,7 +5,7 @@ if (OS_DARWIN AND COMPILER_GCC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libuv")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libuv")
|
||||||
message (WARNING "submodule contrib/libuv is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/libuv is missing. to fix try run: \n git submodule update --init")
|
||||||
SET(MISSING_INTERNAL_LIBUV_LIBRARY 1)
|
SET(MISSING_INTERNAL_LIBUV_LIBRARY 1)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
@ -2,7 +2,7 @@ option (USE_INTERNAL_LIBXML2_LIBRARY "Set to FALSE to use system libxml2 library
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libxml2/libxml.h")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libxml2/libxml.h")
|
||||||
if (USE_INTERNAL_LIBXML2_LIBRARY)
|
if (USE_INTERNAL_LIBXML2_LIBRARY)
|
||||||
message (WARNING "submodule contrib/libxml2 is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/libxml2 is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libxml")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libxml")
|
||||||
set (USE_INTERNAL_LIBXML2_LIBRARY 0)
|
set (USE_INTERNAL_LIBXML2_LIBRARY 0)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -12,7 +12,7 @@ if (NOT ENABLE_EMBEDDED_COMPILER)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/llvm/llvm/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/llvm/llvm/CMakeLists.txt")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "submodule /contrib/llvm is missing. to fix try run: \n git submodule update --init --recursive")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "submodule /contrib/llvm is missing. to fix try run: \n git submodule update --init")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (USE_EMBEDDED_COMPILER 1)
|
set (USE_EMBEDDED_COMPILER 1)
|
||||||
|
@ -11,7 +11,7 @@ option (USE_INTERNAL_MSGPACK_LIBRARY "Set to FALSE to use system msgpack library
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/msgpack-c/include/msgpack.hpp")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/msgpack-c/include/msgpack.hpp")
|
||||||
if(USE_INTERNAL_MSGPACK_LIBRARY)
|
if(USE_INTERNAL_MSGPACK_LIBRARY)
|
||||||
message(WARNING "Submodule contrib/msgpack-c is missing. To fix try run: \n git submodule update --init --recursive")
|
message(WARNING "Submodule contrib/msgpack-c is missing. To fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use internal msgpack")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use internal msgpack")
|
||||||
set(USE_INTERNAL_MSGPACK_LIBRARY 0)
|
set(USE_INTERNAL_MSGPACK_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -16,7 +16,7 @@ option(USE_INTERNAL_MYSQL_LIBRARY "Set to FALSE to use system mysqlclient librar
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/mariadb-connector-c/README")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/mariadb-connector-c/README")
|
||||||
if(USE_INTERNAL_MYSQL_LIBRARY)
|
if(USE_INTERNAL_MYSQL_LIBRARY)
|
||||||
message(WARNING "submodule contrib/mariadb-connector-c is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/mariadb-connector-c is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal mysql library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal mysql library")
|
||||||
set(USE_INTERNAL_MYSQL_LIBRARY 0)
|
set(USE_INTERNAL_MYSQL_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -7,7 +7,7 @@ if (NOT USE_INTERNAL_NANODBC_LIBRARY)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/nanodbc/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/nanodbc/CMakeLists.txt")
|
||||||
message (FATAL_ERROR "submodule contrib/nanodbc is missing. to fix try run: \n git submodule update --init --recursive")
|
message (FATAL_ERROR "submodule contrib/nanodbc is missing. to fix try run: \n git submodule update --init")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set (NANODBC_LIBRARY nanodbc)
|
set (NANODBC_LIBRARY nanodbc)
|
||||||
|
@ -7,21 +7,21 @@ if (NOT ENABLE_NLP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libstemmer_c/Makefile")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libstemmer_c/Makefile")
|
||||||
message (WARNING "submodule contrib/libstemmer_c is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/libstemmer_c is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libstemmer_c library, NLP functions will be disabled")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libstemmer_c library, NLP functions will be disabled")
|
||||||
set (USE_NLP 0)
|
set (USE_NLP 0)
|
||||||
return()
|
return()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/wordnet-blast/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/wordnet-blast/CMakeLists.txt")
|
||||||
message (WARNING "submodule contrib/wordnet-blast is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/wordnet-blast is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal wordnet-blast library, NLP functions will be disabled")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal wordnet-blast library, NLP functions will be disabled")
|
||||||
set (USE_NLP 0)
|
set (USE_NLP 0)
|
||||||
return()
|
return()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/lemmagen-c/README.md")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/lemmagen-c/README.md")
|
||||||
message (WARNING "submodule contrib/lemmagen-c is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/lemmagen-c is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal lemmagen-c library, NLP functions will be disabled")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal lemmagen-c library, NLP functions will be disabled")
|
||||||
set (USE_NLP 0)
|
set (USE_NLP 0)
|
||||||
return()
|
return()
|
||||||
|
@ -5,7 +5,7 @@ if (NOT ENABLE_NURAFT)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/NuRaft/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/NuRaft/CMakeLists.txt")
|
||||||
message (WARNING "submodule contrib/NuRaft is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/NuRaft is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal NuRaft library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal NuRaft library")
|
||||||
set (USE_NURAFT 0)
|
set (USE_NURAFT 0)
|
||||||
return()
|
return()
|
||||||
|
@ -18,7 +18,7 @@ include(cmake/find/snappy.cmake)
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/orc/c++/include/orc/OrcFile.hh")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/orc/c++/include/orc/OrcFile.hh")
|
||||||
if(USE_INTERNAL_ORC_LIBRARY)
|
if(USE_INTERNAL_ORC_LIBRARY)
|
||||||
message(WARNING "submodule contrib/orc is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/orc is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal ORC")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal ORC")
|
||||||
set(USE_INTERNAL_ORC_LIBRARY 0)
|
set(USE_INTERNAL_ORC_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -20,7 +20,7 @@ endif()
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/CMakeLists.txt")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_PARQUET_LIBRARY)
|
if(USE_INTERNAL_PARQUET_LIBRARY)
|
||||||
message(WARNING "submodule contrib/arrow (required for Parquet) is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/arrow (required for Parquet) is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use internal parquet library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use internal parquet library")
|
||||||
set(USE_INTERNAL_PARQUET_LIBRARY 0)
|
set(USE_INTERNAL_PARQUET_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -15,7 +15,7 @@ option(USE_INTERNAL_PROTOBUF_LIBRARY "Set to FALSE to use system protobuf instea
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/protobuf/cmake/CMakeLists.txt")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/protobuf/cmake/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_PROTOBUF_LIBRARY)
|
if(USE_INTERNAL_PROTOBUF_LIBRARY)
|
||||||
message(WARNING "submodule contrib/protobuf is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/protobuf is missing. to fix try run: \n git submodule update --init")
|
||||||
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't use internal protobuf")
|
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't use internal protobuf")
|
||||||
set(USE_INTERNAL_PROTOBUF_LIBRARY 0)
|
set(USE_INTERNAL_PROTOBUF_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -10,7 +10,7 @@ option(USE_INTERNAL_RAPIDJSON_LIBRARY "Set to FALSE to use system rapidjson libr
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/rapidjson/include/rapidjson/rapidjson.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/rapidjson/include/rapidjson/rapidjson.h")
|
||||||
if(USE_INTERNAL_RAPIDJSON_LIBRARY)
|
if(USE_INTERNAL_RAPIDJSON_LIBRARY)
|
||||||
message(WARNING "submodule contrib/rapidjson is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/rapidjson is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal rapidjson library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal rapidjson library")
|
||||||
set(USE_INTERNAL_RAPIDJSON_LIBRARY 0)
|
set(USE_INTERNAL_RAPIDJSON_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -11,7 +11,7 @@ option (USE_INTERNAL_RDKAFKA_LIBRARY "Set to FALSE to use system librdkafka inst
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cppkafka/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cppkafka/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_RDKAFKA_LIBRARY)
|
if(USE_INTERNAL_RDKAFKA_LIBRARY)
|
||||||
message (WARNING "submodule contrib/cppkafka is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/cppkafka is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal cppkafka")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal cppkafka")
|
||||||
set (USE_INTERNAL_RDKAFKA_LIBRARY 0)
|
set (USE_INTERNAL_RDKAFKA_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
@ -20,7 +20,7 @@ endif ()
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/librdkafka/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/librdkafka/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_RDKAFKA_LIBRARY OR MISSING_INTERNAL_CPPKAFKA_LIBRARY)
|
if(USE_INTERNAL_RDKAFKA_LIBRARY OR MISSING_INTERNAL_CPPKAFKA_LIBRARY)
|
||||||
message (WARNING "submodule contrib/librdkafka is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/librdkafka is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal rdkafka")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal rdkafka")
|
||||||
set (USE_INTERNAL_RDKAFKA_LIBRARY 0)
|
set (USE_INTERNAL_RDKAFKA_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -2,7 +2,7 @@ option (USE_INTERNAL_RE2_LIBRARY "Set to FALSE to use system re2 library instead
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/re2/CMakeLists.txt")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/re2/CMakeLists.txt")
|
||||||
if(USE_INTERNAL_RE2_LIBRARY)
|
if(USE_INTERNAL_RE2_LIBRARY)
|
||||||
message(WARNING "submodule contrib/re2 is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/re2 is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal re2 library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal re2 library")
|
||||||
endif()
|
endif()
|
||||||
set(USE_INTERNAL_RE2_LIBRARY 0)
|
set(USE_INTERNAL_RE2_LIBRARY 0)
|
||||||
|
@ -15,7 +15,7 @@ option(USE_INTERNAL_ROCKSDB_LIBRARY "Set to FALSE to use system ROCKSDB library
|
|||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/rocksdb/CMakeLists.txt")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/rocksdb/CMakeLists.txt")
|
||||||
if (USE_INTERNAL_ROCKSDB_LIBRARY)
|
if (USE_INTERNAL_ROCKSDB_LIBRARY)
|
||||||
message (WARNING "submodule contrib is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib is missing. to fix try run: \n git submodule update --init")
|
||||||
message(${RECONFIGURE_MESSAGE_LEVEL} "cannot find internal rocksdb")
|
message(${RECONFIGURE_MESSAGE_LEVEL} "cannot find internal rocksdb")
|
||||||
endif()
|
endif()
|
||||||
set (MISSING_INTERNAL_ROCKSDB 1)
|
set (MISSING_INTERNAL_ROCKSDB 1)
|
||||||
|
@ -3,7 +3,7 @@ option(ENABLE_S2_GEOMETRY "Enable S2 geometry library" ${ENABLE_LIBRARIES})
|
|||||||
|
|
||||||
if (ENABLE_S2_GEOMETRY)
|
if (ENABLE_S2_GEOMETRY)
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/s2geometry")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/s2geometry")
|
||||||
message (WARNING "submodule contrib/s2geometry is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/s2geometry is missing. to fix try run: \n git submodule update --init")
|
||||||
set (ENABLE_S2_GEOMETRY 0)
|
set (ENABLE_S2_GEOMETRY 0)
|
||||||
set (USE_S2_GEOMETRY 0)
|
set (USE_S2_GEOMETRY 0)
|
||||||
else()
|
else()
|
||||||
|
@ -23,7 +23,7 @@ if (NOT USE_INTERNAL_AWS_S3_LIBRARY)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-s3")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-s3")
|
||||||
message (WARNING "submodule contrib/aws is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/aws is missing. to fix try run: \n git submodule update --init")
|
||||||
if (USE_INTERNAL_AWS_S3_LIBRARY)
|
if (USE_INTERNAL_AWS_S3_LIBRARY)
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal S3 library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal S3 library")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -2,7 +2,7 @@ set (SENTRY_LIBRARY "sentry")
|
|||||||
|
|
||||||
set (SENTRY_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/sentry-native/include")
|
set (SENTRY_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/sentry-native/include")
|
||||||
if (NOT EXISTS "${SENTRY_INCLUDE_DIR}/sentry.h")
|
if (NOT EXISTS "${SENTRY_INCLUDE_DIR}/sentry.h")
|
||||||
message (WARNING "submodule contrib/sentry-native is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/sentry-native is missing. to fix try run: \n git submodule update --init")
|
||||||
if (USE_SENTRY)
|
if (USE_SENTRY)
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal sentry library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal sentry library")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
option (USE_SIMDJSON "Use simdjson" ${ENABLE_LIBRARIES})
|
option (USE_SIMDJSON "Use simdjson" ${ENABLE_LIBRARIES})
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/simdjson/include/simdjson.h")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/simdjson/include/simdjson.h")
|
||||||
message (WARNING "submodule contrib/simdjson is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/simdjson is missing. to fix try run: \n git submodule update --init")
|
||||||
if (USE_SIMDJSON)
|
if (USE_SIMDJSON)
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal simdjson library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal simdjson library")
|
||||||
endif()
|
endif()
|
||||||
|
@ -5,7 +5,7 @@ if (NOT ENABLE_SQLITE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/sqlite-amalgamation/sqlite3.c")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/sqlite-amalgamation/sqlite3.c")
|
||||||
message (WARNING "submodule contrib/sqlite3-amalgamation is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/sqlite3-amalgamation is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal sqlite library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal sqlite library")
|
||||||
set (USE_SQLITE 0)
|
set (USE_SQLITE 0)
|
||||||
return()
|
return()
|
||||||
|
@ -13,7 +13,7 @@ option(USE_INTERNAL_SSL_LIBRARY "Set to FALSE to use system *ssl library instead
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/boringssl/README.md")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/boringssl/README.md")
|
||||||
if(USE_INTERNAL_SSL_LIBRARY)
|
if(USE_INTERNAL_SSL_LIBRARY)
|
||||||
message(WARNING "submodule contrib/boringssl is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/boringssl is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal ssl library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal ssl library")
|
||||||
endif()
|
endif()
|
||||||
set(USE_INTERNAL_SSL_LIBRARY 0)
|
set(USE_INTERNAL_SSL_LIBRARY 0)
|
||||||
@ -53,12 +53,7 @@ endif ()
|
|||||||
if (NOT OPENSSL_FOUND AND NOT MISSING_INTERNAL_SSL_LIBRARY)
|
if (NOT OPENSSL_FOUND AND NOT MISSING_INTERNAL_SSL_LIBRARY)
|
||||||
set (USE_INTERNAL_SSL_LIBRARY 1)
|
set (USE_INTERNAL_SSL_LIBRARY 1)
|
||||||
set (OPENSSL_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/boringssl")
|
set (OPENSSL_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/boringssl")
|
||||||
|
set (OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
|
||||||
if (ARCH_AMD64)
|
|
||||||
set (OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
|
|
||||||
elseif (ARCH_AARCH64)
|
|
||||||
set (OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
|
|
||||||
endif ()
|
|
||||||
set (OPENSSL_CRYPTO_LIBRARY crypto)
|
set (OPENSSL_CRYPTO_LIBRARY crypto)
|
||||||
set (OPENSSL_SSL_LIBRARY ssl)
|
set (OPENSSL_SSL_LIBRARY ssl)
|
||||||
set (OPENSSL_FOUND 1)
|
set (OPENSSL_FOUND 1)
|
||||||
|
@ -2,11 +2,11 @@ option(ENABLE_STATS "Enable StatsLib library" ${ENABLE_LIBRARIES})
|
|||||||
|
|
||||||
if (ENABLE_STATS)
|
if (ENABLE_STATS)
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/stats")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/stats")
|
||||||
message (WARNING "submodule contrib/stats is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/stats is missing. to fix try run: \n git submodule update --init")
|
||||||
set (ENABLE_STATS 0)
|
set (ENABLE_STATS 0)
|
||||||
set (USE_STATS 0)
|
set (USE_STATS 0)
|
||||||
elseif (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/gcem")
|
elseif (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/gcem")
|
||||||
message (WARNING "submodule contrib/gcem is missing. to fix try run: \n git submodule update --init --recursive")
|
message (WARNING "submodule contrib/gcem is missing. to fix try run: \n git submodule update --init")
|
||||||
set (ENABLE_STATS 0)
|
set (ENABLE_STATS 0)
|
||||||
set (USE_STATS 0)
|
set (USE_STATS 0)
|
||||||
else()
|
else()
|
||||||
|
@ -2,7 +2,7 @@ option (USE_INTERNAL_XZ_LIBRARY "Set to OFF to use system xz (lzma) library inst
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/xz/src/liblzma/api/lzma.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/xz/src/liblzma/api/lzma.h")
|
||||||
if(USE_INTERNAL_XZ_LIBRARY)
|
if(USE_INTERNAL_XZ_LIBRARY)
|
||||||
message(WARNING "submodule contrib/xz is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/xz is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal xz (lzma) library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal xz (lzma) library")
|
||||||
set(USE_INTERNAL_XZ_LIBRARY 0)
|
set(USE_INTERNAL_XZ_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
@ -5,5 +5,5 @@ if (NOT USE_YAML_CPP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/yaml-cpp/README.md")
|
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/yaml-cpp/README.md")
|
||||||
message (ERROR "submodule contrib/yaml-cpp is missing. to fix try run: \n git submodule update --init --recursive")
|
message (ERROR "submodule contrib/yaml-cpp is missing. to fix try run: \n git submodule update --init")
|
||||||
endif()
|
endif()
|
||||||
|
@ -12,7 +12,7 @@ endif ()
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/${INTERNAL_ZLIB_NAME}/zlib.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/${INTERNAL_ZLIB_NAME}/zlib.h")
|
||||||
if(USE_INTERNAL_ZLIB_LIBRARY)
|
if(USE_INTERNAL_ZLIB_LIBRARY)
|
||||||
message(WARNING "submodule contrib/${INTERNAL_ZLIB_NAME} is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/${INTERNAL_ZLIB_NAME} is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal zlib library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal zlib library")
|
||||||
endif()
|
endif()
|
||||||
set(USE_INTERNAL_ZLIB_LIBRARY 0)
|
set(USE_INTERNAL_ZLIB_LIBRARY 0)
|
||||||
|
@ -2,7 +2,7 @@ option (USE_INTERNAL_ZSTD_LIBRARY "Set to FALSE to use system zstd library inste
|
|||||||
|
|
||||||
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/zstd/lib/zstd.h")
|
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/zstd/lib/zstd.h")
|
||||||
if(USE_INTERNAL_ZSTD_LIBRARY)
|
if(USE_INTERNAL_ZSTD_LIBRARY)
|
||||||
message(WARNING "submodule contrib/zstd is missing. to fix try run: \n git submodule update --init --recursive")
|
message(WARNING "submodule contrib/zstd is missing. to fix try run: \n git submodule update --init")
|
||||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal zstd library")
|
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal zstd library")
|
||||||
set(USE_INTERNAL_ZSTD_LIBRARY 0)
|
set(USE_INTERNAL_ZSTD_LIBRARY 0)
|
||||||
endif()
|
endif()
|
||||||
|
22
cmake/freebsd/toolchain-aarch64.cmake
Normal file
22
cmake/freebsd/toolchain-aarch64.cmake
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
set (CMAKE_SYSTEM_NAME "FreeBSD")
|
||||||
|
set (CMAKE_SYSTEM_PROCESSOR "aarch64")
|
||||||
|
set (CMAKE_C_COMPILER_TARGET "aarch64-unknown-freebsd12")
|
||||||
|
set (CMAKE_CXX_COMPILER_TARGET "aarch64-unknown-freebsd12")
|
||||||
|
set (CMAKE_ASM_COMPILER_TARGET "aarch64-unknown-freebsd12")
|
||||||
|
set (CMAKE_SYSROOT "${CMAKE_CURRENT_LIST_DIR}/../toolchain/freebsd-aarch64")
|
||||||
|
|
||||||
|
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) # disable linkage check - it doesn't work in CMake
|
||||||
|
|
||||||
|
set (CMAKE_AR "/usr/bin/ar" CACHE FILEPATH "" FORCE)
|
||||||
|
set (CMAKE_RANLIB "/usr/bin/ranlib" CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
set (CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
|
||||||
|
set (HAS_PRE_1970_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_PRE_1970_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
||||||
|
|
||||||
|
set (HAS_POST_2038_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_POST_2038_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
@ -5,7 +5,7 @@ set (DEFAULT_LIBS "-nodefaultlibs")
|
|||||||
|
|
||||||
# We need builtins from Clang's RT even without libcxx - for ubsan+int128.
|
# We need builtins from Clang's RT even without libcxx - for ubsan+int128.
|
||||||
# See https://bugs.llvm.org/show_bug.cgi?id=16404
|
# See https://bugs.llvm.org/show_bug.cgi?id=16404
|
||||||
if (COMPILER_CLANG AND NOT (CMAKE_CROSSCOMPILING AND ARCH_AARCH64))
|
if (COMPILER_CLANG AND NOT CMAKE_CROSSCOMPILING)
|
||||||
execute_process (COMMAND ${CMAKE_CXX_COMPILER} --print-libgcc-file-name --rtlib=compiler-rt OUTPUT_VARIABLE BUILTINS_LIBRARY OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process (COMMAND ${CMAKE_CXX_COMPILER} --print-libgcc-file-name --rtlib=compiler-rt OUTPUT_VARIABLE BUILTINS_LIBRARY OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
else ()
|
else ()
|
||||||
set (BUILTINS_LIBRARY "-lgcc")
|
set (BUILTINS_LIBRARY "-lgcc")
|
||||||
@ -14,6 +14,8 @@ endif ()
|
|||||||
if (OS_ANDROID)
|
if (OS_ANDROID)
|
||||||
# pthread and rt are included in libc
|
# pthread and rt are included in libc
|
||||||
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${BUILTINS_LIBRARY} ${COVERAGE_OPTION} -lc -lm -ldl")
|
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${BUILTINS_LIBRARY} ${COVERAGE_OPTION} -lc -lm -ldl")
|
||||||
|
elseif (USE_MUSL)
|
||||||
|
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${BUILTINS_LIBRARY} ${COVERAGE_OPTION} -static -lc")
|
||||||
else ()
|
else ()
|
||||||
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${BUILTINS_LIBRARY} ${COVERAGE_OPTION} -lc -lm -lrt -lpthread -ldl")
|
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${BUILTINS_LIBRARY} ${COVERAGE_OPTION} -lc -lm -lrt -lpthread -ldl")
|
||||||
endif ()
|
endif ()
|
||||||
@ -26,7 +28,7 @@ set(CMAKE_C_STANDARD_LIBRARIES ${DEFAULT_LIBS})
|
|||||||
# glibc-compatibility library relies to constant version of libc headers
|
# glibc-compatibility library relies to constant version of libc headers
|
||||||
# (because minor changes in function attributes between different glibc versions will introduce incompatibilities)
|
# (because minor changes in function attributes between different glibc versions will introduce incompatibilities)
|
||||||
# This is for x86_64. For other architectures we have separate toolchains.
|
# This is for x86_64. For other architectures we have separate toolchains.
|
||||||
if (ARCH_AMD64 AND NOT_UNBUNDLED)
|
if (ARCH_AMD64 AND NOT_UNBUNDLED AND NOT CMAKE_CROSSCOMPILING)
|
||||||
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES ${ClickHouse_SOURCE_DIR}/contrib/libc-headers/x86_64-linux-gnu ${ClickHouse_SOURCE_DIR}/contrib/libc-headers)
|
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES ${ClickHouse_SOURCE_DIR}/contrib/libc-headers/x86_64-linux-gnu ${ClickHouse_SOURCE_DIR}/contrib/libc-headers)
|
||||||
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${ClickHouse_SOURCE_DIR}/contrib/libc-headers/x86_64-linux-gnu ${ClickHouse_SOURCE_DIR}/contrib/libc-headers)
|
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${ClickHouse_SOURCE_DIR}/contrib/libc-headers/x86_64-linux-gnu ${ClickHouse_SOURCE_DIR}/contrib/libc-headers)
|
||||||
endif ()
|
endif ()
|
||||||
@ -37,8 +39,10 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
if (NOT OS_ANDROID)
|
if (NOT OS_ANDROID)
|
||||||
# Our compatibility layer doesn't build under Android, many errors in musl.
|
if (NOT USE_MUSL)
|
||||||
add_subdirectory(base/glibc-compatibility)
|
# Our compatibility layer doesn't build under Android, many errors in musl.
|
||||||
|
add_subdirectory(base/glibc-compatibility)
|
||||||
|
endif ()
|
||||||
add_subdirectory(base/harmful)
|
add_subdirectory(base/harmful)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
@ -1,17 +1,24 @@
|
|||||||
|
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
set (CMAKE_SYSTEM_NAME "Linux")
|
set (CMAKE_SYSTEM_NAME "Linux")
|
||||||
set (CMAKE_SYSTEM_PROCESSOR "aarch64")
|
set (CMAKE_SYSTEM_PROCESSOR "aarch64")
|
||||||
set (CMAKE_C_COMPILER_TARGET "aarch64-linux-gnu")
|
set (CMAKE_C_COMPILER_TARGET "aarch64-linux-gnu")
|
||||||
set (CMAKE_CXX_COMPILER_TARGET "aarch64-linux-gnu")
|
set (CMAKE_CXX_COMPILER_TARGET "aarch64-linux-gnu")
|
||||||
set (CMAKE_ASM_COMPILER_TARGET "aarch64-linux-gnu")
|
set (CMAKE_ASM_COMPILER_TARGET "aarch64-linux-gnu")
|
||||||
set (CMAKE_SYSROOT "${CMAKE_CURRENT_LIST_DIR}/../toolchain/linux-aarch64/aarch64-linux-gnu/libc")
|
|
||||||
|
|
||||||
# We don't use compiler from toolchain because it's gcc-8, and we provide support only for gcc-9.
|
set (TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../../contrib/sysroot/linux-aarch64")
|
||||||
set (CMAKE_AR "${CMAKE_CURRENT_LIST_DIR}/../toolchain/linux-aarch64/bin/aarch64-linux-gnu-ar" CACHE FILEPATH "" FORCE)
|
|
||||||
set (CMAKE_RANLIB "${CMAKE_CURRENT_LIST_DIR}/../toolchain/linux-aarch64/bin/aarch64-linux-gnu-ranlib" CACHE FILEPATH "" FORCE)
|
|
||||||
|
|
||||||
set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} --gcc-toolchain=${CMAKE_CURRENT_LIST_DIR}/../toolchain/linux-aarch64")
|
set (CMAKE_SYSROOT "${TOOLCHAIN_PATH}/aarch64-linux-gnu/libc")
|
||||||
set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} --gcc-toolchain=${CMAKE_CURRENT_LIST_DIR}/../toolchain/linux-aarch64")
|
|
||||||
set (CMAKE_ASM_FLAGS_INIT "${CMAKE_ASM_FLAGS} --gcc-toolchain=${CMAKE_CURRENT_LIST_DIR}/../toolchain/linux-aarch64")
|
find_program (LLVM_AR_PATH NAMES "llvm-ar" "llvm-ar-13" "llvm-ar-12" "llvm-ar-11" "llvm-ar-10" "llvm-ar-9" "llvm-ar-8")
|
||||||
|
find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib" "llvm-ranlib-13" "llvm-ranlib-12" "llvm-ranlib-11" "llvm-ranlib-10" "llvm-ranlib-9")
|
||||||
|
|
||||||
|
set (CMAKE_AR "${LLVM_AR_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
set (CMAKE_RANLIB "${LLVM_RANLIB_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_ASM_FLAGS_INIT "${CMAKE_ASM_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
32
cmake/linux/toolchain-ppc64le.cmake
Normal file
32
cmake/linux/toolchain-ppc64le.cmake
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
|
set (CMAKE_SYSTEM_NAME "Linux")
|
||||||
|
set (CMAKE_SYSTEM_PROCESSOR "ppc64le")
|
||||||
|
set (CMAKE_C_COMPILER_TARGET "ppc64le-linux-gnu")
|
||||||
|
set (CMAKE_CXX_COMPILER_TARGET "ppc64le-linux-gnu")
|
||||||
|
set (CMAKE_ASM_COMPILER_TARGET "ppc64le-linux-gnu")
|
||||||
|
|
||||||
|
set (TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../../contrib/sysroot/linux-powerpc64le")
|
||||||
|
|
||||||
|
set (CMAKE_SYSROOT "${TOOLCHAIN_PATH}/powerpc64le-linux-gnu/libc")
|
||||||
|
|
||||||
|
find_program (LLVM_AR_PATH NAMES "llvm-ar" "llvm-ar-13" "llvm-ar-12" "llvm-ar-11" "llvm-ar-10" "llvm-ar-9" "llvm-ar-8")
|
||||||
|
find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib" "llvm-ranlib-13" "llvm-ranlib-12" "llvm-ranlib-11" "llvm-ranlib-10" "llvm-ranlib-9")
|
||||||
|
|
||||||
|
set (CMAKE_AR "${LLVM_AR_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
set (CMAKE_RANLIB "${LLVM_RANLIB_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_ASM_FLAGS_INIT "${CMAKE_ASM_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
|
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
set (CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
|
||||||
|
set (HAS_PRE_1970_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_PRE_1970_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
||||||
|
|
||||||
|
set (HAS_POST_2038_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_POST_2038_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
32
cmake/linux/toolchain-riscv64.cmake
Normal file
32
cmake/linux/toolchain-riscv64.cmake
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
|
set (CMAKE_SYSTEM_NAME "Linux")
|
||||||
|
set (CMAKE_SYSTEM_PROCESSOR "riscv64")
|
||||||
|
set (CMAKE_C_COMPILER_TARGET "riscv64-linux-gnu")
|
||||||
|
set (CMAKE_CXX_COMPILER_TARGET "riscv64-linux-gnu")
|
||||||
|
set (CMAKE_ASM_COMPILER_TARGET "riscv64-linux-gnu")
|
||||||
|
|
||||||
|
set (TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../../contrib/sysroot/linux-riscv64")
|
||||||
|
|
||||||
|
set (CMAKE_SYSROOT "${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
|
find_program (LLVM_AR_PATH NAMES "llvm-ar" "llvm-ar-13" "llvm-ar-12" "llvm-ar-11" "llvm-ar-10" "llvm-ar-9" "llvm-ar-8")
|
||||||
|
find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib" "llvm-ranlib-13" "llvm-ranlib-12" "llvm-ranlib-11" "llvm-ranlib-10" "llvm-ranlib-9")
|
||||||
|
|
||||||
|
set (CMAKE_AR "${LLVM_AR_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
set (CMAKE_RANLIB "${LLVM_RANLIB_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_ASM_FLAGS_INIT "${CMAKE_ASM_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
|
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
set (CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
|
||||||
|
set (HAS_PRE_1970_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_PRE_1970_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
||||||
|
|
||||||
|
set (HAS_POST_2038_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_POST_2038_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
35
cmake/linux/toolchain-x86_64-musl.cmake
Normal file
35
cmake/linux/toolchain-x86_64-musl.cmake
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
|
set (CMAKE_SYSTEM_NAME "Linux")
|
||||||
|
set (CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||||
|
set (CMAKE_C_COMPILER_TARGET "x86_64-linux-musl")
|
||||||
|
set (CMAKE_CXX_COMPILER_TARGET "x86_64-linux-musl")
|
||||||
|
set (CMAKE_ASM_COMPILER_TARGET "x86_64-linux-musl")
|
||||||
|
|
||||||
|
set (TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../../contrib/sysroot/linux-x86_64-musl")
|
||||||
|
|
||||||
|
set (CMAKE_SYSROOT "${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
|
find_program (LLVM_AR_PATH NAMES "llvm-ar" "llvm-ar-13" "llvm-ar-12" "llvm-ar-11" "llvm-ar-10" "llvm-ar-9" "llvm-ar-8")
|
||||||
|
find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib" "llvm-ranlib-13" "llvm-ranlib-12" "llvm-ranlib-11" "llvm-ranlib-10" "llvm-ranlib-9")
|
||||||
|
|
||||||
|
set (CMAKE_AR "${LLVM_AR_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
set (CMAKE_RANLIB "${LLVM_RANLIB_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_ASM_FLAGS_INIT "${CMAKE_ASM_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
|
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
set (CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
|
||||||
|
set (HAS_PRE_1970_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_PRE_1970_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
||||||
|
|
||||||
|
set (HAS_POST_2038_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_POST_2038_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
||||||
|
|
||||||
|
set (USE_MUSL 1)
|
||||||
|
add_definitions(-DUSE_MUSL=1)
|
32
cmake/linux/toolchain-x86_64.cmake
Normal file
32
cmake/linux/toolchain-x86_64.cmake
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||||
|
|
||||||
|
set (CMAKE_SYSTEM_NAME "Linux")
|
||||||
|
set (CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||||
|
set (CMAKE_C_COMPILER_TARGET "x86_64-linux-gnu")
|
||||||
|
set (CMAKE_CXX_COMPILER_TARGET "x86_64-linux-gnu")
|
||||||
|
set (CMAKE_ASM_COMPILER_TARGET "x86_64-linux-gnu")
|
||||||
|
|
||||||
|
set (TOOLCHAIN_PATH "${CMAKE_CURRENT_LIST_DIR}/../../contrib/sysroot/linux-x86_64")
|
||||||
|
|
||||||
|
set (CMAKE_SYSROOT "${TOOLCHAIN_PATH}/x86_64-linux-gnu/libc")
|
||||||
|
|
||||||
|
find_program (LLVM_AR_PATH NAMES "llvm-ar" "llvm-ar-13" "llvm-ar-12" "llvm-ar-11" "llvm-ar-10" "llvm-ar-9" "llvm-ar-8")
|
||||||
|
find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib" "llvm-ranlib-13" "llvm-ranlib-12" "llvm-ranlib-11" "llvm-ranlib-10" "llvm-ranlib-9")
|
||||||
|
|
||||||
|
set (CMAKE_AR "${LLVM_AR_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
set (CMAKE_RANLIB "${LLVM_RANLIB_PATH}" CACHE FILEPATH "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_C_FLAGS_INIT "${CMAKE_C_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
set (CMAKE_ASM_FLAGS_INIT "${CMAKE_ASM_FLAGS} --gcc-toolchain=${TOOLCHAIN_PATH}")
|
||||||
|
|
||||||
|
set (LINKER_NAME "ld.lld" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set (CMAKE_EXE_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
set (CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
|
||||||
|
|
||||||
|
set (HAS_PRE_1970_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_PRE_1970_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
||||||
|
|
||||||
|
set (HAS_POST_2038_EXITCODE "0" CACHE STRING "Result from TRY_RUN" FORCE)
|
||||||
|
set (HAS_POST_2038_EXITCODE__TRYRUN_OUTPUT "" CACHE STRING "Output from TRY_RUN" FORCE)
|
@ -20,40 +20,30 @@ endif ()
|
|||||||
if (CMAKE_CROSSCOMPILING)
|
if (CMAKE_CROSSCOMPILING)
|
||||||
if (OS_DARWIN)
|
if (OS_DARWIN)
|
||||||
# FIXME: broken dependencies
|
# FIXME: broken dependencies
|
||||||
set (ENABLE_PROTOBUF OFF CACHE INTERNAL "")
|
|
||||||
set (ENABLE_GRPC OFF CACHE INTERNAL "") # no protobuf -> no grpc
|
set (ENABLE_GRPC OFF CACHE INTERNAL "") # no protobuf -> no grpc
|
||||||
|
|
||||||
set (USE_SNAPPY OFF CACHE INTERNAL "")
|
|
||||||
set (ENABLE_PARQUET OFF CACHE INTERNAL "") # no snappy and protobuf -> no parquet
|
|
||||||
set (ENABLE_ORC OFF CACHE INTERNAL "") # no arrow (parquet) -> no orc
|
|
||||||
|
|
||||||
set (ENABLE_ICU OFF CACHE INTERNAL "")
|
set (ENABLE_ICU OFF CACHE INTERNAL "")
|
||||||
set (ENABLE_FASTOPS OFF CACHE INTERNAL "")
|
set (ENABLE_FASTOPS OFF CACHE INTERNAL "")
|
||||||
elseif (OS_LINUX OR OS_ANDROID)
|
elseif (OS_LINUX OR OS_ANDROID)
|
||||||
if (ARCH_AARCH64)
|
if (ARCH_AARCH64)
|
||||||
# FIXME: broken dependencies
|
# FIXME: broken dependencies
|
||||||
set (ENABLE_PROTOBUF OFF CACHE INTERNAL "")
|
|
||||||
set (ENABLE_GRPC OFF CACHE INTERNAL "")
|
set (ENABLE_GRPC OFF CACHE INTERNAL "")
|
||||||
|
set (USE_SENTRY OFF CACHE INTERNAL "")
|
||||||
set (ENABLE_PARQUET OFF CACHE INTERNAL "")
|
elseif (ARCH_PPC64LE)
|
||||||
set (ENABLE_ORC OFF CACHE INTERNAL "")
|
set (ENABLE_GRPC OFF CACHE INTERNAL "")
|
||||||
|
set (USE_SENTRY OFF CACHE INTERNAL "")
|
||||||
set (ENABLE_MYSQL OFF CACHE INTERNAL "")
|
|
||||||
endif ()
|
endif ()
|
||||||
elseif (OS_FREEBSD)
|
elseif (OS_FREEBSD)
|
||||||
# FIXME: broken dependencies
|
# FIXME: broken dependencies
|
||||||
set (ENABLE_PROTOBUF OFF CACHE INTERNAL "")
|
set (ENABLE_PARQUET OFF CACHE INTERNAL "")
|
||||||
|
set (ENABLE_ORC OFF CACHE INTERNAL "")
|
||||||
set (ENABLE_GRPC OFF CACHE INTERNAL "")
|
set (ENABLE_GRPC OFF CACHE INTERNAL "")
|
||||||
|
|
||||||
set (ENABLE_ORC OFF CACHE INTERNAL "") # no protobuf -> no parquet -> no orc
|
|
||||||
|
|
||||||
set (ENABLE_EMBEDDED_COMPILER OFF CACHE INTERNAL "")
|
set (ENABLE_EMBEDDED_COMPILER OFF CACHE INTERNAL "")
|
||||||
else ()
|
else ()
|
||||||
message (FATAL_ERROR "Trying to cross-compile to unsupported system: ${CMAKE_SYSTEM_NAME}!")
|
message (FATAL_ERROR "Trying to cross-compile to unsupported system: ${CMAKE_SYSTEM_NAME}!")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Don't know why but CXX_STANDARD doesn't work for cross-compilation
|
# Don't know why but CXX_STANDARD doesn't work for cross-compilation
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
|
||||||
|
|
||||||
message (STATUS "Cross-compiling for target: ${CMAKE_CXX_COMPILE_TARGET}")
|
message (STATUS "Cross-compiling for target: ${CMAKE_CXX_COMPILE_TARGET}")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
wget 'https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz?revision=2e88a73f-d233-4f96-b1f4-d8b36e9bb0b9&la=en' -O gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
|
|
||||||
tar xJf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz --strip-components=1
|
|
@ -8,7 +8,7 @@ endif ()
|
|||||||
|
|
||||||
if (COMPILER_GCC)
|
if (COMPILER_GCC)
|
||||||
# Require minimum version of gcc
|
# Require minimum version of gcc
|
||||||
set (GCC_MINIMUM_VERSION 10)
|
set (GCC_MINIMUM_VERSION 11)
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${GCC_MINIMUM_VERSION} AND NOT CMAKE_VERSION VERSION_LESS 2.8.9)
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${GCC_MINIMUM_VERSION} AND NOT CMAKE_VERSION VERSION_LESS 2.8.9)
|
||||||
message (FATAL_ERROR "GCC version must be at least ${GCC_MINIMUM_VERSION}. For example, if GCC ${GCC_MINIMUM_VERSION} is available under gcc-${GCC_MINIMUM_VERSION}, g++-${GCC_MINIMUM_VERSION} names, do the following: export CC=gcc-${GCC_MINIMUM_VERSION} CXX=g++-${GCC_MINIMUM_VERSION}; rm -rf CMakeCache.txt CMakeFiles; and re run cmake or ./release.")
|
message (FATAL_ERROR "GCC version must be at least ${GCC_MINIMUM_VERSION}. For example, if GCC ${GCC_MINIMUM_VERSION} is available under gcc-${GCC_MINIMUM_VERSION}, g++-${GCC_MINIMUM_VERSION} names, do the following: export CC=gcc-${GCC_MINIMUM_VERSION} CXX=g++-${GCC_MINIMUM_VERSION}; rm -rf CMakeCache.txt CMakeFiles; and re run cmake or ./release.")
|
||||||
endif ()
|
endif ()
|
||||||
@ -18,6 +18,10 @@ if (COMPILER_GCC)
|
|||||||
elseif (COMPILER_CLANG)
|
elseif (COMPILER_CLANG)
|
||||||
# Require minimum version of clang/apple-clang
|
# Require minimum version of clang/apple-clang
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
|
||||||
|
# If you are developer you can figure out what exact versions of AppleClang are Ok,
|
||||||
|
# simply remove the following line.
|
||||||
|
message (FATAL_ERROR "AppleClang is not supported, you should install clang from brew. See the instruction: https://clickhouse.com/docs/en/development/build-osx/")
|
||||||
|
|
||||||
# AppleClang 10.0.1 (Xcode 10.2) corresponds to LLVM/Clang upstream version 7.0.0
|
# AppleClang 10.0.1 (Xcode 10.2) corresponds to LLVM/Clang upstream version 7.0.0
|
||||||
# AppleClang 11.0.0 (Xcode 11.0) corresponds to LLVM/Clang upstream version 8.0.0
|
# AppleClang 11.0.0 (Xcode 11.0) corresponds to LLVM/Clang upstream version 8.0.0
|
||||||
set (XCODE_MINIMUM_VERSION 10.2)
|
set (XCODE_MINIMUM_VERSION 10.2)
|
||||||
@ -31,7 +35,7 @@ elseif (COMPILER_CLANG)
|
|||||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fchar8_t")
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fchar8_t")
|
||||||
endif ()
|
endif ()
|
||||||
else ()
|
else ()
|
||||||
set (CLANG_MINIMUM_VERSION 9)
|
set (CLANG_MINIMUM_VERSION 12)
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${CLANG_MINIMUM_VERSION})
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${CLANG_MINIMUM_VERSION})
|
||||||
message (FATAL_ERROR "Clang version must be at least ${CLANG_MINIMUM_VERSION}.")
|
message (FATAL_ERROR "Clang version must be at least ${CLANG_MINIMUM_VERSION}.")
|
||||||
endif ()
|
endif ()
|
||||||
@ -89,4 +93,3 @@ if (LINKER_NAME)
|
|||||||
|
|
||||||
message(STATUS "Using custom linker by name: ${LINKER_NAME}")
|
message(STATUS "Using custom linker by name: ${LINKER_NAME}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
97
contrib/CMakeLists.txt
vendored
97
contrib/CMakeLists.txt
vendored
@ -1,16 +1,5 @@
|
|||||||
# Third-party libraries may have substandard code.
|
# Third-party libraries may have substandard code.
|
||||||
|
|
||||||
# Put all targets defined here and in added subfolders under "contrib/" folder in GUI-based IDEs by default.
|
|
||||||
# Some of third-party projects may override CMAKE_FOLDER or FOLDER property of their targets, so they will
|
|
||||||
# appear not in "contrib/" as originally planned here.
|
|
||||||
get_filename_component (_current_dir_name "${CMAKE_CURRENT_LIST_DIR}" NAME)
|
|
||||||
if (CMAKE_FOLDER)
|
|
||||||
set (CMAKE_FOLDER "${CMAKE_FOLDER}/${_current_dir_name}")
|
|
||||||
else ()
|
|
||||||
set (CMAKE_FOLDER "${_current_dir_name}")
|
|
||||||
endif ()
|
|
||||||
unset (_current_dir_name)
|
|
||||||
|
|
||||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
|
||||||
|
|
||||||
@ -49,6 +38,14 @@ add_subdirectory (replxx-cmake)
|
|||||||
add_subdirectory (unixodbc-cmake)
|
add_subdirectory (unixodbc-cmake)
|
||||||
add_subdirectory (nanodbc-cmake)
|
add_subdirectory (nanodbc-cmake)
|
||||||
|
|
||||||
|
if (USE_INTERNAL_CAPNP_LIBRARY AND NOT MISSING_INTERNAL_CAPNP_LIBRARY)
|
||||||
|
add_subdirectory(capnproto-cmake)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (ENABLE_FUZZING)
|
||||||
|
add_subdirectory (libprotobuf-mutator-cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (USE_YAML_CPP)
|
if (USE_YAML_CPP)
|
||||||
add_subdirectory (yaml-cpp-cmake)
|
add_subdirectory (yaml-cpp-cmake)
|
||||||
endif()
|
endif()
|
||||||
@ -163,7 +160,7 @@ endif ()
|
|||||||
if(USE_INTERNAL_SNAPPY_LIBRARY)
|
if(USE_INTERNAL_SNAPPY_LIBRARY)
|
||||||
set(SNAPPY_BUILD_TESTS 0 CACHE INTERNAL "")
|
set(SNAPPY_BUILD_TESTS 0 CACHE INTERNAL "")
|
||||||
|
|
||||||
add_subdirectory(snappy)
|
add_subdirectory(snappy-cmake)
|
||||||
|
|
||||||
set (SNAPPY_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/snappy")
|
set (SNAPPY_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/snappy")
|
||||||
endif()
|
endif()
|
||||||
@ -215,6 +212,7 @@ function(add_llvm)
|
|||||||
|
|
||||||
# Do not adjust RPATH in llvm, since then it will not be able to find libcxx/libcxxabi/libunwind
|
# Do not adjust RPATH in llvm, since then it will not be able to find libcxx/libcxxabi/libunwind
|
||||||
set (CMAKE_INSTALL_RPATH "ON")
|
set (CMAKE_INSTALL_RPATH "ON")
|
||||||
|
set (LLVM_COMPILER_CHECKED 1 CACHE INTERNAL "")
|
||||||
set (LLVM_ENABLE_EH 1 CACHE INTERNAL "")
|
set (LLVM_ENABLE_EH 1 CACHE INTERNAL "")
|
||||||
set (LLVM_ENABLE_RTTI 1 CACHE INTERNAL "")
|
set (LLVM_ENABLE_RTTI 1 CACHE INTERNAL "")
|
||||||
set (LLVM_ENABLE_PIC 0 CACHE INTERNAL "")
|
set (LLVM_ENABLE_PIC 0 CACHE INTERNAL "")
|
||||||
@ -277,7 +275,7 @@ if (USE_FASTOPS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_AMQPCPP OR USE_CASSANDRA)
|
if (USE_AMQPCPP OR USE_CASSANDRA)
|
||||||
add_subdirectory (libuv)
|
add_subdirectory (libuv-cmake)
|
||||||
endif()
|
endif()
|
||||||
if (USE_AMQPCPP)
|
if (USE_AMQPCPP)
|
||||||
add_subdirectory (amqpcpp-cmake)
|
add_subdirectory (amqpcpp-cmake)
|
||||||
@ -347,3 +345,76 @@ endif()
|
|||||||
if (USE_S2_GEOMETRY)
|
if (USE_S2_GEOMETRY)
|
||||||
add_subdirectory(s2geometry-cmake)
|
add_subdirectory(s2geometry-cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Put all targets defined here and in subdirectories under "contrib/<immediate-subdir>" folders in GUI-based IDEs.
|
||||||
|
# Some of third-party projects may override CMAKE_FOLDER or FOLDER property of their targets, so they would not appear
|
||||||
|
# in "contrib/..." as originally planned, so we workaround this by fixing FOLDER properties of all targets manually,
|
||||||
|
# instead of controlling it via CMAKE_FOLDER.
|
||||||
|
|
||||||
|
function (ensure_target_rooted_in _target _folder)
|
||||||
|
# Skip INTERFACE library targets, since FOLDER property is not available for them.
|
||||||
|
get_target_property (_target_type "${_target}" TYPE)
|
||||||
|
if (_target_type STREQUAL "INTERFACE_LIBRARY")
|
||||||
|
return ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Read the original FOLDER property value, if any.
|
||||||
|
get_target_property (_folder_prop "${_target}" FOLDER)
|
||||||
|
|
||||||
|
# Normalize that value, so we avoid possible repetitions in folder names.
|
||||||
|
|
||||||
|
if (NOT _folder_prop)
|
||||||
|
set (_folder_prop "")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (CMAKE_FOLDER AND _folder_prop MATCHES "^${CMAKE_FOLDER}/(.*)\$")
|
||||||
|
set (_folder_prop "${CMAKE_MATCH_1}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (_folder AND _folder_prop MATCHES "^${_folder}/(.*)\$")
|
||||||
|
set (_folder_prop "${CMAKE_MATCH_1}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (_folder)
|
||||||
|
set (_folder_prop "${_folder}/${_folder_prop}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (CMAKE_FOLDER)
|
||||||
|
set (_folder_prop "${CMAKE_FOLDER}/${_folder_prop}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Set the updated FOLDER property value back.
|
||||||
|
set_target_properties ("${_target}" PROPERTIES FOLDER "${_folder_prop}")
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
function (ensure_own_targets_are_rooted_in _dir _folder)
|
||||||
|
get_directory_property (_targets DIRECTORY "${_dir}" BUILDSYSTEM_TARGETS)
|
||||||
|
foreach (_target IN LISTS _targets)
|
||||||
|
ensure_target_rooted_in ("${_target}" "${_folder}")
|
||||||
|
endforeach ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
function (ensure_all_targets_are_rooted_in _dir _folder)
|
||||||
|
ensure_own_targets_are_rooted_in ("${_dir}" "${_folder}")
|
||||||
|
|
||||||
|
get_property (_sub_dirs DIRECTORY "${_dir}" PROPERTY SUBDIRECTORIES)
|
||||||
|
foreach (_sub_dir IN LISTS _sub_dirs)
|
||||||
|
ensure_all_targets_are_rooted_in ("${_sub_dir}" "${_folder}")
|
||||||
|
endforeach ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
function (organize_ide_folders_2_level _dir)
|
||||||
|
get_filename_component (_dir_name "${_dir}" NAME)
|
||||||
|
ensure_own_targets_are_rooted_in ("${_dir}" "${_dir_name}")
|
||||||
|
|
||||||
|
# Note, that we respect only first two levels of nesting, we don't want to
|
||||||
|
# reorganize target folders further within each third-party dir.
|
||||||
|
|
||||||
|
get_property (_sub_dirs DIRECTORY "${_dir}" PROPERTY SUBDIRECTORIES)
|
||||||
|
foreach (_sub_dir IN LISTS _sub_dirs)
|
||||||
|
get_filename_component (_sub_dir_name "${_sub_dir}" NAME)
|
||||||
|
ensure_all_targets_are_rooted_in ("${_sub_dir}" "${_dir_name}/${_sub_dir_name}")
|
||||||
|
endforeach ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
organize_ide_folders_2_level ("${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
2
contrib/NuRaft
vendored
2
contrib/NuRaft
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 7ecb16844af6a9c283ad432d85ecc2e7d1544676
|
Subproject commit d10351f312c1ae1ca3fdda433693dfbef3acfece
|
@ -54,7 +54,7 @@ target_link_libraries (${THRIFT_LIBRARY} PRIVATE boost::headers_only)
|
|||||||
set(ORC_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/orc/c++")
|
set(ORC_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/orc/c++")
|
||||||
set(ORC_INCLUDE_DIR "${ORC_SOURCE_DIR}/include")
|
set(ORC_INCLUDE_DIR "${ORC_SOURCE_DIR}/include")
|
||||||
set(ORC_SOURCE_SRC_DIR "${ORC_SOURCE_DIR}/src")
|
set(ORC_SOURCE_SRC_DIR "${ORC_SOURCE_DIR}/src")
|
||||||
set(ORC_SOURCE_WRAP_DIR "${ORC_SOURCE_DIR}/wrap")
|
# set(ORC_SOURCE_WRAP_DIR "${ORC_SOURCE_DIR}/wrap")
|
||||||
|
|
||||||
set(ORC_BUILD_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/src")
|
set(ORC_BUILD_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/src")
|
||||||
set(ORC_BUILD_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/include")
|
set(ORC_BUILD_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/include")
|
||||||
@ -101,7 +101,14 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
|||||||
set(CXX11_FLAGS "-std=c++0x")
|
set(CXX11_FLAGS "-std=c++0x")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include("${ClickHouse_SOURCE_DIR}/contrib/orc/cmake_modules/CheckSourceCompiles.cmake")
|
set (ORC_CXX_HAS_INITIALIZER_LIST 1)
|
||||||
|
set (ORC_CXX_HAS_NOEXCEPT 1)
|
||||||
|
set (ORC_CXX_HAS_NULLPTR 1)
|
||||||
|
set (ORC_CXX_HAS_OVERRIDE 1)
|
||||||
|
set (ORC_CXX_HAS_UNIQUE_PTR 1)
|
||||||
|
set (ORC_CXX_HAS_CSTDINT 1)
|
||||||
|
set (ORC_CXX_HAS_THREAD_LOCAL 1)
|
||||||
|
|
||||||
include(orc_check.cmake)
|
include(orc_check.cmake)
|
||||||
configure_file("${ORC_INCLUDE_DIR}/orc/orc-config.hh.in" "${ORC_BUILD_INCLUDE_DIR}/orc/orc-config.hh")
|
configure_file("${ORC_INCLUDE_DIR}/orc/orc-config.hh.in" "${ORC_BUILD_INCLUDE_DIR}/orc/orc-config.hh")
|
||||||
configure_file("${ORC_SOURCE_SRC_DIR}/Adaptor.hh.in" "${ORC_BUILD_INCLUDE_DIR}/Adaptor.hh")
|
configure_file("${ORC_SOURCE_SRC_DIR}/Adaptor.hh.in" "${ORC_BUILD_INCLUDE_DIR}/Adaptor.hh")
|
||||||
|
@ -1,130 +1,14 @@
|
|||||||
# Not changed part of contrib/orc/c++/src/CMakeLists.txt
|
set (HAS_PREAD 1)
|
||||||
|
set (HAS_STRPTIME 1)
|
||||||
|
set (HAS_STOLL 1)
|
||||||
|
set (INT64_IS_LL 1)
|
||||||
|
set (HAS_DIAGNOSTIC_PUSH 1)
|
||||||
|
set (HAS_STD_ISNAN 1)
|
||||||
|
set (HAS_STD_MUTEX 1)
|
||||||
|
set (NEEDS_REDUNDANT_MOVE 1)
|
||||||
|
set (HAS_PRE_1970 1)
|
||||||
|
set (HAS_POST_2038 1)
|
||||||
|
set (NEEDS_Z_PREFIX 0)
|
||||||
|
|
||||||
INCLUDE(CheckCXXSourceCompiles)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<fcntl.h>
|
|
||||||
#include<unistd.h>
|
|
||||||
int main(int,char*[]){
|
|
||||||
int f = open(\"/x/y\", O_RDONLY);
|
|
||||||
char buf[100];
|
|
||||||
return pread(f, buf, 100, 1000) == 0;
|
|
||||||
}"
|
|
||||||
HAS_PREAD
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<time.h>
|
|
||||||
int main(int,char*[]){
|
|
||||||
struct tm time2020;
|
|
||||||
return !strptime(\"2020-02-02 12:34:56\", \"%Y-%m-%d %H:%M:%S\", &time2020);
|
|
||||||
}"
|
|
||||||
HAS_STRPTIME
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<string>
|
|
||||||
int main(int,char* argv[]){
|
|
||||||
return static_cast<int>(std::stoll(argv[0]));
|
|
||||||
}"
|
|
||||||
HAS_STOLL
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<stdint.h>
|
|
||||||
#include<stdio.h>
|
|
||||||
int main(int,char*[]){
|
|
||||||
int64_t x = 1; printf(\"%lld\",x);
|
|
||||||
}"
|
|
||||||
INT64_IS_LL
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#ifdef __clang__
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored \"-Wdeprecated\"
|
|
||||||
#pragma clang diagnostic pop
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored \"-Wdeprecated\"
|
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
#pragma warning( push )
|
|
||||||
#pragma warning( disable : 4996 )
|
|
||||||
#pragma warning( pop )
|
|
||||||
#else
|
|
||||||
unknownCompiler!
|
|
||||||
#endif
|
|
||||||
int main(int, char *[]) {}"
|
|
||||||
HAS_DIAGNOSTIC_PUSH
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<cmath>
|
|
||||||
int main(int, char *[]) {
|
|
||||||
return std::isnan(1.0f);
|
|
||||||
}"
|
|
||||||
HAS_STD_ISNAN
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<mutex>
|
|
||||||
int main(int, char *[]) {
|
|
||||||
std::mutex test_mutex;
|
|
||||||
std::lock_guard<std::mutex> lock_mutex(test_mutex);
|
|
||||||
}"
|
|
||||||
HAS_STD_MUTEX
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#include<string>
|
|
||||||
std::string func() {
|
|
||||||
std::string var = \"test\";
|
|
||||||
return std::move(var);
|
|
||||||
}
|
|
||||||
int main(int, char *[]) {}"
|
|
||||||
NEEDS_REDUNDANT_MOVE
|
|
||||||
)
|
|
||||||
|
|
||||||
INCLUDE(CheckCXXSourceRuns)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_RUNS("
|
|
||||||
#include<time.h>
|
|
||||||
int main(int, char *[]) {
|
|
||||||
time_t t = -14210715; // 1969-07-20 12:34:45
|
|
||||||
struct tm *ptm = gmtime(&t);
|
|
||||||
return !(ptm && ptm->tm_year == 69);
|
|
||||||
}"
|
|
||||||
HAS_PRE_1970
|
|
||||||
)
|
|
||||||
|
|
||||||
CHECK_CXX_SOURCE_RUNS("
|
|
||||||
#include<stdlib.h>
|
|
||||||
#include<time.h>
|
|
||||||
int main(int, char *[]) {
|
|
||||||
setenv(\"TZ\", \"America/Los_Angeles\", 1);
|
|
||||||
tzset();
|
|
||||||
struct tm time2037;
|
|
||||||
struct tm time2038;
|
|
||||||
strptime(\"2037-05-05 12:34:56\", \"%Y-%m-%d %H:%M:%S\", &time2037);
|
|
||||||
strptime(\"2038-05-05 12:34:56\", \"%Y-%m-%d %H:%M:%S\", &time2038);
|
|
||||||
return mktime(&time2038) - mktime(&time2037) != 31536000;
|
|
||||||
}"
|
|
||||||
HAS_POST_2038
|
|
||||||
)
|
|
||||||
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
|
|
||||||
set(CMAKE_REQUIRED_LIBRARIES zlib)
|
|
||||||
CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
#define Z_PREFIX
|
|
||||||
#include<zlib.h>
|
|
||||||
z_stream strm;
|
|
||||||
int main(int, char *[]) {
|
|
||||||
deflateReset(&strm);
|
|
||||||
}"
|
|
||||||
NEEDS_Z_PREFIX
|
|
||||||
)
|
|
||||||
|
|
||||||
# See https://cmake.org/cmake/help/v3.14/policy/CMP0075.html. Without unsetting it breaks thrift.
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES)
|
set(CMAKE_REQUIRED_INCLUDES)
|
||||||
set(CMAKE_REQUIRED_LIBRARIES)
|
set(CMAKE_REQUIRED_LIBRARIES)
|
||||||
|
2
contrib/boost
vendored
2
contrib/boost
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 66d17f060c4867aeea99fa2a20cfdae89ae2a2ec
|
Subproject commit 79358a3106aab6af464430ed67c7efafebf5cd6f
|
2
contrib/boringssl
vendored
2
contrib/boringssl
vendored
@ -1 +1 @@
|
|||||||
Subproject commit a6a2e2ab3e44d97ce98e51c558e989f211de7eb3
|
Subproject commit c1e01a441d6db234f4f12e63a7657d1f9e6db9c1
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
# This file is created by generate_build_files.py and edited accordingly.
|
# This file is created by generate_build_files.py and edited accordingly.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.0)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
project(BoringSSL LANGUAGES C CXX)
|
project(BoringSSL LANGUAGES C CXX)
|
||||||
|
|
||||||
@ -20,12 +20,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
|||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-common")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-common -std=c11")
|
||||||
if((CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.8.99") OR CLANG)
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
|
|
||||||
else()
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# pthread_rwlock_t requires a feature flag.
|
# pthread_rwlock_t requires a feature flag.
|
||||||
@ -55,7 +50,7 @@ add_definitions(-DBORINGSSL_IMPLEMENTATION)
|
|||||||
# builds.
|
# builds.
|
||||||
if(NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
|
if(NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
|
||||||
list(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHES)
|
list(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHES)
|
||||||
if(NOT ${NUM_ARCHES} EQUAL 1)
|
if(NOT NUM_ARCHES EQUAL 1)
|
||||||
message(FATAL_ERROR "Universal binaries not supported.")
|
message(FATAL_ERROR "Universal binaries not supported.")
|
||||||
endif()
|
endif()
|
||||||
list(GET CMAKE_OSX_ARCHITECTURES 0 CMAKE_SYSTEM_PROCESSOR)
|
list(GET CMAKE_OSX_ARCHITECTURES 0 CMAKE_SYSTEM_PROCESSOR)
|
||||||
@ -78,7 +73,13 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64")
|
|||||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
|
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
|
||||||
set(ARCH "x86")
|
set(ARCH "x86")
|
||||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386")
|
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386")
|
||||||
set(ARCH "x86")
|
# cmake uses `uname -p` to set the system processor, but Solaris
|
||||||
|
# systems support multiple architectures.
|
||||||
|
if((${CMAKE_SYSTEM_NAME} STREQUAL "SunOS") AND CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
set(ARCH "x86_64")
|
||||||
|
else()
|
||||||
|
set(ARCH "x86")
|
||||||
|
endif()
|
||||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686")
|
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686")
|
||||||
set(ARCH "x86")
|
set(ARCH "x86")
|
||||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
|
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
|
||||||
@ -289,6 +290,21 @@ set(
|
|||||||
mac-x86_64/crypto/test/trampoline-x86_64.S
|
mac-x86_64/crypto/test/trampoline-x86_64.S
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
CRYPTO_win_aarch64_SOURCES
|
||||||
|
|
||||||
|
win-aarch64/crypto/chacha/chacha-armv8.S
|
||||||
|
win-aarch64/crypto/fipsmodule/aesv8-armx64.S
|
||||||
|
win-aarch64/crypto/fipsmodule/armv8-mont.S
|
||||||
|
win-aarch64/crypto/fipsmodule/ghash-neon-armv8.S
|
||||||
|
win-aarch64/crypto/fipsmodule/ghashv8-armx64.S
|
||||||
|
win-aarch64/crypto/fipsmodule/sha1-armv8.S
|
||||||
|
win-aarch64/crypto/fipsmodule/sha256-armv8.S
|
||||||
|
win-aarch64/crypto/fipsmodule/sha512-armv8.S
|
||||||
|
win-aarch64/crypto/fipsmodule/vpaes-armv8.S
|
||||||
|
win-aarch64/crypto/test/trampoline-armv8.S
|
||||||
|
)
|
||||||
|
|
||||||
set(
|
set(
|
||||||
CRYPTO_win_x86_SOURCES
|
CRYPTO_win_x86_SOURCES
|
||||||
|
|
||||||
@ -331,9 +347,9 @@ set(
|
|||||||
win-x86_64/crypto/test/trampoline-x86_64.asm
|
win-x86_64/crypto/test/trampoline-x86_64.asm
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE AND ${ARCH} STREQUAL "aarch64")
|
if(APPLE AND ARCH STREQUAL "aarch64")
|
||||||
set(CRYPTO_ARCH_SOURCES ${CRYPTO_ios_aarch64_SOURCES})
|
set(CRYPTO_ARCH_SOURCES ${CRYPTO_ios_aarch64_SOURCES})
|
||||||
elseif(APPLE AND ${ARCH} STREQUAL "arm")
|
elseif(APPLE AND ARCH STREQUAL "arm")
|
||||||
set(CRYPTO_ARCH_SOURCES ${CRYPTO_ios_arm_SOURCES})
|
set(CRYPTO_ARCH_SOURCES ${CRYPTO_ios_arm_SOURCES})
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(CRYPTO_ARCH_SOURCES ${CRYPTO_mac_${ARCH}_SOURCES})
|
set(CRYPTO_ARCH_SOURCES ${CRYPTO_mac_${ARCH}_SOURCES})
|
||||||
@ -360,6 +376,7 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strex.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c"
|
||||||
@ -389,6 +406,7 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/crypto/blake2/blake2.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c"
|
||||||
@ -413,6 +431,7 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-win.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c"
|
||||||
@ -452,7 +471,6 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/fips_shared_support.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/fips_shared_support.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/is_fips.c"
|
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/hkdf/hkdf.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/hkdf/hkdf.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/hpke/hpke.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/hpke/hpke.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c"
|
||||||
@ -499,13 +517,13 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_sign.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_sign.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_strex.c"
|
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_verify.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_verify.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/algorithm.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/algorithm.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/name_print.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c"
|
||||||
@ -519,7 +537,6 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_ext.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_ext.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_lu.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_lu.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_obj.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_obj.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_r2x.c"
|
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_req.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_req.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_set.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_set.c"
|
||||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_trs.c"
|
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_trs.c"
|
||||||
@ -589,6 +606,8 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/ssl/encrypted_client_hello.cc"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/ssl/extensions.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc"
|
||||||
@ -611,7 +630,6 @@ add_library(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/t1_enc.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/t1_enc.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/t1_lib.cc"
|
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_both.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_both.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_client.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_client.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc"
|
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc"
|
||||||
@ -633,6 +651,7 @@ add_executable(
|
|||||||
"${BORINGSSL_SOURCE_DIR}/tool/digest.cc"
|
"${BORINGSSL_SOURCE_DIR}/tool/digest.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/tool/fd.cc"
|
"${BORINGSSL_SOURCE_DIR}/tool/fd.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/tool/file.cc"
|
"${BORINGSSL_SOURCE_DIR}/tool/file.cc"
|
||||||
|
"${BORINGSSL_SOURCE_DIR}/tool/generate_ech.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc"
|
"${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc"
|
"${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc"
|
||||||
"${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc"
|
"${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc"
|
||||||
|
2
contrib/capnproto
vendored
2
contrib/capnproto
vendored
@ -1 +1 @@
|
|||||||
Subproject commit a00ccd91b3746ef2ab51d40fe3265829949d1ace
|
Subproject commit c8189ec3c27dacbd4a3288e682473010e377f593
|
@ -45,6 +45,7 @@ set (CAPNP_SRCS
|
|||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/serialize-packed.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/serialize-packed.c++"
|
||||||
|
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/schema.c++"
|
||||||
|
"${CAPNPROTO_SOURCE_DIR}/capnp/stream.capnp.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema-loader.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/schema-loader.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/dynamic.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/dynamic.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/stringify.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/stringify.c++"
|
||||||
@ -63,6 +64,7 @@ set (CAPNPC_SRCS
|
|||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/grammar.capnp.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/grammar.capnp.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/parser.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/parser.c++"
|
||||||
|
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/generics.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/node-translator.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/node-translator.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/compiler.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/compiler.c++"
|
||||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema-parser.c++"
|
"${CAPNPROTO_SOURCE_DIR}/capnp/schema-parser.c++"
|
||||||
|
2
contrib/cctz
vendored
2
contrib/cctz
vendored
@ -1 +1 @@
|
|||||||
Subproject commit c0f1bcb97fd2782f7c3f972fadd5aad5affac4b8
|
Subproject commit 9edd0861d8328b2ae77e8fb5f4d7dcd1cf33b42b
|
2
contrib/fastops
vendored
2
contrib/fastops
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 012b777df9e2d145a24800a6c8c3d4a0249bb09e
|
Subproject commit 1460583af7d13c0e980ce46aec8ee9400314669a
|
2
contrib/grpc
vendored
2
contrib/grpc
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 60c986e15cae70aade721d26badabab1f822fdd6
|
Subproject commit 7eac189a6badddac593580ec2ad1478bd2656fc7
|
@ -187,12 +187,12 @@ function(protobuf_generate_grpc)
|
|||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${_generated_srcs}
|
OUTPUT ${_generated_srcs}
|
||||||
COMMAND protobuf::protoc
|
COMMAND $<TARGET_FILE:protoc>
|
||||||
ARGS --${protobuf_generate_grpc_LANGUAGE}_out ${_dll_export_decl}${protobuf_generate_grpc_PROTOC_OUT_DIR}
|
ARGS --${protobuf_generate_grpc_LANGUAGE}_out ${_dll_export_decl}${protobuf_generate_grpc_PROTOC_OUT_DIR}
|
||||||
--grpc_out ${_dll_export_decl}${protobuf_generate_grpc_PROTOC_OUT_DIR}
|
--grpc_out ${_dll_export_decl}${protobuf_generate_grpc_PROTOC_OUT_DIR}
|
||||||
--plugin=protoc-gen-grpc=$<TARGET_FILE:${protobuf_generate_grpc_PLUGIN}>
|
--plugin=protoc-gen-grpc=$<TARGET_FILE:${protobuf_generate_grpc_PLUGIN}>
|
||||||
${_dll_desc_out} ${_protobuf_include_path} ${_abs_file}
|
${_dll_desc_out} ${_protobuf_include_path} ${_abs_file}
|
||||||
DEPENDS ${_abs_file} protobuf::protoc ${protobuf_generate_grpc_PLUGIN}
|
DEPENDS ${_abs_file} protoc ${protobuf_generate_grpc_PLUGIN}
|
||||||
COMMENT "Running ${protobuf_generate_grpc_LANGUAGE} protocol buffer compiler on ${_proto}"
|
COMMENT "Running ${protobuf_generate_grpc_LANGUAGE} protocol buffer compiler on ${_proto}"
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
endforeach()
|
endforeach()
|
||||||
@ -204,4 +204,4 @@ function(protobuf_generate_grpc)
|
|||||||
if(protobuf_generate_grpc_TARGET)
|
if(protobuf_generate_grpc_TARGET)
|
||||||
target_sources(${protobuf_generate_grpc_TARGET} PRIVATE ${_generated_srcs_all})
|
target_sources(${protobuf_generate_grpc_TARGET} PRIVATE ${_generated_srcs_all})
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -18,8 +18,10 @@
|
|||||||
* Define overrides for non-standard allocator-related functions if they are
|
* Define overrides for non-standard allocator-related functions if they are
|
||||||
* present on the system.
|
* present on the system.
|
||||||
*/
|
*/
|
||||||
#define JEMALLOC_OVERRIDE_MEMALIGN
|
#if !defined(USE_MUSL)
|
||||||
#define JEMALLOC_OVERRIDE_VALLOC
|
#define JEMALLOC_OVERRIDE_MEMALIGN
|
||||||
|
#define JEMALLOC_OVERRIDE_VALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* At least Linux omits the "const" in:
|
* At least Linux omits the "const" in:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// OSX does not have this for system alloc functions, so you will get
|
// OSX does not have this for system alloc functions, so you will get
|
||||||
// "exception specification in declaration" error.
|
// "exception specification in declaration" error.
|
||||||
#if defined(__APPLE__) || defined(__FreeBSD__)
|
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(USE_MUSL)
|
||||||
# undef JEMALLOC_NOTHROW
|
# undef JEMALLOC_NOTHROW
|
||||||
# define JEMALLOC_NOTHROW
|
# define JEMALLOC_NOTHROW
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@
|
|||||||
* JEMALLOC_DSS enables use of sbrk(2) to allocate extents from the data storage
|
* JEMALLOC_DSS enables use of sbrk(2) to allocate extents from the data storage
|
||||||
* segment (DSS).
|
* segment (DSS).
|
||||||
*/
|
*/
|
||||||
#define JEMALLOC_DSS
|
/* #undef JEMALLOC_DSS */
|
||||||
|
|
||||||
/* Support memory filling (junk/zero). */
|
/* Support memory filling (junk/zero). */
|
||||||
#define JEMALLOC_FILL
|
#define JEMALLOC_FILL
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
/* #undef JEMALLOC_HAVE_ISSETUGID */
|
/* #undef JEMALLOC_HAVE_ISSETUGID */
|
||||||
|
|
||||||
/* Defined if pthread_atfork(3) is available. */
|
/* Defined if pthread_atfork(3) is available. */
|
||||||
#define JEMALLOC_HAVE_PTHREAD_ATFORK
|
/* #undef JEMALLOC_HAVE_PTHREAD_ATFORK */
|
||||||
|
|
||||||
/* Defined if pthread_setname_np(3) is available. */
|
/* Defined if pthread_setname_np(3) is available. */
|
||||||
#define JEMALLOC_HAVE_PTHREAD_SETNAME_NP
|
#define JEMALLOC_HAVE_PTHREAD_SETNAME_NP
|
||||||
@ -284,7 +284,7 @@
|
|||||||
#define JEMALLOC_PURGE_MADVISE_DONTNEED_ZEROS
|
#define JEMALLOC_PURGE_MADVISE_DONTNEED_ZEROS
|
||||||
|
|
||||||
/* Defined if madvise(2) is available but MADV_FREE is not (x86 Linux only). */
|
/* Defined if madvise(2) is available but MADV_FREE is not (x86 Linux only). */
|
||||||
/* #undef JEMALLOC_DEFINE_MADVISE_FREE */
|
#define JEMALLOC_DEFINE_MADVISE_FREE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defined if MADV_DO[NT]DUMP is supported as an argument to madvise.
|
* Defined if MADV_DO[NT]DUMP is supported as an argument to madvise.
|
||||||
|
@ -13,12 +13,14 @@
|
|||||||
* Define overrides for non-standard allocator-related functions if they are
|
* Define overrides for non-standard allocator-related functions if they are
|
||||||
* present on the system.
|
* present on the system.
|
||||||
*/
|
*/
|
||||||
#define JEMALLOC_OVERRIDE___LIBC_CALLOC
|
#if !defined(USE_MUSL)
|
||||||
#define JEMALLOC_OVERRIDE___LIBC_FREE
|
#define JEMALLOC_OVERRIDE___LIBC_CALLOC
|
||||||
#define JEMALLOC_OVERRIDE___LIBC_MALLOC
|
#define JEMALLOC_OVERRIDE___LIBC_FREE
|
||||||
#define JEMALLOC_OVERRIDE___LIBC_MEMALIGN
|
#define JEMALLOC_OVERRIDE___LIBC_MALLOC
|
||||||
#define JEMALLOC_OVERRIDE___LIBC_REALLOC
|
#define JEMALLOC_OVERRIDE___LIBC_MEMALIGN
|
||||||
#define JEMALLOC_OVERRIDE___LIBC_VALLOC
|
#define JEMALLOC_OVERRIDE___LIBC_REALLOC
|
||||||
|
#define JEMALLOC_OVERRIDE___LIBC_VALLOC
|
||||||
|
#endif
|
||||||
/* #undef JEMALLOC_OVERRIDE___POSIX_MEMALIGN */
|
/* #undef JEMALLOC_OVERRIDE___POSIX_MEMALIGN */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
find_program(AWK_PROGRAM awk)
|
find_program(AWK_PROGRAM awk)
|
||||||
if(NOT AWK_PROGRAM)
|
if(NOT AWK_PROGRAM)
|
||||||
message(FATAL_ERROR "You need the awk program to build ClickHouse with krb5 enabled.")
|
message(FATAL_ERROR "You need the awk program to build ClickHouse with krb5 enabled.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(KRB5_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/krb5/src")
|
set(KRB5_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/krb5/src")
|
||||||
|
2
contrib/libc-headers
vendored
2
contrib/libc-headers
vendored
@ -1 +1 @@
|
|||||||
Subproject commit a720b7105a610acbd7427eea475a5b6810c151eb
|
Subproject commit aa5429bf67a346e48ad60efd88bcefc286644bf3
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user