mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 23:21:59 +00:00
Merge master
This commit is contained in:
commit
39a30b77fe
2
.github/ISSUE_TEMPLATE/40_bug-report.md
vendored
2
.github/ISSUE_TEMPLATE/40_bug-report.md
vendored
@ -7,7 +7,7 @@ assignees: ''
|
||||
|
||||
---
|
||||
|
||||
(you don't have to strictly follow this form)
|
||||
You have to provide the following information whenever possible.
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what works not as it is supposed to.
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -27,6 +27,7 @@
|
||||
/docs/zh/single.md
|
||||
/docs/ja/single.md
|
||||
/docs/fa/single.md
|
||||
/docs/en/development/cmake-in-clickhouse.md
|
||||
|
||||
# callgrind files
|
||||
callgrind.out.*
|
||||
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -17,6 +17,7 @@
|
||||
[submodule "contrib/zlib-ng"]
|
||||
path = contrib/zlib-ng
|
||||
url = https://github.com/ClickHouse-Extras/zlib-ng.git
|
||||
branch = clickhouse-new
|
||||
[submodule "contrib/googletest"]
|
||||
path = contrib/googletest
|
||||
url = https://github.com/google/googletest.git
|
||||
@ -133,7 +134,7 @@
|
||||
url = https://github.com/unicode-org/icu.git
|
||||
[submodule "contrib/flatbuffers"]
|
||||
path = contrib/flatbuffers
|
||||
url = https://github.com/google/flatbuffers.git
|
||||
url = https://github.com/ClickHouse-Extras/flatbuffers.git
|
||||
[submodule "contrib/libc-headers"]
|
||||
path = contrib/libc-headers
|
||||
url = https://github.com/ClickHouse-Extras/libc-headers.git
|
||||
@ -221,6 +222,9 @@
|
||||
[submodule "contrib/NuRaft"]
|
||||
path = contrib/NuRaft
|
||||
url = https://github.com/ClickHouse-Extras/NuRaft.git
|
||||
[submodule "contrib/nanodbc"]
|
||||
path = contrib/nanodbc
|
||||
url = https://github.com/ClickHouse-Extras/nanodbc.git
|
||||
[submodule "contrib/datasketches-cpp"]
|
||||
path = contrib/datasketches-cpp
|
||||
url = https://github.com/ClickHouse-Extras/datasketches-cpp.git
|
||||
|
153
CHANGELOG.md
153
CHANGELOG.md
@ -1,3 +1,156 @@
|
||||
## ClickHouse release 21.4
|
||||
|
||||
### ClickHouse release 21.4.1 2021-04-12
|
||||
|
||||
#### Backward Incompatible Change
|
||||
|
||||
* The `toStartOfIntervalFunction` will align hour intervals to the midnight (in previous versions they were aligned to the start of unix epoch). For example, `toStartOfInterval(x, INTERVAL 11 HOUR)` will split every day into three intervals: `00:00:00..10:59:59`, `11:00:00..21:59:59` and `22:00:00..23:59:59`. This behaviour is more suited for practical needs. This closes [#9510](https://github.com/ClickHouse/ClickHouse/issues/9510). [#22060](https://github.com/ClickHouse/ClickHouse/pull/22060) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* `Age` and `Precision` in graphite rollup configs should increase from retention to retention. Now it's checked and the wrong config raises an exception. [#21496](https://github.com/ClickHouse/ClickHouse/pull/21496) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
|
||||
* Fix `cutToFirstSignificantSubdomainCustom()`/`firstSignificantSubdomainCustom()` returning wrong result for 3+ level domains present in custom top-level domain list. For input domains matching these custom top-level domains, the third-level domain was considered to be the first significant one. This is now fixed. This change may introduce incompatibility if the function is used in e.g. the sharding key. [#21946](https://github.com/ClickHouse/ClickHouse/pull/21946) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Column `keys` in table `system.dictionaries` was replaced to columns `key.names` and `key.types`. Columns `key.names`, `key.types`, `attribute.names`, `attribute.types` from `system.dictionaries` table does not require dictionary to be loaded. [#21884](https://github.com/ClickHouse/ClickHouse/pull/21884) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Now replicas that are processing the `ALTER TABLE ATTACH PART[ITION]` command search in their `detached/` folders before fetching the data from other replicas. As an implementation detail, a new command `ATTACH_PART` is introduced in the replicated log. Parts are searched and compared by their checksums. [#18978](https://github.com/ClickHouse/ClickHouse/pull/18978) ([Mike Kot](https://github.com/myrrc)). **Note**:
|
||||
* `ATTACH PART[ITION]` queries may not work during cluster upgrade.
|
||||
* It's not possible to rollback to older ClickHouse version after executing `ALTER ... ATTACH` query in new version as the old servers would fail to pass the `ATTACH_PART` entry in the replicated log.
|
||||
* In this version, empty `<remote_url_allow_hosts></remote_url_allow_hosts>` will block all access to remote hosts while in previous versions it did nothing. If you want to keep old behaviour and you have empty `remote_url_allow_hosts` element in configuration file, remove it. [#20058](https://github.com/ClickHouse/ClickHouse/pull/20058) ([Vladimir Chebotarev](https://github.com/excitoon)).
|
||||
|
||||
|
||||
#### New Feature
|
||||
|
||||
* Extended range of `DateTime64` to support dates from year 1925 to 2283. Improved support of `DateTime` around zero date (`1970-01-01`). [#9404](https://github.com/ClickHouse/ClickHouse/pull/9404) ([alexey-milovidov](https://github.com/alexey-milovidov), [Vasily Nemkov](https://github.com/Enmk)). Not every time and date functions are working for extended range of dates.
|
||||
* Added support of Kerberos authentication for preconfigured users and HTTP requests (GSS-SPNEGO). [#14995](https://github.com/ClickHouse/ClickHouse/pull/14995) ([Denis Glazachev](https://github.com/traceon)).
|
||||
* Add `prefer_column_name_to_alias` setting to use original column names instead of aliases. it is needed to be more compatible with common databases' aliasing rules. This is for [#9715](https://github.com/ClickHouse/ClickHouse/issues/9715) and [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#22044](https://github.com/ClickHouse/ClickHouse/pull/22044) ([Amos Bird](https://github.com/amosbird)).
|
||||
* Added functions `dictGetChildren(dictionary, key)`, `dictGetDescendants(dictionary, key, level)`. Function `dictGetChildren` return all children as an array if indexes. It is a inverse transformation for `dictGetHierarchy`. Function `dictGetDescendants` return all descendants as if `dictGetChildren` was applied `level` times recursively. Zero `level` value is equivalent to infinity. Closes [#14656](https://github.com/ClickHouse/ClickHouse/issues/14656). [#22096](https://github.com/ClickHouse/ClickHouse/pull/22096) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Added `executable_pool` dictionary source. Close [#14528](https://github.com/ClickHouse/ClickHouse/issues/14528). [#21321](https://github.com/ClickHouse/ClickHouse/pull/21321) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Added table function `dictionary`. It works the same way as `Dictionary` engine. Closes [#21560](https://github.com/ClickHouse/ClickHouse/issues/21560). [#21910](https://github.com/ClickHouse/ClickHouse/pull/21910) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Support `Nullable` type for `PolygonDictionary` attribute. [#21890](https://github.com/ClickHouse/ClickHouse/pull/21890) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Functions `dictGet`, `dictHas` use current database name if it is not specified for dictionaries created with DDL. Closes [#21632](https://github.com/ClickHouse/ClickHouse/issues/21632). [#21859](https://github.com/ClickHouse/ClickHouse/pull/21859) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Added function `dictGetOrNull`. It works like `dictGet`, but return `Null` in case key was not found in dictionary. Closes [#22375](https://github.com/ClickHouse/ClickHouse/issues/22375). [#22413](https://github.com/ClickHouse/ClickHouse/pull/22413) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Added async update in `ComplexKeyCache`, `SSDCache`, `SSDComplexKeyCache` dictionaries. Added support for `Nullable` type in `Cache`, `ComplexKeyCache`, `SSDCache`, `SSDComplexKeyCache` dictionaries. Added support for multiple attributes fetch with `dictGet`, `dictGetOrDefault` functions. Fixes [#21517](https://github.com/ClickHouse/ClickHouse/issues/21517). [#20595](https://github.com/ClickHouse/ClickHouse/pull/20595) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Support `dictHas` function for `RangeHashedDictionary`. Fixes [#6680](https://github.com/ClickHouse/ClickHouse/issues/6680). [#19816](https://github.com/ClickHouse/ClickHouse/pull/19816) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Add function `timezoneOf` that returns the timezone name of `DateTime` or `DateTime64` data types. This does not close [#9959](https://github.com/ClickHouse/ClickHouse/issues/9959). Fix inconsistencies in function names: add aliases `timezone` and `timeZone` as well as `toTimezone` and `toTimeZone` and `timezoneOf` and `timeZoneOf`. [#22001](https://github.com/ClickHouse/ClickHouse/pull/22001) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Add new optional clause `GRANTEES` for `CREATE/ALTER USER` commands. It specifies users or roles which are allowed to receive grants from this user on condition this user has also all required access granted with grant option. By default `GRANTEES ANY` is used which means a user with grant option can grant to anyone. Syntax: `CREATE USER ... GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]`. [#21641](https://github.com/ClickHouse/ClickHouse/pull/21641) ([Vitaly Baranov](https://github.com/vitlibar)).
|
||||
* Add new column `slowdowns_count` to `system.clusters`. When using hedged requests, it shows how many times we switched to another replica because this replica was responding slowly. Also show actual value of `errors_count` in `system.clusters`. [#21480](https://github.com/ClickHouse/ClickHouse/pull/21480) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* Add `_partition_id` virtual column for `MergeTree*` engines. Allow to prune partitions by `_partition_id`. Add `partitionID()` function to calculate partition id string. [#21401](https://github.com/ClickHouse/ClickHouse/pull/21401) ([Amos Bird](https://github.com/amosbird)).
|
||||
* Add function `isIPAddressInRange` to test if an IPv4 or IPv6 address is contained in a given CIDR network prefix. [#21329](https://github.com/ClickHouse/ClickHouse/pull/21329) ([PHO](https://github.com/depressed-pho)).
|
||||
* Added new SQL command `ALTER TABLE 'table_name' UNFREEZE [PARTITION 'part_expr'] WITH NAME 'backup_name'`. This command is needed to properly remove 'freezed' partitions from all disks. [#21142](https://github.com/ClickHouse/ClickHouse/pull/21142) ([Pavel Kovalenko](https://github.com/Jokser)).
|
||||
* Supports implicit key type conversion for JOIN. [#19885](https://github.com/ClickHouse/ClickHouse/pull/19885) ([Vladimir](https://github.com/vdimir)).
|
||||
|
||||
#### Experimental Feature
|
||||
|
||||
* Support `RANGE OFFSET` frame (for window functions) for floating point types. Implement `lagInFrame`/`leadInFrame` window functions, which are analogous to `lag`/`lead`, but respect the window frame. They are identical when the frame is `between unbounded preceding and unbounded following`. This closes [#5485](https://github.com/ClickHouse/ClickHouse/issues/5485). [#21895](https://github.com/ClickHouse/ClickHouse/pull/21895) ([Alexander Kuzmenkov](https://github.com/akuzm)).
|
||||
* Zero-copy replication for `ReplicatedMergeTree` over S3 storage. [#16240](https://github.com/ClickHouse/ClickHouse/pull/16240) ([ianton-ru](https://github.com/ianton-ru)).
|
||||
* Added possibility to migrate existing S3 disk to the schema with backup-restore capabilities. [#22070](https://github.com/ClickHouse/ClickHouse/pull/22070) ([Pavel Kovalenko](https://github.com/Jokser)).
|
||||
|
||||
#### Performance Improvement
|
||||
|
||||
* Supported parallel formatting in `clickhouse-local` and everywhere else. [#21630](https://github.com/ClickHouse/ClickHouse/pull/21630) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
|
||||
* Support parallel parsing for `CSVWithNames` and `TSVWithNames` formats. This closes [#21085](https://github.com/ClickHouse/ClickHouse/issues/21085). [#21149](https://github.com/ClickHouse/ClickHouse/pull/21149) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
|
||||
* Enable read with mmap IO for file ranges from 64 MiB (the settings `min_bytes_to_use_mmap_io`). It may lead to moderate performance improvement. [#22326](https://github.com/ClickHouse/ClickHouse/pull/22326) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Add cache for files read with `min_bytes_to_use_mmap_io` setting. It makes significant (2x and more) performance improvement when the value of the setting is small by avoiding frequent mmap/munmap calls and the consequent page faults. Note that mmap IO has major drawbacks that makes it less reliable in production (e.g. hung or SIGBUS on faulty disks; less controllable memory usage). Nevertheless it is good in benchmarks. [#22206](https://github.com/ClickHouse/ClickHouse/pull/22206) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Avoid unnecessary data copy when using codec `NONE`. Please note that codec `NONE` is mostly useless - it's recommended to always use compression (`LZ4` is by default). Despite the common belief, disabling compression may not improve performance (the opposite effect is possible). The `NONE` codec is useful in some cases: - when data is uncompressable; - for synthetic benchmarks. [#22145](https://github.com/ClickHouse/ClickHouse/pull/22145) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Faster `GROUP BY` with small `max_rows_to_group_by` and `group_by_overflow_mode='any'`. [#21856](https://github.com/ClickHouse/ClickHouse/pull/21856) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
|
||||
* Optimize performance of queries like `SELECT ... FINAL ... WHERE`. Now in queries with `FINAL` it's allowed to move to `PREWHERE` columns, which are in sorting key. [#21830](https://github.com/ClickHouse/ClickHouse/pull/21830) ([foolchi](https://github.com/foolchi)).
|
||||
* Improved performance by replacing `memcpy` to another implementation. This closes [#18583](https://github.com/ClickHouse/ClickHouse/issues/18583). [#21520](https://github.com/ClickHouse/ClickHouse/pull/21520) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Improve performance of aggregation in order of sorting key (with enabled setting `optimize_aggregation_in_order`). [#19401](https://github.com/ClickHouse/ClickHouse/pull/19401) ([Anton Popov](https://github.com/CurtizJ)).
|
||||
|
||||
#### Improvement
|
||||
|
||||
* Add connection pool for PostgreSQL table/database engine and dictionary source. Should fix [#21444](https://github.com/ClickHouse/ClickHouse/issues/21444). [#21839](https://github.com/ClickHouse/ClickHouse/pull/21839) ([Kseniia Sumarokova](https://github.com/kssenii)).
|
||||
* Support non-default table schema for postgres storage/table-function. Closes [#21701](https://github.com/ClickHouse/ClickHouse/issues/21701). [#21711](https://github.com/ClickHouse/ClickHouse/pull/21711) ([Kseniia Sumarokova](https://github.com/kssenii)).
|
||||
* Support replicas priority for postgres dictionary source. [#21710](https://github.com/ClickHouse/ClickHouse/pull/21710) ([Kseniia Sumarokova](https://github.com/kssenii)).
|
||||
* Introduce a new merge tree setting `min_bytes_to_rebalance_partition_over_jbod` which allows assigning new parts to different disks of a JBOD volume in a balanced way. [#16481](https://github.com/ClickHouse/ClickHouse/pull/16481) ([Amos Bird](https://github.com/amosbird)).
|
||||
* Added `Grant`, `Revoke` and `System` values of `query_kind` column for corresponding queries in `system.query_log`. [#21102](https://github.com/ClickHouse/ClickHouse/pull/21102) ([Vasily Nemkov](https://github.com/Enmk)).
|
||||
* Allow customizing timeouts for HTTP connections used for replication independently from other HTTP timeouts. [#20088](https://github.com/ClickHouse/ClickHouse/pull/20088) ([nvartolomei](https://github.com/nvartolomei)).
|
||||
* Better exception message in client in case of exception while server is writing blocks. In previous versions client may get misleading message like `Data compressed with different methods`. [#22427](https://github.com/ClickHouse/ClickHouse/pull/22427) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Fix error `Directory tmp_fetch_XXX already exists` which could happen after failed fetch part. Delete temporary fetch directory if it already exists. Fixes [#14197](https://github.com/ClickHouse/ClickHouse/issues/14197). [#22411](https://github.com/ClickHouse/ClickHouse/pull/22411) ([nvartolomei](https://github.com/nvartolomei)).
|
||||
* Fix MSan report for function `range` with `UInt256` argument (support for large integers is experimental). This closes [#22157](https://github.com/ClickHouse/ClickHouse/issues/22157). [#22387](https://github.com/ClickHouse/ClickHouse/pull/22387) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Add `current_database` column to `system.processes` table. It contains the current database of the query. [#22365](https://github.com/ClickHouse/ClickHouse/pull/22365) ([Alexander Kuzmenkov](https://github.com/akuzm)).
|
||||
* Add case-insensitive history search/navigation and subword movement features to `clickhouse-client`. [#22105](https://github.com/ClickHouse/ClickHouse/pull/22105) ([Amos Bird](https://github.com/amosbird)).
|
||||
* If tuple of NULLs, e.g. `(NULL, NULL)` is on the left hand side of `IN` operator with tuples of non-NULLs on the right hand side, e.g. `SELECT (NULL, NULL) IN ((0, 0), (3, 1))` return 0 instead of throwing an exception about incompatible types. The expression may also appear due to optimization of something like `SELECT (NULL, NULL) = (8, 0) OR (NULL, NULL) = (3, 2) OR (NULL, NULL) = (0, 0) OR (NULL, NULL) = (3, 1)`. This closes [#22017](https://github.com/ClickHouse/ClickHouse/issues/22017). [#22063](https://github.com/ClickHouse/ClickHouse/pull/22063) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Update used version of simdjson to 0.9.1. This fixes [#21984](https://github.com/ClickHouse/ClickHouse/issues/21984). [#22057](https://github.com/ClickHouse/ClickHouse/pull/22057) ([Vitaly Baranov](https://github.com/vitlibar)).
|
||||
* Added case insensitive aliases for `CONNECTION_ID()` and `VERSION()` functions. This fixes [#22028](https://github.com/ClickHouse/ClickHouse/issues/22028). [#22042](https://github.com/ClickHouse/ClickHouse/pull/22042) ([Eugene Klimov](https://github.com/Slach)).
|
||||
* Add option `strict_increase` to `windowFunnel` function to calculate each event once (resolve [#21835](https://github.com/ClickHouse/ClickHouse/issues/21835)). [#22025](https://github.com/ClickHouse/ClickHouse/pull/22025) ([Vladimir](https://github.com/vdimir)).
|
||||
* If partition key of a `MergeTree` table does not include `Date` or `DateTime` columns but includes exactly one `DateTime64` column, expose its values in the `min_time` and `max_time` columns in `system.parts` and `system.parts_columns` tables. Add `min_time` and `max_time` columns to `system.parts_columns` table (these was inconsistency to the `system.parts` table). This closes [#18244](https://github.com/ClickHouse/ClickHouse/issues/18244). [#22011](https://github.com/ClickHouse/ClickHouse/pull/22011) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Supported `replication_alter_partitions_sync=1` setting in `clickhouse-copier` for moving partitions from helping table to destination. Decreased default timeouts. Fixes [#21911](https://github.com/ClickHouse/ClickHouse/issues/21911). [#21912](https://github.com/ClickHouse/ClickHouse/pull/21912) ([turbo jason](https://github.com/songenjie)).
|
||||
* Show path to data directory of `EmbeddedRocksDB` tables in system tables. [#21903](https://github.com/ClickHouse/ClickHouse/pull/21903) ([tavplubix](https://github.com/tavplubix)).
|
||||
* Add profile event `HedgedRequestsChangeReplica`, change read data timeout from sec to ms. [#21886](https://github.com/ClickHouse/ClickHouse/pull/21886) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* DiskS3 (experimental feature under development). Fixed bug with the impossibility to move directory if the destination is not empty and cache disk is used. [#21837](https://github.com/ClickHouse/ClickHouse/pull/21837) ([Pavel Kovalenko](https://github.com/Jokser)).
|
||||
* Better formatting for `Array` and `Map` data types in Web UI. [#21798](https://github.com/ClickHouse/ClickHouse/pull/21798) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Update clusters only if their configurations were updated. [#21685](https://github.com/ClickHouse/ClickHouse/pull/21685) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* Propagate query and session settings for distributed DDL queries. Set `distributed_ddl_entry_format_version` to 2 to enable this. Added `distributed_ddl_output_mode` setting. Supported modes: `none`, `throw` (default), `null_status_on_timeout` and `never_throw`. Miscellaneous fixes and improvements for `Replicated` database engine. [#21535](https://github.com/ClickHouse/ClickHouse/pull/21535) ([tavplubix](https://github.com/tavplubix)).
|
||||
* If `PODArray` was instantiated with element size that is neither a fraction or a multiple of 16, buffer overflow was possible. No bugs in current releases exist. [#21533](https://github.com/ClickHouse/ClickHouse/pull/21533) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Add `last_error_time`/`last_error_message`/`last_error_stacktrace`/`remote` columns for `system.errors`. [#21529](https://github.com/ClickHouse/ClickHouse/pull/21529) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Add aliases `simpleJSONExtract/simpleJSONHas` to `visitParam/visitParamExtract{UInt, Int, Bool, Float, Raw, String}`. Fixes #21383. [#21519](https://github.com/ClickHouse/ClickHouse/pull/21519) ([fastio](https://github.com/fastio)).
|
||||
* Add setting `optimize_skip_unused_shards_limit` to limit the number of sharding key values for `optimize_skip_unused_shards`. [#21512](https://github.com/ClickHouse/ClickHouse/pull/21512) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Improve `clickhouse-format` to not throw exception when there are extra spaces or comment after the last query, and throw exception early with readable message when format `ASTInsertQuery` with data . [#21311](https://github.com/ClickHouse/ClickHouse/pull/21311) ([flynn](https://github.com/ucasFL)).
|
||||
* Improve support of integer keys in data type `Map`. [#21157](https://github.com/ClickHouse/ClickHouse/pull/21157) ([Anton Popov](https://github.com/CurtizJ)).
|
||||
* MaterializeMySQL: attempt to reconnect to MySQL if the connection is lost. [#20961](https://github.com/ClickHouse/ClickHouse/pull/20961) ([Håvard Kvålen](https://github.com/havardk)).
|
||||
* Support more cases to rewrite `CROSS JOIN` to `INNER JOIN`. [#20392](https://github.com/ClickHouse/ClickHouse/pull/20392) ([Vladimir](https://github.com/vdimir)).
|
||||
* Do not create empty parts on INSERT when `optimize_on_insert` setting enabled. Fixes [#20304](https://github.com/ClickHouse/ClickHouse/issues/20304). [#20387](https://github.com/ClickHouse/ClickHouse/pull/20387) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* `MaterializeMySQL`: add minmax skipping index for `_version` column. [#20382](https://github.com/ClickHouse/ClickHouse/pull/20382) ([Stig Bakken](https://github.com/stigsb)).
|
||||
* Add option `--backslash` for `clickhouse-format`, which can add a backslash at the end of each line of the formatted query. [#21494](https://github.com/ClickHouse/ClickHouse/pull/21494) ([flynn](https://github.com/ucasFL)).
|
||||
* Now clickhouse will not throw `LOGICAL_ERROR` exception when we try to mutate the already covered part. Fixes [#22013](https://github.com/ClickHouse/ClickHouse/issues/22013). [#22291](https://github.com/ClickHouse/ClickHouse/pull/22291) ([alesapin](https://github.com/alesapin)).
|
||||
|
||||
#### Bug Fix
|
||||
|
||||
* Remove socket from epoll before cancelling packet receiver in `HedgedConnections` to prevent possible race. Fixes [#22161](https://github.com/ClickHouse/ClickHouse/issues/22161). [#22443](https://github.com/ClickHouse/ClickHouse/pull/22443) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* Add (missing) memory accounting in parallel parsing routines. In previous versions OOM was possible when the resultset contains very large blocks of data. This closes [#22008](https://github.com/ClickHouse/ClickHouse/issues/22008). [#22425](https://github.com/ClickHouse/ClickHouse/pull/22425) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Fix exception which may happen when `SELECT` has constant `WHERE` condition and source table has columns which names are digits. [#22270](https://github.com/ClickHouse/ClickHouse/pull/22270) ([LiuNeng](https://github.com/liuneng1994)).
|
||||
* Fix query cancellation with `use_hedged_requests=0` and `async_socket_for_remote=1`. [#22183](https://github.com/ClickHouse/ClickHouse/pull/22183) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Fix uncaught exception in `InterserverIOHTTPHandler`. [#22146](https://github.com/ClickHouse/ClickHouse/pull/22146) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Fix docker entrypoint in case `http_port` is not in the config. [#22132](https://github.com/ClickHouse/ClickHouse/pull/22132) ([Ewout](https://github.com/devwout)).
|
||||
* Fix error `Invalid number of rows in Chunk` in `JOIN` with `TOTALS` and `arrayJoin`. Closes [#19303](https://github.com/ClickHouse/ClickHouse/issues/19303). [#22129](https://github.com/ClickHouse/ClickHouse/pull/22129) ([Vladimir](https://github.com/vdimir)).
|
||||
* Fix the background thread pool name which used to poll message from Kafka. The Kafka engine with the broken thread pool will not consume the message from message queue. [#22122](https://github.com/ClickHouse/ClickHouse/pull/22122) ([fastio](https://github.com/fastio)).
|
||||
* Fix waiting for `OPTIMIZE` and `ALTER` queries for `ReplicatedMergeTree` table engines. Now the query will not hang when the table was detached or restarted. [#22118](https://github.com/ClickHouse/ClickHouse/pull/22118) ([alesapin](https://github.com/alesapin)).
|
||||
* Disable `async_socket_for_remote`/`use_hedged_requests` for buggy Linux kernels. [#22109](https://github.com/ClickHouse/ClickHouse/pull/22109) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Docker entrypoint: avoid chown of `.` in case when `LOG_PATH` is empty. Closes [#22100](https://github.com/ClickHouse/ClickHouse/issues/22100). [#22102](https://github.com/ClickHouse/ClickHouse/pull/22102) ([filimonov](https://github.com/filimonov)).
|
||||
* The function `decrypt` was lacking a check for the minimal size of data encrypted in `AEAD` mode. This closes [#21897](https://github.com/ClickHouse/ClickHouse/issues/21897). [#22064](https://github.com/ClickHouse/ClickHouse/pull/22064) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* In rare case, merge for `CollapsingMergeTree` may create granule with `index_granularity + 1` rows. Because of this, internal check, added in [#18928](https://github.com/ClickHouse/ClickHouse/issues/18928) (affects 21.2 and 21.3), may fail with error `Incomplete granules are not allowed while blocks are granules size`. This error did not allow parts to merge. [#21976](https://github.com/ClickHouse/ClickHouse/pull/21976) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
|
||||
* Reverted [#15454](https://github.com/ClickHouse/ClickHouse/issues/15454) that may cause significant increase in memory usage while loading external dictionaries of hashed type. This closes [#21935](https://github.com/ClickHouse/ClickHouse/issues/21935). [#21948](https://github.com/ClickHouse/ClickHouse/pull/21948) ([Maksim Kita](https://github.com/kitaisreal)).
|
||||
* Prevent hedged connections overlaps (`Unknown packet 9 from server` error). [#21941](https://github.com/ClickHouse/ClickHouse/pull/21941) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Fix reading the HTTP POST request with "multipart/form-data" content type in some cases. [#21936](https://github.com/ClickHouse/ClickHouse/pull/21936) ([Ivan](https://github.com/abyss7)).
|
||||
* Fix wrong `ORDER BY` results when a query contains window functions, and optimization for reading in primary key order is applied. Fixes [#21828](https://github.com/ClickHouse/ClickHouse/issues/21828). [#21915](https://github.com/ClickHouse/ClickHouse/pull/21915) ([Alexander Kuzmenkov](https://github.com/akuzm)).
|
||||
* Fix deadlock in first catboost model execution. Closes [#13832](https://github.com/ClickHouse/ClickHouse/issues/13832). [#21844](https://github.com/ClickHouse/ClickHouse/pull/21844) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* Fix incorrect query result (and possible crash) which could happen when `WHERE` or `HAVING` condition is pushed before `GROUP BY`. Fixes [#21773](https://github.com/ClickHouse/ClickHouse/issues/21773). [#21841](https://github.com/ClickHouse/ClickHouse/pull/21841) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
|
||||
* Better error handling and logging in `WriteBufferFromS3`. [#21836](https://github.com/ClickHouse/ClickHouse/pull/21836) ([Pavel Kovalenko](https://github.com/Jokser)).
|
||||
* Fix possible crashes in aggregate functions with combinator `Distinct`, while using two-level aggregation. This is a follow-up fix of [#18365](https://github.com/ClickHouse/ClickHouse/pull/18365) . Can only reproduced in production env. [#21818](https://github.com/ClickHouse/ClickHouse/pull/21818) ([Amos Bird](https://github.com/amosbird)).
|
||||
* Fix scalar subquery index analysis. This fixes [#21717](https://github.com/ClickHouse/ClickHouse/issues/21717) , which was introduced in [#18896](https://github.com/ClickHouse/ClickHouse/pull/18896). [#21766](https://github.com/ClickHouse/ClickHouse/pull/21766) ([Amos Bird](https://github.com/amosbird)).
|
||||
* Fix bug for `ReplicatedMerge` table engines when `ALTER MODIFY COLUMN` query doesn't change the type of `Decimal` column if its size (32 bit or 64 bit) doesn't change. [#21728](https://github.com/ClickHouse/ClickHouse/pull/21728) ([alesapin](https://github.com/alesapin)).
|
||||
* Fix possible infinite waiting when concurrent `OPTIMIZE` and `DROP` are run for `ReplicatedMergeTree`. [#21716](https://github.com/ClickHouse/ClickHouse/pull/21716) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Fix function `arrayElement` with type `Map` for constant integer arguments. [#21699](https://github.com/ClickHouse/ClickHouse/pull/21699) ([Anton Popov](https://github.com/CurtizJ)).
|
||||
* Fix SIGSEGV on not existing attributes from `ip_trie` with `access_to_key_from_attributes`. [#21692](https://github.com/ClickHouse/ClickHouse/pull/21692) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Server now start accepting connections only after `DDLWorker` and dictionaries initialization. [#21676](https://github.com/ClickHouse/ClickHouse/pull/21676) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Add type conversion for keys of tables of type `Join` (previously led to SIGSEGV). [#21646](https://github.com/ClickHouse/ClickHouse/pull/21646) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Fix distributed requests cancellation (for example simple select from multiple shards with limit, i.e. `select * from remote('127.{2,3}', system.numbers) limit 100`) with `async_socket_for_remote=1`. [#21643](https://github.com/ClickHouse/ClickHouse/pull/21643) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Fix `fsync_part_directory` for horizontal merge. [#21642](https://github.com/ClickHouse/ClickHouse/pull/21642) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* Remove unknown columns from joined table in `WHERE` for queries to external database engines (MySQL, PostgreSQL). close [#14614](https://github.com/ClickHouse/ClickHouse/issues/14614), close [#19288](https://github.com/ClickHouse/ClickHouse/issues/19288) (dup), close [#19645](https://github.com/ClickHouse/ClickHouse/issues/19645) (dup). [#21640](https://github.com/ClickHouse/ClickHouse/pull/21640) ([Vladimir](https://github.com/vdimir)).
|
||||
* `std::terminate` was called if there is an error writing data into s3. [#21624](https://github.com/ClickHouse/ClickHouse/pull/21624) ([Vladimir](https://github.com/vdimir)).
|
||||
* Fix possible error `Cannot find column` when `optimize_skip_unused_shards` is enabled and zero shards are used. [#21579](https://github.com/ClickHouse/ClickHouse/pull/21579) ([Azat Khuzhin](https://github.com/azat)).
|
||||
* In case if query has constant `WHERE` condition, and setting `optimize_skip_unused_shards` enabled, all shards may be skipped and query could return incorrect empty result. [#21550](https://github.com/ClickHouse/ClickHouse/pull/21550) ([Amos Bird](https://github.com/amosbird)).
|
||||
* Fix table function `clusterAllReplicas` returns wrong `_shard_num`. close [#21481](https://github.com/ClickHouse/ClickHouse/issues/21481). [#21498](https://github.com/ClickHouse/ClickHouse/pull/21498) ([flynn](https://github.com/ucasFL)).
|
||||
* Fix that S3 table holds old credentials after config update. [#21457](https://github.com/ClickHouse/ClickHouse/pull/21457) ([Grigory Pervakov](https://github.com/GrigoryPervakov)).
|
||||
* Fixed race on SSL object inside `SecureSocket` in Poco. [#21456](https://github.com/ClickHouse/ClickHouse/pull/21456) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
|
||||
* Fix `Avro` format parsing for `Kafka`. Fixes [#21437](https://github.com/ClickHouse/ClickHouse/issues/21437). [#21438](https://github.com/ClickHouse/ClickHouse/pull/21438) ([Ilya Golshtein](https://github.com/ilejn)).
|
||||
* Fix receive and send timeouts and non-blocking read in secure socket. [#21429](https://github.com/ClickHouse/ClickHouse/pull/21429) ([Kruglov Pavel](https://github.com/Avogar)).
|
||||
* `force_drop_table` flag didn't work for `MATERIALIZED VIEW`, it's fixed. Fixes [#18943](https://github.com/ClickHouse/ClickHouse/issues/18943). [#20626](https://github.com/ClickHouse/ClickHouse/pull/20626) ([tavplubix](https://github.com/tavplubix)).
|
||||
* Fix name clashes in `PredicateRewriteVisitor`. It caused incorrect `WHERE` filtration after full join. Close [#20497](https://github.com/ClickHouse/ClickHouse/issues/20497). [#20622](https://github.com/ClickHouse/ClickHouse/pull/20622) ([Vladimir](https://github.com/vdimir)).
|
||||
|
||||
#### Build/Testing/Packaging Improvement
|
||||
|
||||
* Add [Jepsen](https://github.com/jepsen-io/jepsen) tests for ClickHouse Keeper. [#21677](https://github.com/ClickHouse/ClickHouse/pull/21677) ([alesapin](https://github.com/alesapin)).
|
||||
* Run stateless tests in parallel in CI. Depends on [#22181](https://github.com/ClickHouse/ClickHouse/issues/22181). [#22300](https://github.com/ClickHouse/ClickHouse/pull/22300) ([alesapin](https://github.com/alesapin)).
|
||||
* Enable status check for [SQLancer](https://github.com/sqlancer/sqlancer) CI run. [#22015](https://github.com/ClickHouse/ClickHouse/pull/22015) ([Ilya Yatsishin](https://github.com/qoega)).
|
||||
* Multiple preparations for PowerPC builds: Enable the bundled openldap on `ppc64le`. [#22487](https://github.com/ClickHouse/ClickHouse/pull/22487) ([Kfir Itzhak](https://github.com/mastertheknife)). Enable compiling on `ppc64le` with Clang. [#22476](https://github.com/ClickHouse/ClickHouse/pull/22476) ([Kfir Itzhak](https://github.com/mastertheknife)). Fix compiling boost on `ppc64le`. [#22474](https://github.com/ClickHouse/ClickHouse/pull/22474) ([Kfir Itzhak](https://github.com/mastertheknife)). Fix CMake error about internal CMake variable `CMAKE_ASM_COMPILE_OBJECT` not set on `ppc64le`. [#22469](https://github.com/ClickHouse/ClickHouse/pull/22469) ([Kfir Itzhak](https://github.com/mastertheknife)). Fix Fedora/RHEL/CentOS not finding `libclang_rt.builtins` on `ppc64le`. [#22458](https://github.com/ClickHouse/ClickHouse/pull/22458) ([Kfir Itzhak](https://github.com/mastertheknife)). Enable building with `jemalloc` on `ppc64le`. [#22447](https://github.com/ClickHouse/ClickHouse/pull/22447) ([Kfir Itzhak](https://github.com/mastertheknife)). Fix ClickHouse's config embedding and cctz's timezone embedding on `ppc64le`. [#22445](https://github.com/ClickHouse/ClickHouse/pull/22445) ([Kfir Itzhak](https://github.com/mastertheknife)). Fixed compiling on `ppc64le` and use the correct instruction pointer register on `ppc64le`. [#22430](https://github.com/ClickHouse/ClickHouse/pull/22430) ([Kfir Itzhak](https://github.com/mastertheknife)).
|
||||
* Re-enable the S3 (AWS) library on `aarch64`. [#22484](https://github.com/ClickHouse/ClickHouse/pull/22484) ([Kfir Itzhak](https://github.com/mastertheknife)).
|
||||
* Add `tzdata` to Docker containers because reading `ORC` formats requires it. This closes [#14156](https://github.com/ClickHouse/ClickHouse/issues/14156). [#22000](https://github.com/ClickHouse/ClickHouse/pull/22000) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Introduce 2 arguments for `clickhouse-server` image Dockerfile: `deb_location` & `single_binary_location`. [#21977](https://github.com/ClickHouse/ClickHouse/pull/21977) ([filimonov](https://github.com/filimonov)).
|
||||
* Allow to use clang-tidy with release builds by enabling assertions if it is used. [#21914](https://github.com/ClickHouse/ClickHouse/pull/21914) ([alexey-milovidov](https://github.com/alexey-milovidov)).
|
||||
* Add llvm-12 binaries name to search in cmake scripts. Implicit constants conversions to mute clang warnings. Updated submodules to build with CMake 3.19. Mute recursion in macro expansion in `readpassphrase` library. Deprecated `-fuse-ld` changed to `--ld-path` for clang. [#21597](https://github.com/ClickHouse/ClickHouse/pull/21597) ([Ilya Yatsishin](https://github.com/qoega)).
|
||||
* Updating `docker/test/testflows/runner/dockerd-entrypoint.sh` to use Yandex dockerhub-proxy, because Docker Hub has enabled very restrictive rate limits [#21551](https://github.com/ClickHouse/ClickHouse/pull/21551) ([vzakaznikov](https://github.com/vzakaznikov)).
|
||||
* Fix macOS shared lib build. [#20184](https://github.com/ClickHouse/ClickHouse/pull/20184) ([nvartolomei](https://github.com/nvartolomei)).
|
||||
* Add `ctime` option to `zookeeper-dump-tree`. It allows to dump node creation time. [#21842](https://github.com/ClickHouse/ClickHouse/pull/21842) ([Ilya](https://github.com/HumanUser)).
|
||||
|
||||
|
||||
## ClickHouse release 21.3 (LTS)
|
||||
|
||||
### ClickHouse release v21.3, 2021-03-12
|
||||
|
@ -68,17 +68,30 @@ endif ()
|
||||
|
||||
include (cmake/find/ccache.cmake)
|
||||
|
||||
option(ENABLE_CHECK_HEAVY_BUILDS "Don't allow C++ translation units to compile too long or to take too much memory while compiling" OFF)
|
||||
# Take care to add prlimit in command line before ccache, or else ccache thinks that
|
||||
# prlimit is compiler, and clang++ is its input file, and refuses to work with
|
||||
# multiple inputs, e.g in ccache log:
|
||||
# [2021-03-31T18:06:32.655327 36900] Command line: /usr/bin/ccache prlimit --as=10000000000 --data=5000000000 --cpu=600 /usr/bin/clang++-11 - ...... std=gnu++2a -MD -MT src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o -MF src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o.d -o src/CMakeFiles/dbms.dir/Storages/MergeTree/IMergeTreeDataPart.cpp.o -c ../src/Storages/MergeTree/IMergeTreeDataPart.cpp
|
||||
#
|
||||
# [2021-03-31T18:06:32.656704 36900] Multiple input files: /usr/bin/clang++-11 and ../src/Storages/MergeTree/IMergeTreeDataPart.cpp
|
||||
#
|
||||
# Another way would be to use --ccache-skip option before clang++-11 to make
|
||||
# ccache ignore it.
|
||||
option(ENABLE_CHECK_HEAVY_BUILDS "Don't allow C++ translation units to compile too long or to take too much memory while compiling." OFF)
|
||||
if (ENABLE_CHECK_HEAVY_BUILDS)
|
||||
# set DATA (since RSS does not work since 2.6.x+) to 2G
|
||||
set (RLIMIT_DATA 5000000000)
|
||||
# set VIRT (RLIMIT_AS) to 10G (DATA*10)
|
||||
set (RLIMIT_AS 10000000000)
|
||||
# set CPU time limit to 600 seconds
|
||||
set (RLIMIT_CPU 600)
|
||||
|
||||
# gcc10/gcc10/clang -fsanitize=memory is too heavy
|
||||
if (SANITIZE STREQUAL "memory" OR COMPILER_GCC)
|
||||
set (RLIMIT_DATA 10000000000)
|
||||
endif()
|
||||
set (CMAKE_CXX_COMPILER_LAUNCHER prlimit --as=${RLIMIT_AS} --data=${RLIMIT_DATA} --cpu=600)
|
||||
|
||||
set (CMAKE_CXX_COMPILER_LAUNCHER prlimit --as=${RLIMIT_AS} --data=${RLIMIT_DATA} --cpu=${RLIMIT_CPU} ${CMAKE_CXX_COMPILER_LAUNCHER})
|
||||
endif ()
|
||||
|
||||
if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "None")
|
||||
@ -154,9 +167,10 @@ endif ()
|
||||
|
||||
# If turned `ON`, assumes the user has either the system GTest library or the bundled one.
|
||||
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)
|
||||
|
||||
if (OS_LINUX AND NOT UNBUNDLED AND MAKE_STATIC_LIBRARIES AND NOT SPLIT_SHARED_LIBRARIES AND CMAKE_VERSION VERSION_GREATER "3.9.0")
|
||||
# Only for Linux, x86_64.
|
||||
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")
|
||||
# Only for Linux, x86_64 or aarch64.
|
||||
option(GLIBC_COMPATIBILITY "Enable compatibility with older glibc libraries." ON)
|
||||
elseif(GLIBC_COMPATIBILITY)
|
||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Glibc compatibility cannot be enabled in current configuration")
|
||||
@ -244,12 +258,17 @@ endif()
|
||||
|
||||
include(cmake/cpu_features.cmake)
|
||||
|
||||
option(ARCH_NATIVE "Add -march=native compiler flag")
|
||||
option(ARCH_NATIVE "Add -march=native compiler flag. This makes your binaries non-portable but more performant code may be generated.")
|
||||
|
||||
if (ARCH_NATIVE)
|
||||
set (COMPILER_FLAGS "${COMPILER_FLAGS} -march=native")
|
||||
endif ()
|
||||
|
||||
# Asynchronous unwind tables are needed for Query Profiler.
|
||||
# They are already by default on some platforms but possibly not on all platforms.
|
||||
# Enable it explicitly.
|
||||
set (COMPILER_FLAGS "${COMPILER_FLAGS} -fasynchronous-unwind-tables")
|
||||
|
||||
if (${CMAKE_VERSION} VERSION_LESS "3.12.4")
|
||||
# CMake < 3.12 doesn't support setting 20 as a C++ standard version.
|
||||
# We will add C++ standard controlling flag in CMAKE_CXX_FLAGS manually for now.
|
||||
@ -277,6 +296,12 @@ if (COMPILER_GCC OR COMPILER_CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsized-deallocation")
|
||||
endif ()
|
||||
|
||||
# falign-functions=32 prevents from random performance regressions with the code change. Thus, providing more stable
|
||||
# benchmarks.
|
||||
if (COMPILER_GCC OR COMPILER_CLANG)
|
||||
set(COMPILER_FLAGS "${COMPILER_FLAGS} -falign-functions=32")
|
||||
endif ()
|
||||
|
||||
# Compiler-specific coverage flags e.g. -fcoverage-mapping for gcc
|
||||
option(WITH_COVERAGE "Profile the resulting binary/binaries" OFF)
|
||||
|
||||
@ -475,6 +500,7 @@ include (cmake/find/krb5.cmake)
|
||||
include (cmake/find/libgsasl.cmake)
|
||||
include (cmake/find/cyrus-sasl.cmake)
|
||||
include (cmake/find/rdkafka.cmake)
|
||||
include (cmake/find/libuv.cmake) # for amqpcpp and cassandra
|
||||
include (cmake/find/amqpcpp.cmake)
|
||||
include (cmake/find/capnp.cmake)
|
||||
include (cmake/find/llvm.cmake)
|
||||
@ -497,6 +523,7 @@ include (cmake/find/fast_float.cmake)
|
||||
include (cmake/find/rapidjson.cmake)
|
||||
include (cmake/find/fastops.cmake)
|
||||
include (cmake/find/odbc.cmake)
|
||||
include (cmake/find/nanodbc.cmake)
|
||||
include (cmake/find/rocksdb.cmake)
|
||||
include (cmake/find/libpqxx.cmake)
|
||||
include (cmake/find/nuraft.cmake)
|
||||
@ -566,6 +593,9 @@ include_directories(${ConfigIncludePath})
|
||||
# Add as many warnings as possible for our own code.
|
||||
include (cmake/warnings.cmake)
|
||||
|
||||
# Check if needed compiler flags are supported
|
||||
include (cmake/check_flags.cmake)
|
||||
|
||||
add_subdirectory (base)
|
||||
add_subdirectory (src)
|
||||
add_subdirectory (programs)
|
||||
|
@ -159,17 +159,12 @@ void IBridge::initialize(Application & self)
|
||||
if (port > 0xFFFF)
|
||||
throw Exception("Out of range 'http-port': " + std::to_string(port), ErrorCodes::ARGUMENT_OUT_OF_BOUND);
|
||||
|
||||
http_timeout = config().getUInt("http-timeout", DEFAULT_HTTP_READ_BUFFER_TIMEOUT);
|
||||
http_timeout = config().getUInt64("http-timeout", DEFAULT_HTTP_READ_BUFFER_TIMEOUT);
|
||||
max_server_connections = config().getUInt("max-server-connections", 1024);
|
||||
keep_alive_timeout = config().getUInt("keep-alive-timeout", 10);
|
||||
keep_alive_timeout = config().getUInt64("keep-alive-timeout", 10);
|
||||
|
||||
initializeTerminationAndSignalProcessing();
|
||||
|
||||
#if USE_ODBC
|
||||
if (bridgeName() == "ODBCBridge")
|
||||
Poco::Data::ODBC::Connector::registerConnector();
|
||||
#endif
|
||||
|
||||
ServerApplication::initialize(self); // NOLINT
|
||||
}
|
||||
|
||||
@ -200,8 +195,8 @@ int IBridge::main(const std::vector<std::string> & /*args*/)
|
||||
http_params->setKeepAliveTimeout(keep_alive_timeout);
|
||||
|
||||
auto shared_context = Context::createShared();
|
||||
Context context(Context::createGlobal(shared_context.get()));
|
||||
context.makeGlobalContext();
|
||||
auto context = Context::createGlobal(shared_context.get());
|
||||
context->makeGlobalContext();
|
||||
|
||||
if (config().has("query_masking_rules"))
|
||||
SensitiveDataMasker::setInstance(std::make_unique<SensitiveDataMasker>(config(), "query_masking_rules"));
|
||||
|
@ -2,10 +2,11 @@
|
||||
|
||||
#include <Interpreters/Context.h>
|
||||
#include <Server/HTTP/HTTPRequestHandlerFactory.h>
|
||||
#include <Poco/Util/ServerApplication.h>
|
||||
#include <Poco/Logger.h>
|
||||
#include <daemon/BaseDaemon.h>
|
||||
|
||||
#include <Poco/Logger.h>
|
||||
#include <Poco/Util/ServerApplication.h>
|
||||
|
||||
|
||||
namespace DB
|
||||
{
|
||||
@ -29,9 +30,9 @@ protected:
|
||||
|
||||
int main(const std::vector<std::string> & args) override;
|
||||
|
||||
virtual const std::string bridgeName() const = 0;
|
||||
virtual std::string bridgeName() const = 0;
|
||||
|
||||
virtual HandlerFactoryPtr getHandlerFactoryPtr(Context & context) const = 0;
|
||||
virtual HandlerFactoryPtr getHandlerFactoryPtr(ContextPtr context) const = 0;
|
||||
|
||||
size_t keep_alive_timeout;
|
||||
|
||||
|
@ -7,8 +7,7 @@
|
||||
#include <condition_variable>
|
||||
|
||||
#include <common/defines.h>
|
||||
|
||||
#include <Common/MoveOrCopyIfThrow.h>
|
||||
#include <common/MoveOrCopyIfThrow.h>
|
||||
|
||||
/** Pool for limited size objects that cannot be used from different threads simultaneously.
|
||||
* The main use case is to have fixed size of objects that can be reused in difference threads during their lifetime
|
@ -29,7 +29,7 @@ elseif (ENABLE_READLINE)
|
||||
endif ()
|
||||
|
||||
if (USE_DEBUG_HELPERS)
|
||||
set (INCLUDE_DEBUG_HELPERS "-include ${ClickHouse_SOURCE_DIR}/base/common/iostream_debug_helpers.h")
|
||||
set (INCLUDE_DEBUG_HELPERS "-include \"${ClickHouse_SOURCE_DIR}/base/common/iostream_debug_helpers.h\"")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${INCLUDE_DEBUG_HELPERS}")
|
||||
endif ()
|
||||
|
||||
@ -45,7 +45,7 @@ if (USE_INTERNAL_CCTZ)
|
||||
set_source_files_properties(DateLUTImpl.cpp PROPERTIES COMPILE_DEFINITIONS USE_INTERNAL_CCTZ)
|
||||
endif()
|
||||
|
||||
target_include_directories(common PUBLIC .. ${CMAKE_CURRENT_BINARY_DIR}/..)
|
||||
target_include_directories(common PUBLIC .. "${CMAKE_CURRENT_BINARY_DIR}/..")
|
||||
|
||||
if (OS_DARWIN AND NOT MAKE_STATIC_LIBRARIES)
|
||||
target_link_libraries(common PUBLIC -Wl,-U,_inside_main)
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
#if defined(__PPC__)
|
||||
#if !__clang__
|
||||
#if !defined(__clang__)
|
||||
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||
#endif
|
||||
#endif
|
||||
@ -1266,7 +1266,7 @@ public:
|
||||
};
|
||||
|
||||
#if defined(__PPC__)
|
||||
#if !__clang__
|
||||
#if !defined(__clang__)
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
#endif
|
||||
|
216
base/common/DecomposedFloat.h
Normal file
216
base/common/DecomposedFloat.h
Normal file
@ -0,0 +1,216 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <common/extended_types.h>
|
||||
|
||||
|
||||
/// Allows to check the internals of IEEE-754 floating point number.
|
||||
|
||||
template <typename T> struct FloatTraits;
|
||||
|
||||
template <>
|
||||
struct FloatTraits<float>
|
||||
{
|
||||
using UInt = uint32_t;
|
||||
static constexpr size_t bits = 32;
|
||||
static constexpr size_t exponent_bits = 8;
|
||||
static constexpr size_t mantissa_bits = bits - exponent_bits - 1;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct FloatTraits<double>
|
||||
{
|
||||
using UInt = uint64_t;
|
||||
static constexpr size_t bits = 64;
|
||||
static constexpr size_t exponent_bits = 11;
|
||||
static constexpr size_t mantissa_bits = bits - exponent_bits - 1;
|
||||
};
|
||||
|
||||
|
||||
/// x = sign * (2 ^ normalized_exponent) * (1 + mantissa * 2 ^ -mantissa_bits)
|
||||
/// x = sign * (2 ^ normalized_exponent + mantissa * 2 ^ (normalized_exponent - mantissa_bits))
|
||||
template <typename T>
|
||||
struct DecomposedFloat
|
||||
{
|
||||
using Traits = FloatTraits<T>;
|
||||
|
||||
DecomposedFloat(T x)
|
||||
{
|
||||
memcpy(&x_uint, &x, sizeof(x));
|
||||
}
|
||||
|
||||
typename Traits::UInt x_uint;
|
||||
|
||||
bool is_negative() const
|
||||
{
|
||||
return x_uint >> (Traits::bits - 1);
|
||||
}
|
||||
|
||||
/// Returns 0 for both +0. and -0.
|
||||
int sign() const
|
||||
{
|
||||
return (exponent() == 0 && mantissa() == 0)
|
||||
? 0
|
||||
: (is_negative()
|
||||
? -1
|
||||
: 1);
|
||||
}
|
||||
|
||||
uint16_t exponent() const
|
||||
{
|
||||
return (x_uint >> (Traits::mantissa_bits)) & (((1ull << (Traits::exponent_bits + 1)) - 1) >> 1);
|
||||
}
|
||||
|
||||
int16_t normalized_exponent() const
|
||||
{
|
||||
return int16_t(exponent()) - ((1ull << (Traits::exponent_bits - 1)) - 1);
|
||||
}
|
||||
|
||||
uint64_t mantissa() const
|
||||
{
|
||||
return x_uint & ((1ull << Traits::mantissa_bits) - 1);
|
||||
}
|
||||
|
||||
int64_t mantissa_with_sign() const
|
||||
{
|
||||
return is_negative() ? -mantissa() : mantissa();
|
||||
}
|
||||
|
||||
/// NOTE Probably floating point instructions can be better.
|
||||
bool is_integer_in_representable_range() const
|
||||
{
|
||||
return x_uint == 0
|
||||
|| (normalized_exponent() >= 0 /// The number is not less than one
|
||||
/// The number is inside the range where every integer has exact representation in float
|
||||
&& normalized_exponent() <= static_cast<int16_t>(Traits::mantissa_bits)
|
||||
/// After multiplying by 2^exp, the fractional part becomes zero, means the number is integer
|
||||
&& ((mantissa() & ((1ULL << (Traits::mantissa_bits - normalized_exponent())) - 1)) == 0));
|
||||
}
|
||||
|
||||
|
||||
/// Compare float with integer of arbitrary width (both signed and unsigned are supported). Assuming two's complement arithmetic.
|
||||
/// Infinities are compared correctly. NaNs are treat similarly to infinities, so they can be less than all numbers.
|
||||
/// (note that we need total order)
|
||||
template <typename Int>
|
||||
int compare(Int rhs)
|
||||
{
|
||||
if (rhs == 0)
|
||||
return sign();
|
||||
|
||||
/// Different signs
|
||||
if (is_negative() && rhs > 0)
|
||||
return -1;
|
||||
if (!is_negative() && rhs < 0)
|
||||
return 1;
|
||||
|
||||
/// Fractional number with magnitude less than one
|
||||
if (normalized_exponent() < 0)
|
||||
{
|
||||
if (!is_negative())
|
||||
return rhs > 0 ? -1 : 1;
|
||||
else
|
||||
return rhs >= 0 ? -1 : 1;
|
||||
}
|
||||
|
||||
/// The case of the most negative integer
|
||||
if constexpr (is_signed_v<Int>)
|
||||
{
|
||||
if (rhs == std::numeric_limits<Int>::lowest())
|
||||
{
|
||||
assert(is_negative());
|
||||
|
||||
if (normalized_exponent() < static_cast<int16_t>(8 * sizeof(Int) - is_signed_v<Int>))
|
||||
return 1;
|
||||
if (normalized_exponent() > static_cast<int16_t>(8 * sizeof(Int) - is_signed_v<Int>))
|
||||
return -1;
|
||||
|
||||
if (mantissa() == 0)
|
||||
return 0;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/// Too large number: abs(float) > abs(rhs). Also the case with infinities and NaN.
|
||||
if (normalized_exponent() >= static_cast<int16_t>(8 * sizeof(Int) - is_signed_v<Int>))
|
||||
return is_negative() ? -1 : 1;
|
||||
|
||||
using UInt = make_unsigned_t<Int>;
|
||||
UInt uint_rhs = rhs < 0 ? -rhs : rhs;
|
||||
|
||||
/// Smaller octave: abs(rhs) < abs(float)
|
||||
if (uint_rhs < (static_cast<UInt>(1) << normalized_exponent()))
|
||||
return is_negative() ? -1 : 1;
|
||||
|
||||
/// Larger octave: abs(rhs) > abs(float)
|
||||
if (normalized_exponent() + 1 < static_cast<int16_t>(8 * sizeof(Int) - is_signed_v<Int>)
|
||||
&& uint_rhs >= (static_cast<UInt>(1) << (normalized_exponent() + 1)))
|
||||
return is_negative() ? 1 : -1;
|
||||
|
||||
/// The same octave
|
||||
/// uint_rhs == 2 ^ normalized_exponent + mantissa * 2 ^ (normalized_exponent - mantissa_bits)
|
||||
|
||||
bool large_and_always_integer = normalized_exponent() >= static_cast<int16_t>(Traits::mantissa_bits);
|
||||
|
||||
typename Traits::UInt a = large_and_always_integer
|
||||
? mantissa() << (normalized_exponent() - Traits::mantissa_bits)
|
||||
: mantissa() >> (Traits::mantissa_bits - normalized_exponent());
|
||||
|
||||
typename Traits::UInt b = uint_rhs - (static_cast<UInt>(1) << normalized_exponent());
|
||||
|
||||
if (a < b)
|
||||
return is_negative() ? 1 : -1;
|
||||
if (a > b)
|
||||
return is_negative() ? -1 : 1;
|
||||
|
||||
/// Float has no fractional part means that the numbers are equal.
|
||||
if (large_and_always_integer || (mantissa() & ((1ULL << (Traits::mantissa_bits - normalized_exponent())) - 1)) == 0)
|
||||
return 0;
|
||||
else
|
||||
/// Float has fractional part means its abs value is larger.
|
||||
return is_negative() ? -1 : 1;
|
||||
}
|
||||
|
||||
|
||||
template <typename Int>
|
||||
bool equals(Int rhs)
|
||||
{
|
||||
return compare(rhs) == 0;
|
||||
}
|
||||
|
||||
template <typename Int>
|
||||
bool notEquals(Int rhs)
|
||||
{
|
||||
return compare(rhs) != 0;
|
||||
}
|
||||
|
||||
template <typename Int>
|
||||
bool less(Int rhs)
|
||||
{
|
||||
return compare(rhs) < 0;
|
||||
}
|
||||
|
||||
template <typename Int>
|
||||
bool greater(Int rhs)
|
||||
{
|
||||
return compare(rhs) > 0;
|
||||
}
|
||||
|
||||
template <typename Int>
|
||||
bool lessOrEquals(Int rhs)
|
||||
{
|
||||
return compare(rhs) <= 0;
|
||||
}
|
||||
|
||||
template <typename Int>
|
||||
bool greaterOrEquals(Int rhs)
|
||||
{
|
||||
return compare(rhs) >= 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
using DecomposedFloat64 = DecomposedFloat<double>;
|
||||
using DecomposedFloat32 = DecomposedFloat<float>;
|
@ -91,6 +91,10 @@ ReplxxLineReader::ReplxxLineReader(
|
||||
/// it also binded to M-p/M-n).
|
||||
rx.bind_key(Replxx::KEY::meta('N'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::COMPLETE_NEXT, code); });
|
||||
rx.bind_key(Replxx::KEY::meta('P'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::COMPLETE_PREVIOUS, code); });
|
||||
/// By default M-BACKSPACE is KILL_TO_WHITESPACE_ON_LEFT, while in readline it is backward-kill-word
|
||||
rx.bind_key(Replxx::KEY::meta(Replxx::KEY::BACKSPACE), [this](char32_t code) { return rx.invoke(Replxx::ACTION::KILL_TO_BEGINING_OF_WORD, code); });
|
||||
/// By default C-w is KILL_TO_BEGINING_OF_WORD, while in readline it is unix-word-rubout
|
||||
rx.bind_key(Replxx::KEY::control('W'), [this](char32_t code) { return rx.invoke(Replxx::ACTION::KILL_TO_WHITESPACE_ON_LEFT, code); });
|
||||
|
||||
rx.bind_key(Replxx::KEY::meta('E'), [this](char32_t) { openEditor(); return Replxx::ACTION_RESULT::CONTINUE; });
|
||||
}
|
||||
|
@ -56,27 +56,33 @@ namespace common
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool addOverflow(__int128 x, __int128 y, __int128 & res)
|
||||
inline bool addOverflow(Int128 x, Int128 y, Int128 & res)
|
||||
{
|
||||
static constexpr __int128 min_int128 = minInt128();
|
||||
static constexpr __int128 max_int128 = maxInt128();
|
||||
res = addIgnoreOverflow(x, y);
|
||||
return (y > 0 && x > max_int128 - y) || (y < 0 && x < min_int128 - y);
|
||||
return (y > 0 && x > std::numeric_limits<Int128>::max() - y) ||
|
||||
(y < 0 && x < std::numeric_limits<Int128>::min() - y);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool addOverflow(wInt256 x, wInt256 y, wInt256 & res)
|
||||
inline bool addOverflow(UInt128 x, UInt128 y, UInt128 & res)
|
||||
{
|
||||
res = addIgnoreOverflow(x, y);
|
||||
return (y > 0 && x > std::numeric_limits<wInt256>::max() - y) ||
|
||||
(y < 0 && x < std::numeric_limits<wInt256>::min() - y);
|
||||
return x > std::numeric_limits<UInt128>::max() - y;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool addOverflow(wUInt256 x, wUInt256 y, wUInt256 & res)
|
||||
inline bool addOverflow(Int256 x, Int256 y, Int256 & res)
|
||||
{
|
||||
res = addIgnoreOverflow(x, y);
|
||||
return x > std::numeric_limits<wUInt256>::max() - y;
|
||||
return (y > 0 && x > std::numeric_limits<Int256>::max() - y) ||
|
||||
(y < 0 && x < std::numeric_limits<Int256>::min() - y);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool addOverflow(UInt256 x, UInt256 y, UInt256 & res)
|
||||
{
|
||||
res = addIgnoreOverflow(x, y);
|
||||
return x > std::numeric_limits<UInt256>::max() - y;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -104,24 +110,30 @@ namespace common
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool subOverflow(__int128 x, __int128 y, __int128 & res)
|
||||
inline bool subOverflow(Int128 x, Int128 y, Int128 & res)
|
||||
{
|
||||
static constexpr __int128 min_int128 = minInt128();
|
||||
static constexpr __int128 max_int128 = maxInt128();
|
||||
res = subIgnoreOverflow(x, y);
|
||||
return (y < 0 && x > max_int128 + y) || (y > 0 && x < min_int128 + y);
|
||||
return (y < 0 && x > std::numeric_limits<Int128>::max() + y) ||
|
||||
(y > 0 && x < std::numeric_limits<Int128>::min() + y);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool subOverflow(wInt256 x, wInt256 y, wInt256 & res)
|
||||
inline bool subOverflow(UInt128 x, UInt128 y, UInt128 & res)
|
||||
{
|
||||
res = subIgnoreOverflow(x, y);
|
||||
return (y < 0 && x > std::numeric_limits<wInt256>::max() + y) ||
|
||||
(y > 0 && x < std::numeric_limits<wInt256>::min() + y);
|
||||
return x < y;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool subOverflow(wUInt256 x, wUInt256 y, wUInt256 & res)
|
||||
inline bool subOverflow(Int256 x, Int256 y, Int256 & res)
|
||||
{
|
||||
res = subIgnoreOverflow(x, y);
|
||||
return (y < 0 && x > std::numeric_limits<Int256>::max() + y) ||
|
||||
(y > 0 && x < std::numeric_limits<Int256>::min() + y);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool subOverflow(UInt256 x, UInt256 y, UInt256 & res)
|
||||
{
|
||||
res = subIgnoreOverflow(x, y);
|
||||
return x < y;
|
||||
@ -151,36 +163,33 @@ namespace common
|
||||
return __builtin_smulll_overflow(x, y, &res);
|
||||
}
|
||||
|
||||
/// Overflow check is not implemented for big integers.
|
||||
|
||||
template <>
|
||||
inline bool mulOverflow(__int128 x, __int128 y, __int128 & res)
|
||||
inline bool mulOverflow(Int128 x, Int128 y, Int128 & res)
|
||||
{
|
||||
res = mulIgnoreOverflow(x, y);
|
||||
if (!x || !y)
|
||||
return false;
|
||||
|
||||
unsigned __int128 a = (x > 0) ? x : -x;
|
||||
unsigned __int128 b = (y > 0) ? y : -y;
|
||||
return mulIgnoreOverflow(a, b) / b != a;
|
||||
return false;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool mulOverflow(wInt256 x, wInt256 y, wInt256 & res)
|
||||
inline bool mulOverflow(Int256 x, Int256 y, Int256 & res)
|
||||
{
|
||||
res = mulIgnoreOverflow(x, y);
|
||||
if (!x || !y)
|
||||
return false;
|
||||
|
||||
wInt256 a = (x > 0) ? x : -x;
|
||||
wInt256 b = (y > 0) ? y : -y;
|
||||
return mulIgnoreOverflow(a, b) / b != a;
|
||||
return false;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool mulOverflow(wUInt256 x, wUInt256 y, wUInt256 & res)
|
||||
inline bool mulOverflow(UInt128 x, UInt128 y, UInt128 & res)
|
||||
{
|
||||
res = mulIgnoreOverflow(x, y);
|
||||
if (!x || !y)
|
||||
return false;
|
||||
return res / y != x;
|
||||
return false;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline bool mulOverflow(UInt256 x, UInt256 y, UInt256 & res)
|
||||
{
|
||||
res = mulIgnoreOverflow(x, y);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -5,16 +5,14 @@
|
||||
#include <common/types.h>
|
||||
#include <common/wide_integer.h>
|
||||
|
||||
using Int128 = __int128;
|
||||
|
||||
using wInt256 = wide::integer<256, signed>;
|
||||
using wUInt256 = wide::integer<256, unsigned>;
|
||||
using Int128 = wide::integer<128, signed>;
|
||||
using UInt128 = wide::integer<128, unsigned>;
|
||||
using Int256 = wide::integer<256, signed>;
|
||||
using UInt256 = wide::integer<256, unsigned>;
|
||||
|
||||
static_assert(sizeof(wInt256) == 32);
|
||||
static_assert(sizeof(wUInt256) == 32);
|
||||
|
||||
static constexpr __int128 minInt128() { return static_cast<unsigned __int128>(1) << 127; }
|
||||
static constexpr __int128 maxInt128() { return (static_cast<unsigned __int128>(1) << 127) - 1; }
|
||||
static_assert(sizeof(Int256) == 32);
|
||||
static_assert(sizeof(UInt256) == 32);
|
||||
|
||||
/// The standard library type traits, such as std::is_arithmetic, with one exception
|
||||
/// (std::common_type), are "set in stone". Attempting to specialize them causes undefined behavior.
|
||||
@ -26,7 +24,7 @@ struct is_signed
|
||||
};
|
||||
|
||||
template <> struct is_signed<Int128> { static constexpr bool value = true; };
|
||||
template <> struct is_signed<wInt256> { static constexpr bool value = true; };
|
||||
template <> struct is_signed<Int256> { static constexpr bool value = true; };
|
||||
|
||||
template <typename T>
|
||||
inline constexpr bool is_signed_v = is_signed<T>::value;
|
||||
@ -37,7 +35,8 @@ struct is_unsigned
|
||||
static constexpr bool value = std::is_unsigned_v<T>;
|
||||
};
|
||||
|
||||
template <> struct is_unsigned<wUInt256> { static constexpr bool value = true; };
|
||||
template <> struct is_unsigned<UInt128> { static constexpr bool value = true; };
|
||||
template <> struct is_unsigned<UInt256> { static constexpr bool value = true; };
|
||||
|
||||
template <typename T>
|
||||
inline constexpr bool is_unsigned_v = is_unsigned<T>::value;
|
||||
@ -51,8 +50,9 @@ struct is_integer
|
||||
};
|
||||
|
||||
template <> struct is_integer<Int128> { static constexpr bool value = true; };
|
||||
template <> struct is_integer<wInt256> { static constexpr bool value = true; };
|
||||
template <> struct is_integer<wUInt256> { static constexpr bool value = true; };
|
||||
template <> struct is_integer<UInt128> { static constexpr bool value = true; };
|
||||
template <> struct is_integer<Int256> { static constexpr bool value = true; };
|
||||
template <> struct is_integer<UInt256> { static constexpr bool value = true; };
|
||||
|
||||
template <typename T>
|
||||
inline constexpr bool is_integer_v = is_integer<T>::value;
|
||||
@ -64,7 +64,11 @@ struct is_arithmetic
|
||||
static constexpr bool value = std::is_arithmetic_v<T>;
|
||||
};
|
||||
|
||||
template <> struct is_arithmetic<__int128> { static constexpr bool value = true; };
|
||||
template <> struct is_arithmetic<Int128> { static constexpr bool value = true; };
|
||||
template <> struct is_arithmetic<UInt128> { static constexpr bool value = true; };
|
||||
template <> struct is_arithmetic<Int256> { static constexpr bool value = true; };
|
||||
template <> struct is_arithmetic<UInt256> { static constexpr bool value = true; };
|
||||
|
||||
|
||||
template <typename T>
|
||||
inline constexpr bool is_arithmetic_v = is_arithmetic<T>::value;
|
||||
@ -75,9 +79,10 @@ struct make_unsigned
|
||||
typedef std::make_unsigned_t<T> type;
|
||||
};
|
||||
|
||||
template <> struct make_unsigned<Int128> { using type = unsigned __int128; };
|
||||
template <> struct make_unsigned<wInt256> { using type = wUInt256; };
|
||||
template <> struct make_unsigned<wUInt256> { using type = wUInt256; };
|
||||
template <> struct make_unsigned<Int128> { using type = UInt128; };
|
||||
template <> struct make_unsigned<UInt128> { using type = UInt128; };
|
||||
template <> struct make_unsigned<Int256> { using type = UInt256; };
|
||||
template <> struct make_unsigned<UInt256> { using type = UInt256; };
|
||||
|
||||
template <typename T> using make_unsigned_t = typename make_unsigned<T>::type;
|
||||
|
||||
@ -87,8 +92,10 @@ struct make_signed
|
||||
typedef std::make_signed_t<T> type;
|
||||
};
|
||||
|
||||
template <> struct make_signed<wInt256> { using type = wInt256; };
|
||||
template <> struct make_signed<wUInt256> { using type = wInt256; };
|
||||
template <> struct make_signed<Int128> { using type = Int128; };
|
||||
template <> struct make_signed<UInt128> { using type = Int128; };
|
||||
template <> struct make_signed<Int256> { using type = Int256; };
|
||||
template <> struct make_signed<UInt256> { using type = Int256; };
|
||||
|
||||
template <typename T> using make_signed_t = typename make_signed<T>::type;
|
||||
|
||||
@ -98,8 +105,10 @@ struct is_big_int
|
||||
static constexpr bool value = false;
|
||||
};
|
||||
|
||||
template <> struct is_big_int<wInt256> { static constexpr bool value = true; };
|
||||
template <> struct is_big_int<wUInt256> { static constexpr bool value = true; };
|
||||
template <> struct is_big_int<Int128> { static constexpr bool value = true; };
|
||||
template <> struct is_big_int<UInt128> { static constexpr bool value = true; };
|
||||
template <> struct is_big_int<Int256> { static constexpr bool value = true; };
|
||||
template <> struct is_big_int<UInt256> { static constexpr bool value = true; };
|
||||
|
||||
template <typename T>
|
||||
inline constexpr bool is_big_int_v = is_big_int<T>::value;
|
||||
|
@ -25,6 +25,10 @@ uint64_t getThreadId()
|
||||
current_tid = syscall(SYS_gettid); /// This call is always successful. - man gettid
|
||||
#elif defined(OS_FREEBSD)
|
||||
current_tid = pthread_getthreadid_np();
|
||||
#elif defined(OS_SUNOS)
|
||||
// On Solaris-derived systems, this returns the ID of the LWP, analogous
|
||||
// to a thread.
|
||||
current_tid = static_cast<uint64_t>(pthread_self());
|
||||
#else
|
||||
if (0 != pthread_threadid_np(nullptr, ¤t_tid))
|
||||
throw std::logic_error("pthread_threadid_np returned error");
|
||||
|
@ -30,9 +30,8 @@
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <type_traits>
|
||||
#include <common/extended_types.h>
|
||||
|
||||
using int128_t = __int128;
|
||||
using uint128_t = unsigned __int128;
|
||||
|
||||
namespace impl
|
||||
{
|
||||
@ -106,7 +105,7 @@ using UnsignedOfSize = typename SelectType
|
||||
uint16_t,
|
||||
uint32_t,
|
||||
uint64_t,
|
||||
uint128_t
|
||||
__uint128_t
|
||||
>::Result;
|
||||
|
||||
/// Holds the result of dividing an unsigned N-byte variable by 10^N resulting in
|
||||
@ -313,7 +312,8 @@ namespace convert
|
||||
}
|
||||
}
|
||||
|
||||
static inline int digits10(uint128_t x)
|
||||
template <typename T>
|
||||
static inline int digits10(T x)
|
||||
{
|
||||
if (x < 10ULL)
|
||||
return 1;
|
||||
@ -346,8 +346,11 @@ static inline int digits10(uint128_t x)
|
||||
return 12 + digits10(x / 1000000000000ULL);
|
||||
}
|
||||
|
||||
static inline char * writeUIntText(uint128_t x, char * p)
|
||||
template <typename T>
|
||||
static inline char * writeUIntText(T x, char * p)
|
||||
{
|
||||
static_assert(is_unsigned_v<T>);
|
||||
|
||||
int len = digits10(x);
|
||||
auto pp = p + len;
|
||||
while (x >= 100)
|
||||
@ -370,14 +373,28 @@ static inline char * writeLeadingMinus(char * pos)
|
||||
return pos + 1;
|
||||
}
|
||||
|
||||
static inline char * writeSIntText(int128_t x, char * pos)
|
||||
template <typename T>
|
||||
static inline char * writeSIntText(T x, char * pos)
|
||||
{
|
||||
static constexpr int128_t min_int128 = uint128_t(1) << 127;
|
||||
static_assert(std::is_same_v<T, Int128> || std::is_same_v<T, Int256>);
|
||||
|
||||
if (unlikely(x == min_int128))
|
||||
using UnsignedT = make_unsigned_t<T>;
|
||||
static constexpr T min_int = UnsignedT(1) << (sizeof(T) * 8 - 1);
|
||||
|
||||
if (unlikely(x == min_int))
|
||||
{
|
||||
memcpy(pos, "-170141183460469231731687303715884105728", 40);
|
||||
return pos + 40;
|
||||
if constexpr (std::is_same_v<T, Int128>)
|
||||
{
|
||||
const char * res = "-170141183460469231731687303715884105728";
|
||||
memcpy(pos, res, strlen(res));
|
||||
return pos + strlen(res);
|
||||
}
|
||||
else if constexpr (std::is_same_v<T, Int256>)
|
||||
{
|
||||
const char * res = "-57896044618658097711785492504343953926634992332820282019728792003956564819968";
|
||||
memcpy(pos, res, strlen(res));
|
||||
return pos + strlen(res);
|
||||
}
|
||||
}
|
||||
|
||||
if (x < 0)
|
||||
@ -385,7 +402,7 @@ static inline char * writeSIntText(int128_t x, char * pos)
|
||||
x = -x;
|
||||
pos = writeLeadingMinus(pos);
|
||||
}
|
||||
return writeUIntText(static_cast<uint128_t>(x), pos);
|
||||
return writeUIntText(UnsignedT(x), pos);
|
||||
}
|
||||
|
||||
}
|
||||
@ -403,13 +420,25 @@ inline char * itoa(char8_t i, char * p)
|
||||
}
|
||||
|
||||
template <>
|
||||
inline char * itoa<uint128_t>(uint128_t i, char * p)
|
||||
inline char * itoa(UInt128 i, char * p)
|
||||
{
|
||||
return impl::writeUIntText(i, p);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline char * itoa<int128_t>(int128_t i, char * p)
|
||||
inline char * itoa(Int128 i, char * p)
|
||||
{
|
||||
return impl::writeSIntText(i, p);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline char * itoa(UInt256 i, char * p)
|
||||
{
|
||||
return impl::writeUIntText(i, p);
|
||||
}
|
||||
|
||||
template <>
|
||||
inline char * itoa(Int256 i, char * p)
|
||||
{
|
||||
return impl::writeSIntText(i, p);
|
||||
}
|
||||
|
@ -4,7 +4,8 @@
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
template <class T, class Tag>
|
||||
|
||||
template <typename T, typename Tag>
|
||||
struct StrongTypedef
|
||||
{
|
||||
private:
|
||||
@ -38,14 +39,16 @@ public:
|
||||
|
||||
bool operator==(const Self & rhs) const { return t == rhs.t; }
|
||||
bool operator<(const Self & rhs) const { return t < rhs.t; }
|
||||
bool operator>(const Self & rhs) const { return t > rhs.t; }
|
||||
|
||||
T & toUnderType() { return t; }
|
||||
const T & toUnderType() const { return t; }
|
||||
};
|
||||
|
||||
|
||||
namespace std
|
||||
{
|
||||
template <class T, class Tag>
|
||||
template <typename T, typename Tag>
|
||||
struct hash<StrongTypedef<T, Tag>>
|
||||
{
|
||||
size_t operator()(const StrongTypedef<T, Tag> & x) const
|
||||
|
@ -1,13 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
|
||||
/// Throw DB::Exception-like exception before its definition.
|
||||
/// DB::Exception derived from Poco::Exception derived from std::exception.
|
||||
/// DB::Exception generally cought as Poco::Exception. std::exception generally has other catch blocks and could lead to other outcomes.
|
||||
/// DB::Exception generally caught as Poco::Exception. std::exception generally has other catch blocks and could lead to other outcomes.
|
||||
/// DB::Exception is not defined yet. It'd better to throw Poco::Exception but we do not want to include any big header here, even <string>.
|
||||
/// So we throw some std::exception instead in the hope its catch block is the same as DB::Exception one.
|
||||
template <typename T>
|
||||
inline void throwError(const T & err)
|
||||
[[noreturn]] inline void throwError(const T & err)
|
||||
{
|
||||
throw std::runtime_error(err);
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#if defined (OS_DARWIN)
|
||||
#if defined (OS_DARWIN) || defined (OS_SUNOS)
|
||||
# define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC
|
||||
#elif defined (OS_FREEBSD)
|
||||
# define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC_FAST
|
||||
|
@ -13,7 +13,12 @@ using char8_t = unsigned char;
|
||||
#endif
|
||||
|
||||
/// This is needed for more strict aliasing. https://godbolt.org/z/xpJBSb https://stackoverflow.com/a/57453713
|
||||
#if !defined(PVS_STUDIO) /// But PVS-Studio does not treat it correctly.
|
||||
using UInt8 = char8_t;
|
||||
#else
|
||||
using UInt8 = uint8_t;
|
||||
#endif
|
||||
|
||||
using UInt16 = uint16_t;
|
||||
using UInt32 = uint32_t;
|
||||
using UInt64 = uint64_t;
|
||||
|
@ -58,9 +58,11 @@ public:
|
||||
using signed_base_type = int64_t;
|
||||
|
||||
// ctors
|
||||
constexpr integer() noexcept;
|
||||
constexpr integer() noexcept = default;
|
||||
|
||||
template <typename T>
|
||||
constexpr integer(T rhs) noexcept;
|
||||
|
||||
template <typename T>
|
||||
constexpr integer(std::initializer_list<T> il) noexcept;
|
||||
|
||||
@ -108,9 +110,9 @@ public:
|
||||
constexpr explicit operator bool() const noexcept;
|
||||
|
||||
template <class T>
|
||||
using __integral_not_wide_integer_class = typename std::enable_if<std::is_arithmetic<T>::value, T>::type;
|
||||
using _integral_not_wide_integer_class = typename std::enable_if<std::is_arithmetic<T>::value, T>::type;
|
||||
|
||||
template <class T, class = __integral_not_wide_integer_class<T>>
|
||||
template <class T, class = _integral_not_wide_integer_class<T>>
|
||||
constexpr operator T() const noexcept;
|
||||
|
||||
constexpr operator long double() const noexcept;
|
||||
@ -119,25 +121,27 @@ public:
|
||||
|
||||
struct _impl;
|
||||
|
||||
base_type items[_impl::item_count];
|
||||
|
||||
private:
|
||||
template <size_t Bits2, typename Signed2>
|
||||
friend class integer;
|
||||
|
||||
friend class std::numeric_limits<integer<Bits, signed>>;
|
||||
friend class std::numeric_limits<integer<Bits, unsigned>>;
|
||||
|
||||
base_type items[_impl::item_count];
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
static constexpr bool ArithmeticConcept() noexcept;
|
||||
|
||||
template <class T1, class T2>
|
||||
using __only_arithmetic = typename std::enable_if<ArithmeticConcept<T1>() && ArithmeticConcept<T2>()>::type;
|
||||
using _only_arithmetic = typename std::enable_if<ArithmeticConcept<T1>() && ArithmeticConcept<T2>()>::type;
|
||||
|
||||
template <typename T>
|
||||
static constexpr bool IntegralConcept() noexcept;
|
||||
|
||||
template <class T, class T2>
|
||||
using __only_integer = typename std::enable_if<IntegralConcept<T>() && IntegralConcept<T2>()>::type;
|
||||
using _only_integer = typename std::enable_if<IntegralConcept<T>() && IntegralConcept<T2>()>::type;
|
||||
|
||||
// Unary operators
|
||||
template <size_t Bits, typename Signed>
|
||||
@ -153,54 +157,55 @@ constexpr integer<Bits, Signed> operator+(const integer<Bits, Signed> & lhs) noe
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator*(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
std::common_type_t<Arithmetic, Arithmetic2> constexpr operator*(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator/(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
std::common_type_t<Arithmetic, Arithmetic2> constexpr operator/(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator+(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
std::common_type_t<Arithmetic, Arithmetic2> constexpr operator+(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator-(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
std::common_type_t<Arithmetic, Arithmetic2> constexpr operator-(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator%(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Integral, typename Integral2, class = __only_integer<Integral, Integral2>>
|
||||
template <typename Integral, typename Integral2, class = _only_integer<Integral, Integral2>>
|
||||
std::common_type_t<Integral, Integral2> constexpr operator%(const Integral & rhs, const Integral2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator&(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Integral, typename Integral2, class = __only_integer<Integral, Integral2>>
|
||||
template <typename Integral, typename Integral2, class = _only_integer<Integral, Integral2>>
|
||||
std::common_type_t<Integral, Integral2> constexpr operator&(const Integral & rhs, const Integral2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator|(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Integral, typename Integral2, class = __only_integer<Integral, Integral2>>
|
||||
template <typename Integral, typename Integral2, class = _only_integer<Integral, Integral2>>
|
||||
std::common_type_t<Integral, Integral2> constexpr operator|(const Integral & rhs, const Integral2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>> constexpr
|
||||
operator^(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Integral, typename Integral2, class = __only_integer<Integral, Integral2>>
|
||||
template <typename Integral, typename Integral2, class = _only_integer<Integral, Integral2>>
|
||||
std::common_type_t<Integral, Integral2> constexpr operator^(const Integral & rhs, const Integral2 & lhs);
|
||||
|
||||
// TODO: Integral
|
||||
template <size_t Bits, typename Signed>
|
||||
constexpr integer<Bits, Signed> operator<<(const integer<Bits, Signed> & lhs, int n) noexcept;
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
constexpr integer<Bits, Signed> operator>>(const integer<Bits, Signed> & lhs, int n) noexcept;
|
||||
|
||||
@ -217,32 +222,32 @@ constexpr integer<Bits, Signed> operator>>(const integer<Bits, Signed> & lhs, In
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator<(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
constexpr bool operator<(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator>(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
constexpr bool operator>(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator<=(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
constexpr bool operator<=(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator>=(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
constexpr bool operator>=(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator==(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
constexpr bool operator==(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator!=(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs);
|
||||
template <typename Arithmetic, typename Arithmetic2, class = __only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
template <typename Arithmetic, typename Arithmetic2, class = _only_arithmetic<Arithmetic, Arithmetic2>>
|
||||
constexpr bool operator!=(const Arithmetic & rhs, const Arithmetic2 & lhs);
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
/// (See at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include "throwError.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <cfloat>
|
||||
#include <cassert>
|
||||
@ -81,7 +82,7 @@ public:
|
||||
res.items[T::_impl::big(0)] = std::numeric_limits<typename wide::integer<Bits, Signed>::signed_base_type>::min();
|
||||
return res;
|
||||
}
|
||||
return 0;
|
||||
return wide::integer<Bits, Signed>(0);
|
||||
}
|
||||
|
||||
static constexpr wide::integer<Bits, Signed> max() noexcept
|
||||
@ -176,7 +177,7 @@ struct integer<Bits, Signed>::_impl
|
||||
constexpr static bool is_negative(const integer<B, T> & n) noexcept
|
||||
{
|
||||
if constexpr (std::is_same_v<T, signed>)
|
||||
return static_cast<signed_base_type>(n.items[big(0)]) < 0;
|
||||
return static_cast<signed_base_type>(n.items[integer<B, T>::_impl::big(0)]) < 0;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
@ -193,40 +194,36 @@ struct integer<Bits, Signed>::_impl
|
||||
template <size_t B, class S>
|
||||
constexpr static integer<B, S> make_positive(const integer<B, S> & n) noexcept
|
||||
{
|
||||
return is_negative(n) ? operator_unary_minus(n) : n;
|
||||
return is_negative(n) ? integer<B, S>(operator_unary_minus(n)) : n;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
__attribute__((no_sanitize("undefined"))) constexpr static auto to_Integral(T f) noexcept
|
||||
{
|
||||
if constexpr (std::is_same_v<T, __int128>)
|
||||
return f;
|
||||
else if constexpr (std::is_signed_v<T>)
|
||||
if constexpr (std::is_signed_v<T>)
|
||||
return static_cast<int64_t>(f);
|
||||
else
|
||||
return static_cast<uint64_t>(f);
|
||||
}
|
||||
|
||||
template <typename Integral>
|
||||
constexpr static void wide_integer_from_bultin(integer<Bits, Signed> & self, Integral rhs) noexcept
|
||||
constexpr static void wide_integer_from_builtin(integer<Bits, Signed> & self, Integral rhs) noexcept
|
||||
{
|
||||
self.items[0] = _impl::to_Integral(rhs);
|
||||
if constexpr (std::is_same_v<Integral, __int128>)
|
||||
self.items[1] = rhs >> base_bits;
|
||||
static_assert(sizeof(Integral) <= sizeof(base_type));
|
||||
|
||||
constexpr const unsigned start = (sizeof(Integral) == 16) ? 2 : 1;
|
||||
self.items[0] = _impl::to_Integral(rhs);
|
||||
|
||||
if constexpr (std::is_signed_v<Integral>)
|
||||
{
|
||||
if (rhs < 0)
|
||||
{
|
||||
for (unsigned i = start; i < item_count; ++i)
|
||||
for (size_t i = 1; i < item_count; ++i)
|
||||
self.items[i] = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (unsigned i = start; i < item_count; ++i)
|
||||
for (size_t i = 1; i < item_count; ++i)
|
||||
self.items[i] = 0;
|
||||
}
|
||||
|
||||
@ -239,7 +236,8 @@ struct integer<Bits, Signed>::_impl
|
||||
* a_(n - 1) = a_n * max_int + b2, a_n <= max_int <- base case.
|
||||
*/
|
||||
template <class T>
|
||||
constexpr static void set_multiplier(integer<Bits, Signed> & self, T t) noexcept {
|
||||
constexpr static void set_multiplier(integer<Bits, Signed> & self, T t) noexcept
|
||||
{
|
||||
constexpr uint64_t max_int = std::numeric_limits<uint64_t>::max();
|
||||
|
||||
/// Implementation specific behaviour on overflow (if we don't check here, stack overflow will triggered in bigint_cast).
|
||||
@ -260,7 +258,8 @@ struct integer<Bits, Signed>::_impl
|
||||
self += static_cast<uint64_t>(t - alpha * static_cast<T>(max_int)); // += b_i
|
||||
}
|
||||
|
||||
constexpr static void wide_integer_from_bultin(integer<Bits, Signed>& self, double rhs) noexcept {
|
||||
constexpr static void wide_integer_from_builtin(integer<Bits, Signed>& self, double rhs) noexcept
|
||||
{
|
||||
constexpr int64_t max_int = std::numeric_limits<int64_t>::max();
|
||||
constexpr int64_t min_int = std::numeric_limits<int64_t>::min();
|
||||
|
||||
@ -271,9 +270,13 @@ struct integer<Bits, Signed>::_impl
|
||||
/// As to_Integral does a static_cast to int64_t, it may result in UB.
|
||||
/// The necessary check here is that long double has enough significant (mantissa) bits to store the
|
||||
/// int64_t max value precisely.
|
||||
|
||||
//TODO Be compatible with Apple aarch64
|
||||
#if not (defined(__APPLE__) && defined(__aarch64__))
|
||||
static_assert(LDBL_MANT_DIG >= 64,
|
||||
"On your system long double has less than 64 precision bits,"
|
||||
"which may result in UB when initializing double from int64_t");
|
||||
#endif
|
||||
|
||||
if ((rhs > 0 && rhs < static_cast<long double>(max_int)) || (rhs < 0 && rhs > static_cast<long double>(min_int)))
|
||||
{
|
||||
@ -379,13 +382,13 @@ struct integer<Bits, Signed>::_impl
|
||||
if (bit_shift)
|
||||
lhs.items[big(items_shift)] |= std::numeric_limits<base_type>::max() << (base_bits - bit_shift);
|
||||
|
||||
for (unsigned i = item_count - items_shift; i < items_shift; ++i)
|
||||
lhs.items[little(i)] = std::numeric_limits<base_type>::max();
|
||||
for (unsigned i = 0; i < items_shift; ++i)
|
||||
lhs.items[big(i)] = std::numeric_limits<base_type>::max();
|
||||
}
|
||||
else
|
||||
{
|
||||
for (unsigned i = item_count - items_shift; i < items_shift; ++i)
|
||||
lhs.items[little(i)] = 0;
|
||||
for (unsigned i = 0; i < items_shift; ++i)
|
||||
lhs.items[big(i)] = 0;
|
||||
}
|
||||
|
||||
return lhs;
|
||||
@ -393,23 +396,23 @@ struct integer<Bits, Signed>::_impl
|
||||
|
||||
private:
|
||||
template <typename T>
|
||||
constexpr static base_type get_item(const T & x, unsigned number)
|
||||
constexpr static base_type get_item(const T & x, unsigned idx)
|
||||
{
|
||||
if constexpr (IsWideInteger<T>::value)
|
||||
{
|
||||
if (number < T::_impl::item_count)
|
||||
return x.items[number];
|
||||
if (idx < T::_impl::item_count)
|
||||
return x.items[idx];
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if constexpr (sizeof(T) <= sizeof(base_type))
|
||||
{
|
||||
if (!number)
|
||||
if (0 == idx)
|
||||
return x;
|
||||
}
|
||||
else if (number * sizeof(base_type) < sizeof(T))
|
||||
return x >> (number * base_bits); // & std::numeric_limits<base_type>::max()
|
||||
else if (idx * sizeof(base_type) < sizeof(T))
|
||||
return x >> (idx * base_bits); // & std::numeric_limits<base_type>::max()
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -435,7 +438,7 @@ private:
|
||||
|
||||
for (unsigned i = 1; i < item_count; ++i)
|
||||
{
|
||||
if (underflows[i-1])
|
||||
if (underflows[i - 1])
|
||||
{
|
||||
base_type & res_item = res.items[little(i)];
|
||||
if (res_item == 0)
|
||||
@ -468,7 +471,7 @@ private:
|
||||
|
||||
for (unsigned i = 1; i < item_count; ++i)
|
||||
{
|
||||
if (overflows[i-1])
|
||||
if (overflows[i - 1])
|
||||
{
|
||||
base_type & res_item = res.items[little(i)];
|
||||
++res_item;
|
||||
@ -528,6 +531,17 @@ private:
|
||||
res.items[little(2)] = r12 >> 64;
|
||||
return res;
|
||||
}
|
||||
else if constexpr (Bits == 128 && sizeof(base_type) == 8)
|
||||
{
|
||||
using CompilerUInt128 = unsigned __int128;
|
||||
CompilerUInt128 a = (CompilerUInt128(lhs.items[1]) << 64) + lhs.items[0];
|
||||
CompilerUInt128 b = (CompilerUInt128(rhs.items[1]) << 64) + rhs.items[0];
|
||||
CompilerUInt128 c = a * b;
|
||||
integer<Bits, Signed> res;
|
||||
res.items[0] = c;
|
||||
res.items[1] = c >> 64;
|
||||
return res;
|
||||
}
|
||||
else
|
||||
{
|
||||
integer<Bits, Signed> res{};
|
||||
@ -653,7 +667,7 @@ public:
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
constexpr static bool operator_more(const integer<Bits, Signed> & lhs, const T & rhs) noexcept
|
||||
constexpr static bool operator_greater(const integer<Bits, Signed> & lhs, const T & rhs) noexcept
|
||||
{
|
||||
if constexpr (should_keep_size<T>())
|
||||
{
|
||||
@ -673,7 +687,7 @@ public:
|
||||
else
|
||||
{
|
||||
static_assert(IsWideInteger<T>::value);
|
||||
return std::common_type_t<integer<Bits, Signed>, T>::_impl::operator_more(T(lhs), rhs);
|
||||
return std::common_type_t<integer<Bits, Signed>, T>::_impl::operator_greater(T(lhs), rhs);
|
||||
}
|
||||
}
|
||||
|
||||
@ -760,7 +774,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
template <typename T>
|
||||
constexpr static bool is_zero(const T & x)
|
||||
{
|
||||
@ -777,46 +790,65 @@ private:
|
||||
}
|
||||
|
||||
/// returns quotient as result and remainder in numerator.
|
||||
template <typename T>
|
||||
constexpr static T divide(T & numerator, T && denominator)
|
||||
template <size_t Bits2>
|
||||
constexpr static integer<Bits2, unsigned> divide(integer<Bits2, unsigned> & numerator, integer<Bits2, unsigned> denominator)
|
||||
{
|
||||
if (is_zero(denominator))
|
||||
throwError("divide by zero");
|
||||
static_assert(std::is_unsigned_v<Signed>);
|
||||
|
||||
T & n = numerator;
|
||||
T & d = denominator;
|
||||
T x = 1;
|
||||
T quotient = 0;
|
||||
|
||||
while (!operator_more(d, n) && operator_eq(operator_amp(shift_right(d, base_bits * item_count - 1), 1), 0))
|
||||
if constexpr (Bits == 128 && sizeof(base_type) == 8)
|
||||
{
|
||||
x = shift_left(x, 1);
|
||||
d = shift_left(d, 1);
|
||||
using CompilerUInt128 = unsigned __int128;
|
||||
|
||||
CompilerUInt128 a = (CompilerUInt128(numerator.items[1]) << 64) + numerator.items[0];
|
||||
CompilerUInt128 b = (CompilerUInt128(denominator.items[1]) << 64) + denominator.items[0];
|
||||
CompilerUInt128 c = a / b;
|
||||
|
||||
integer<Bits, Signed> res;
|
||||
res.items[0] = c;
|
||||
res.items[1] = c >> 64;
|
||||
|
||||
CompilerUInt128 remainder = a - b * c;
|
||||
numerator.items[0] = remainder;
|
||||
numerator.items[1] = remainder >> 64;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
while (!operator_eq(x, 0))
|
||||
if (is_zero(denominator))
|
||||
throwError("Division by zero");
|
||||
|
||||
integer<Bits2, unsigned> x = 1;
|
||||
integer<Bits2, unsigned> quotient = 0;
|
||||
|
||||
while (!operator_greater(denominator, numerator) && is_zero(operator_amp(shift_right(denominator, Bits2 - 1), 1)))
|
||||
{
|
||||
if (!operator_more(d, n))
|
||||
x = shift_left(x, 1);
|
||||
denominator = shift_left(denominator, 1);
|
||||
}
|
||||
|
||||
while (!is_zero(x))
|
||||
{
|
||||
if (!operator_greater(denominator, numerator))
|
||||
{
|
||||
n = operator_minus(n, d);
|
||||
numerator = operator_minus(numerator, denominator);
|
||||
quotient = operator_pipe(quotient, x);
|
||||
}
|
||||
|
||||
x = shift_right(x, 1);
|
||||
d = shift_right(d, 1);
|
||||
denominator = shift_right(denominator, 1);
|
||||
}
|
||||
|
||||
return quotient;
|
||||
}
|
||||
|
||||
public:
|
||||
template <typename T>
|
||||
constexpr static auto operator_slash(const integer<Bits, Signed> & lhs, const T & rhs)
|
||||
{
|
||||
if constexpr (should_keep_size<T>())
|
||||
{
|
||||
integer<Bits, Signed> numerator = make_positive(lhs);
|
||||
integer<Bits, Signed> quotient = divide(numerator, make_positive(integer<Bits, Signed>(rhs)));
|
||||
integer<Bits, unsigned> numerator = make_positive(lhs);
|
||||
integer<Bits, unsigned> denominator = make_positive(integer<Bits, Signed>(rhs));
|
||||
integer<Bits, unsigned> quotient = integer<Bits, unsigned>::_impl::divide(numerator, std::move(denominator));
|
||||
|
||||
if (std::is_same_v<Signed, signed> && is_negative(rhs) != is_negative(lhs))
|
||||
quotient = operator_unary_minus(quotient);
|
||||
@ -834,8 +866,9 @@ public:
|
||||
{
|
||||
if constexpr (should_keep_size<T>())
|
||||
{
|
||||
integer<Bits, Signed> remainder = make_positive(lhs);
|
||||
divide(remainder, make_positive(integer<Bits, Signed>(rhs)));
|
||||
integer<Bits, unsigned> remainder = make_positive(lhs);
|
||||
integer<Bits, unsigned> denominator = make_positive(integer<Bits, Signed>(rhs));
|
||||
integer<Bits, unsigned>::_impl::divide(remainder, std::move(denominator));
|
||||
|
||||
if (std::is_same_v<Signed, signed> && is_negative(lhs))
|
||||
remainder = operator_unary_minus(remainder);
|
||||
@ -901,7 +934,7 @@ public:
|
||||
++c;
|
||||
}
|
||||
else
|
||||
throwError("invalid char from");
|
||||
throwError("Invalid char from");
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -909,7 +942,7 @@ public:
|
||||
while (*c)
|
||||
{
|
||||
if (*c < '0' || *c > '9')
|
||||
throwError("invalid char from");
|
||||
throwError("Invalid char from");
|
||||
|
||||
res = multiply(res, 10U);
|
||||
res = plus(res, *c - '0');
|
||||
@ -926,11 +959,6 @@ public:
|
||||
|
||||
// Members
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
constexpr integer<Bits, Signed>::integer() noexcept
|
||||
: items{}
|
||||
{}
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
template <typename T>
|
||||
constexpr integer<Bits, Signed>::integer(T rhs) noexcept
|
||||
@ -939,7 +967,7 @@ constexpr integer<Bits, Signed>::integer(T rhs) noexcept
|
||||
if constexpr (IsWideInteger<T>::value)
|
||||
_impl::wide_integer_from_wide_integer(*this, rhs);
|
||||
else
|
||||
_impl::wide_integer_from_bultin(*this, rhs);
|
||||
_impl::wide_integer_from_builtin(*this, rhs);
|
||||
}
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
@ -952,10 +980,19 @@ constexpr integer<Bits, Signed>::integer(std::initializer_list<T> il) noexcept
|
||||
if constexpr (IsWideInteger<T>::value)
|
||||
_impl::wide_integer_from_wide_integer(*this, *il.begin());
|
||||
else
|
||||
_impl::wide_integer_from_bultin(*this, *il.begin());
|
||||
_impl::wide_integer_from_builtin(*this, *il.begin());
|
||||
}
|
||||
else if (il.size() == 0)
|
||||
{
|
||||
_impl::wide_integer_from_builtin(*this, 0);
|
||||
}
|
||||
else
|
||||
_impl::wide_integer_from_bultin(*this, 0);
|
||||
{
|
||||
auto it = il.begin();
|
||||
for (size_t i = 0; i < _impl::item_count; ++i)
|
||||
if (it < il.end())
|
||||
items[i] = *it;
|
||||
}
|
||||
}
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
@ -970,7 +1007,7 @@ template <size_t Bits, typename Signed>
|
||||
template <typename T>
|
||||
constexpr integer<Bits, Signed> & integer<Bits, Signed>::operator=(T rhs) noexcept
|
||||
{
|
||||
_impl::wide_integer_from_bultin(*this, rhs);
|
||||
_impl::wide_integer_from_builtin(*this, rhs);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@ -1053,7 +1090,7 @@ constexpr integer<Bits, Signed> & integer<Bits, Signed>::operator>>=(int n) noex
|
||||
{
|
||||
if (static_cast<size_t>(n) >= Bits)
|
||||
{
|
||||
if (is_negative(*this))
|
||||
if (_impl::is_negative(*this))
|
||||
*this = -1;
|
||||
else
|
||||
*this = 0;
|
||||
@ -1103,16 +1140,17 @@ template <size_t Bits, typename Signed>
|
||||
template <class T, class>
|
||||
constexpr integer<Bits, Signed>::operator T() const noexcept
|
||||
{
|
||||
if constexpr (std::is_same_v<T, __int128>)
|
||||
{
|
||||
static_assert(Bits >= 128);
|
||||
return (__int128(items[1]) << 64) | items[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
static_assert(std::numeric_limits<T>::is_integer);
|
||||
return items[0];
|
||||
}
|
||||
static_assert(std::numeric_limits<T>::is_integer);
|
||||
|
||||
/// NOTE: memcpy will suffice, but unfortunately, this function is constexpr.
|
||||
|
||||
using UnsignedT = std::make_unsigned_t<T>;
|
||||
|
||||
UnsignedT res{};
|
||||
for (unsigned i = 0; i < _impl::item_count && i < (sizeof(T) + sizeof(base_type) - 1) / sizeof(base_type); ++i)
|
||||
res += UnsignedT(items[i]) << (sizeof(base_type) * 8 * i);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
@ -1276,7 +1314,7 @@ template <size_t Bits, typename Signed>
|
||||
constexpr integer<Bits, Signed> operator<<(const integer<Bits, Signed> & lhs, int n) noexcept
|
||||
{
|
||||
if (static_cast<size_t>(n) >= Bits)
|
||||
return 0;
|
||||
return integer<Bits, Signed>(0);
|
||||
if (n <= 0)
|
||||
return lhs;
|
||||
return integer<Bits, Signed>::_impl::shift_left(lhs, n);
|
||||
@ -1285,7 +1323,7 @@ template <size_t Bits, typename Signed>
|
||||
constexpr integer<Bits, Signed> operator>>(const integer<Bits, Signed> & lhs, int n) noexcept
|
||||
{
|
||||
if (static_cast<size_t>(n) >= Bits)
|
||||
return 0;
|
||||
return integer<Bits, Signed>(0);
|
||||
if (n <= 0)
|
||||
return lhs;
|
||||
return integer<Bits, Signed>::_impl::shift_right(lhs, n);
|
||||
@ -1305,7 +1343,7 @@ constexpr bool operator<(const Arithmetic & lhs, const Arithmetic2 & rhs)
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator>(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs)
|
||||
{
|
||||
return std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>>::_impl::operator_more(lhs, rhs);
|
||||
return std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>>::_impl::operator_greater(lhs, rhs);
|
||||
}
|
||||
template <typename Arithmetic, typename Arithmetic2, class>
|
||||
constexpr bool operator>(const Arithmetic & lhs, const Arithmetic2 & rhs)
|
||||
@ -1328,7 +1366,7 @@ constexpr bool operator<=(const Arithmetic & lhs, const Arithmetic2 & rhs)
|
||||
template <size_t Bits, typename Signed, size_t Bits2, typename Signed2>
|
||||
constexpr bool operator>=(const integer<Bits, Signed> & lhs, const integer<Bits2, Signed2> & rhs)
|
||||
{
|
||||
return std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>>::_impl::operator_more(lhs, rhs)
|
||||
return std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>>::_impl::operator_greater(lhs, rhs)
|
||||
|| std::common_type_t<integer<Bits, Signed>, integer<Bits2, Signed2>>::_impl::operator_eq(lhs, rhs);
|
||||
}
|
||||
template <typename Arithmetic, typename Arithmetic2, class>
|
||||
|
@ -1,9 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <ostream>
|
||||
#include <fmt/format.h>
|
||||
|
||||
#include "wide_integer.h"
|
||||
|
||||
|
||||
namespace wide
|
||||
{
|
||||
|
||||
@ -33,3 +36,34 @@ inline std::string to_string(const integer<Bits, Signed> & n)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
template <size_t Bits, typename Signed>
|
||||
std::ostream & operator<<(std::ostream & out, const wide::integer<Bits, Signed> & value)
|
||||
{
|
||||
return out << to_string(value);
|
||||
}
|
||||
|
||||
|
||||
/// See https://fmt.dev/latest/api.html#formatting-user-defined-types
|
||||
template <size_t Bits, typename Signed>
|
||||
struct fmt::formatter<wide::integer<Bits, Signed>>
|
||||
{
|
||||
constexpr auto parse(format_parse_context & ctx)
|
||||
{
|
||||
auto it = ctx.begin();
|
||||
auto end = ctx.end();
|
||||
|
||||
/// Only support {}.
|
||||
if (it != end && *it != '}')
|
||||
throw format_error("invalid format");
|
||||
|
||||
return it;
|
||||
}
|
||||
|
||||
template <typename FormatContext>
|
||||
auto format(const wide::integer<Bits, Signed> & value, FormatContext & ctx)
|
||||
{
|
||||
return format_to(ctx.out(), "{}", to_string(value));
|
||||
}
|
||||
};
|
||||
|
@ -35,7 +35,7 @@ PEERDIR(
|
||||
CFLAGS(-g0)
|
||||
|
||||
SRCS(
|
||||
<? find . -name '*.cpp' | grep -v -F tests/ | grep -v -F Replxx | grep -v -F Readline | sed 's/^\.\// /' | sort ?>
|
||||
<? find . -name '*.cpp' | grep -v -F tests/ | grep -v -F examples | grep -v -F Replxx | grep -v -F Readline | sed 's/^\.\// /' | sort ?>
|
||||
)
|
||||
|
||||
END()
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <common/getMemoryAmount.h>
|
||||
#include <common/logger_useful.h>
|
||||
|
||||
#include <Common/formatReadable.h>
|
||||
#include <Common/SymbolIndex.h>
|
||||
#include <Common/StackTrace.h>
|
||||
#include <Common/getNumberOfPhysicalCPUCores.h>
|
||||
@ -101,7 +102,7 @@ void SentryWriter::initialize(Poco::Util::LayeredConfiguration & config)
|
||||
auto * logger = &Poco::Logger::get("SentryWriter");
|
||||
if (config.getBool("send_crash_reports.enabled", false))
|
||||
{
|
||||
if (debug || (strlen(VERSION_OFFICIAL) > 0))
|
||||
if (debug || (strlen(VERSION_OFFICIAL) > 0)) //-V560
|
||||
{
|
||||
enabled = true;
|
||||
}
|
||||
|
68
base/ext/scope_guard_safe.h
Normal file
68
base/ext/scope_guard_safe.h
Normal file
@ -0,0 +1,68 @@
|
||||
#pragma once
|
||||
|
||||
#include <ext/scope_guard.h>
|
||||
#include <common/logger_useful.h>
|
||||
#include <Common/MemoryTracker.h>
|
||||
|
||||
/// Same as SCOPE_EXIT() but block the MEMORY_LIMIT_EXCEEDED errors.
|
||||
///
|
||||
/// Typical example of SCOPE_EXIT_MEMORY() usage is when code under it may do
|
||||
/// some tiny allocations, that may fail under high memory pressure or/and low
|
||||
/// max_memory_usage (and related limits).
|
||||
///
|
||||
/// NOTE: it should be used with caution.
|
||||
#define SCOPE_EXIT_MEMORY(...) SCOPE_EXIT( \
|
||||
MemoryTracker::LockExceptionInThread \
|
||||
lock_memory_tracker(VariableContext::Global); \
|
||||
__VA_ARGS__; \
|
||||
)
|
||||
|
||||
/// Same as SCOPE_EXIT() but try/catch/tryLogCurrentException any exceptions.
|
||||
///
|
||||
/// SCOPE_EXIT_SAFE() should be used in case the exception during the code
|
||||
/// under SCOPE_EXIT() is not "that fatal" and error message in log is enough.
|
||||
///
|
||||
/// Good example is calling CurrentThread::detachQueryIfNotDetached().
|
||||
///
|
||||
/// Anti-pattern is calling WriteBuffer::finalize() under SCOPE_EXIT_SAFE()
|
||||
/// (since finalize() can do final write and it is better to fail abnormally
|
||||
/// instead of ignoring write error).
|
||||
///
|
||||
/// NOTE: it should be used with double caution.
|
||||
#define SCOPE_EXIT_SAFE(...) SCOPE_EXIT( \
|
||||
try \
|
||||
{ \
|
||||
__VA_ARGS__; \
|
||||
} \
|
||||
catch (...) \
|
||||
{ \
|
||||
tryLogCurrentException(__PRETTY_FUNCTION__); \
|
||||
} \
|
||||
)
|
||||
|
||||
/// Same as SCOPE_EXIT() but:
|
||||
/// - block the MEMORY_LIMIT_EXCEEDED errors,
|
||||
/// - try/catch/tryLogCurrentException any exceptions.
|
||||
///
|
||||
/// SCOPE_EXIT_MEMORY_SAFE() can be used when the error can be ignored, and in
|
||||
/// addition to SCOPE_EXIT_SAFE() it will also lock MEMORY_LIMIT_EXCEEDED to
|
||||
/// avoid such exceptions.
|
||||
///
|
||||
/// It does exists as a separate helper, since you do not need to lock
|
||||
/// MEMORY_LIMIT_EXCEEDED always (there are cases when code under SCOPE_EXIT does
|
||||
/// not do any allocations, while LockExceptionInThread increment atomic
|
||||
/// variable).
|
||||
///
|
||||
/// NOTE: it should be used with triple caution.
|
||||
#define SCOPE_EXIT_MEMORY_SAFE(...) SCOPE_EXIT( \
|
||||
try \
|
||||
{ \
|
||||
MemoryTracker::LockExceptionInThread \
|
||||
lock_memory_tracker(VariableContext::Global); \
|
||||
__VA_ARGS__; \
|
||||
} \
|
||||
catch (...) \
|
||||
{ \
|
||||
tryLogCurrentException(__PRETTY_FUNCTION__); \
|
||||
} \
|
||||
)
|
@ -15,7 +15,7 @@ if (GLIBC_COMPATIBILITY)
|
||||
|
||||
add_headers_and_sources(glibc_compatibility .)
|
||||
add_headers_and_sources(glibc_compatibility musl)
|
||||
if (ARCH_ARM)
|
||||
if (ARCH_AARCH64)
|
||||
list (APPEND glibc_compatibility_sources musl/aarch64/syscall.s musl/aarch64/longjmp.s)
|
||||
set (musl_arch_include_dir musl/aarch64)
|
||||
elseif (ARCH_AMD64)
|
||||
|
@ -78,6 +78,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
// Disable warnings by PVS-Studio
|
||||
//-V::GA
|
||||
|
||||
static const double
|
||||
pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */
|
||||
a0 = 7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */
|
||||
|
@ -85,6 +85,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
// Disable warnings by PVS-Studio
|
||||
//-V::GA
|
||||
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include "libm.h"
|
||||
|
@ -155,7 +155,7 @@ static inline long double fp_barrierl(long double x)
|
||||
static inline void fp_force_evalf(float x)
|
||||
{
|
||||
volatile float y;
|
||||
y = x;
|
||||
y = x; //-V1001
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -164,7 +164,7 @@ static inline void fp_force_evalf(float x)
|
||||
static inline void fp_force_eval(double x)
|
||||
{
|
||||
volatile double y;
|
||||
y = x;
|
||||
y = x; //-V1001
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -173,7 +173,7 @@ static inline void fp_force_eval(double x)
|
||||
static inline void fp_force_evall(long double x)
|
||||
{
|
||||
volatile long double y;
|
||||
y = x;
|
||||
y = x; //-V1001
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -3,6 +3,9 @@
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
// Disable warnings by PVS-Studio
|
||||
//-V::GA
|
||||
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include "libm.h"
|
||||
|
@ -1,4 +1,4 @@
|
||||
include(${ClickHouse_SOURCE_DIR}/cmake/dbms_glob_sources.cmake)
|
||||
include("${ClickHouse_SOURCE_DIR}/cmake/dbms_glob_sources.cmake")
|
||||
add_headers_and_sources(loggers .)
|
||||
add_library(loggers ${loggers_sources} ${loggers_headers})
|
||||
target_link_libraries(loggers PRIVATE dbms clickhouse_common_io)
|
||||
|
@ -40,7 +40,7 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
split->addTextLog(log, text_log_max_priority);
|
||||
|
||||
auto current_logger = config.getString("logger", "");
|
||||
if (config_logger == current_logger)
|
||||
if (config_logger == current_logger) //-V1051
|
||||
return;
|
||||
|
||||
config_logger = current_logger;
|
||||
@ -51,12 +51,22 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
/// Use extended interface of Channel for more comprehensive logging.
|
||||
split = new DB::OwnSplitChannel();
|
||||
|
||||
auto log_level = config.getString("logger.level", "trace");
|
||||
auto log_level_string = config.getString("logger.level", "trace");
|
||||
|
||||
/// different channels (log, console, syslog) may have different loglevels configured
|
||||
/// The maximum (the most verbose) of those will be used as default for Poco loggers
|
||||
int max_log_level = 0;
|
||||
|
||||
const auto log_path = config.getString("logger.log", "");
|
||||
if (!log_path.empty())
|
||||
{
|
||||
createDirectory(log_path);
|
||||
std::cerr << "Logging " << log_level << " to " << log_path << std::endl;
|
||||
std::cerr << "Logging " << log_level_string << " to " << log_path << std::endl;
|
||||
auto log_level = Poco::Logger::parseLevel(log_level_string);
|
||||
if (log_level > max_log_level)
|
||||
{
|
||||
max_log_level = log_level;
|
||||
}
|
||||
|
||||
// Set up two channel chains.
|
||||
log_file = new Poco::FileChannel;
|
||||
@ -69,9 +79,10 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
log_file->setProperty(Poco::FileChannel::PROP_ROTATEONOPEN, config.getRawString("logger.rotateOnOpen", "false"));
|
||||
log_file->open();
|
||||
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter(this);
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter;
|
||||
|
||||
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, log_file);
|
||||
log->setLevel(log_level);
|
||||
split->addChannel(log);
|
||||
}
|
||||
|
||||
@ -79,6 +90,15 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
if (!errorlog_path.empty())
|
||||
{
|
||||
createDirectory(errorlog_path);
|
||||
|
||||
// NOTE: we don't use notice & critical in the code, so in practice error log collects fatal & error & warning.
|
||||
// (!) Warnings are important, they require attention and should never be silenced / ignored.
|
||||
auto errorlog_level = Poco::Logger::parseLevel(config.getString("logger.errorlog_level", "notice"));
|
||||
if (errorlog_level > max_log_level)
|
||||
{
|
||||
max_log_level = errorlog_level;
|
||||
}
|
||||
|
||||
std::cerr << "Logging errors to " << errorlog_path << std::endl;
|
||||
|
||||
error_log_file = new Poco::FileChannel;
|
||||
@ -90,20 +110,22 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
error_log_file->setProperty(Poco::FileChannel::PROP_FLUSH, config.getRawString("logger.flush", "true"));
|
||||
error_log_file->setProperty(Poco::FileChannel::PROP_ROTATEONOPEN, config.getRawString("logger.rotateOnOpen", "false"));
|
||||
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter(this);
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter;
|
||||
|
||||
Poco::AutoPtr<DB::OwnFormattingChannel> errorlog = new DB::OwnFormattingChannel(pf, error_log_file);
|
||||
errorlog->setLevel(Poco::Message::PRIO_NOTICE);
|
||||
errorlog->setLevel(errorlog_level);
|
||||
errorlog->open();
|
||||
split->addChannel(errorlog);
|
||||
}
|
||||
|
||||
/// "dynamic_layer_selection" is needed only for Yandex.Metrika, that share part of ClickHouse code.
|
||||
/// We don't need this configuration parameter.
|
||||
|
||||
if (config.getBool("logger.use_syslog", false) || config.getBool("dynamic_layer_selection", false))
|
||||
if (config.getBool("logger.use_syslog", false))
|
||||
{
|
||||
//const std::string & cmd_name = commandName();
|
||||
auto syslog_level = Poco::Logger::parseLevel(config.getString("logger.syslog_level", log_level_string));
|
||||
if (syslog_level > max_log_level)
|
||||
{
|
||||
max_log_level = syslog_level;
|
||||
}
|
||||
|
||||
if (config.has("logger.syslog.address"))
|
||||
{
|
||||
@ -127,9 +149,11 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
}
|
||||
syslog_channel->open();
|
||||
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter(this, OwnPatternFormatter::ADD_LAYER_TAG);
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter;
|
||||
|
||||
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, syslog_channel);
|
||||
log->setLevel(syslog_level);
|
||||
|
||||
split->addChannel(log);
|
||||
}
|
||||
|
||||
@ -141,9 +165,17 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
{
|
||||
bool color_enabled = config.getBool("logger.color_terminal", color_logs_by_default);
|
||||
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter(this, OwnPatternFormatter::ADD_NOTHING, color_enabled);
|
||||
auto console_log_level_string = config.getString("logger.console_log_level", log_level_string);
|
||||
auto console_log_level = Poco::Logger::parseLevel(console_log_level_string);
|
||||
if (console_log_level > max_log_level)
|
||||
{
|
||||
max_log_level = console_log_level;
|
||||
}
|
||||
|
||||
Poco::AutoPtr<OwnPatternFormatter> pf = new OwnPatternFormatter(color_enabled);
|
||||
Poco::AutoPtr<DB::OwnFormattingChannel> log = new DB::OwnFormattingChannel(pf, new Poco::ConsoleChannel);
|
||||
logger.warning("Logging " + log_level + " to console");
|
||||
logger.warning("Logging " + console_log_level_string + " to console");
|
||||
log->setLevel(console_log_level);
|
||||
split->addChannel(log);
|
||||
}
|
||||
|
||||
@ -152,17 +184,17 @@ void Loggers::buildLoggers(Poco::Util::AbstractConfiguration & config, Poco::Log
|
||||
logger.setChannel(split);
|
||||
|
||||
// Global logging level (it can be overridden for specific loggers).
|
||||
logger.setLevel(log_level);
|
||||
logger.setLevel(max_log_level);
|
||||
|
||||
// Set level to all already created loggers
|
||||
std::vector<std::string> names;
|
||||
//logger_root = Logger::root();
|
||||
logger.root().names(names);
|
||||
for (const auto & name : names)
|
||||
logger.root().get(name).setLevel(log_level);
|
||||
logger.root().get(name).setLevel(max_log_level);
|
||||
|
||||
// Attach to the root logger.
|
||||
logger.root().setLevel(log_level);
|
||||
logger.root().setLevel(max_log_level);
|
||||
logger.root().setChannel(logger.getChannel());
|
||||
|
||||
// Explicitly specified log levels for specific loggers.
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <Interpreters/TextLog.h>
|
||||
#include "OwnSplitChannel.h"
|
||||
|
||||
|
||||
namespace Poco::Util
|
||||
{
|
||||
class AbstractConfiguration;
|
||||
@ -21,16 +22,8 @@ public:
|
||||
/// Close log files. On next log write files will be reopened.
|
||||
void closeLogs(Poco::Logger & logger);
|
||||
|
||||
std::optional<size_t> getLayer() const
|
||||
{
|
||||
return layer; /// layer set in inheritor class BaseDaemonApplication.
|
||||
}
|
||||
|
||||
void setTextLog(std::shared_ptr<DB::TextLog> log, int max_priority);
|
||||
|
||||
protected:
|
||||
std::optional<size_t> layer;
|
||||
|
||||
private:
|
||||
Poco::AutoPtr<Poco::FileChannel> log_file;
|
||||
Poco::AutoPtr<Poco::FileChannel> error_log_file;
|
||||
|
@ -22,6 +22,9 @@ public:
|
||||
|
||||
void setLevel(Poco::Message::Priority priority_) { priority = priority_; }
|
||||
|
||||
// Poco::Logger::parseLevel returns ints
|
||||
void setLevel(int level) { priority = static_cast<Poco::Message::Priority>(level); }
|
||||
|
||||
void open() override
|
||||
{
|
||||
if (pChannel)
|
||||
|
@ -13,31 +13,18 @@
|
||||
#include "Loggers.h"
|
||||
|
||||
|
||||
OwnPatternFormatter::OwnPatternFormatter(const Loggers * loggers_, OwnPatternFormatter::Options options_, bool color_)
|
||||
: Poco::PatternFormatter(""), loggers(loggers_), options(options_), color(color_)
|
||||
OwnPatternFormatter::OwnPatternFormatter(bool color_)
|
||||
: Poco::PatternFormatter(""), color(color_)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void OwnPatternFormatter::formatExtended(const DB::ExtendedLogMessage & msg_ext, std::string & text)
|
||||
void OwnPatternFormatter::formatExtended(const DB::ExtendedLogMessage & msg_ext, std::string & text) const
|
||||
{
|
||||
DB::WriteBufferFromString wb(text);
|
||||
|
||||
const Poco::Message & msg = msg_ext.base;
|
||||
|
||||
/// For syslog: tag must be before message and first whitespace.
|
||||
/// This code is only used in Yandex.Metrika and unneeded in ClickHouse.
|
||||
if ((options & ADD_LAYER_TAG) && loggers)
|
||||
{
|
||||
auto layer = loggers->getLayer();
|
||||
if (layer)
|
||||
{
|
||||
writeCString("layer[", wb);
|
||||
DB::writeIntText(*layer, wb);
|
||||
writeCString("]: ", wb);
|
||||
}
|
||||
}
|
||||
|
||||
/// Change delimiters in date for compatibility with old logs.
|
||||
DB::writeDateTimeText<'.', ':'>(msg_ext.time_seconds, wb);
|
||||
|
||||
|
@ -24,20 +24,11 @@ class Loggers;
|
||||
class OwnPatternFormatter : public Poco::PatternFormatter
|
||||
{
|
||||
public:
|
||||
/// ADD_LAYER_TAG is needed only for Yandex.Metrika, that share part of ClickHouse code.
|
||||
enum Options
|
||||
{
|
||||
ADD_NOTHING = 0,
|
||||
ADD_LAYER_TAG = 1 << 0
|
||||
};
|
||||
|
||||
OwnPatternFormatter(const Loggers * loggers_, Options options_ = ADD_NOTHING, bool color_ = false);
|
||||
OwnPatternFormatter(bool color_ = false);
|
||||
|
||||
void format(const Poco::Message & msg, std::string & text) override;
|
||||
void formatExtended(const DB::ExtendedLogMessage & msg_ext, std::string & text);
|
||||
void formatExtended(const DB::ExtendedLogMessage & msg_ext, std::string & text) const;
|
||||
|
||||
private:
|
||||
const Loggers * loggers;
|
||||
Options options;
|
||||
bool color;
|
||||
};
|
||||
|
@ -14,8 +14,8 @@ add_library (mysqlxx
|
||||
target_include_directories (mysqlxx PUBLIC ..)
|
||||
|
||||
if (USE_INTERNAL_MYSQL_LIBRARY)
|
||||
target_include_directories (mysqlxx PUBLIC ${ClickHouse_SOURCE_DIR}/contrib/mariadb-connector-c/include)
|
||||
target_include_directories (mysqlxx PUBLIC ${ClickHouse_BINARY_DIR}/contrib/mariadb-connector-c/include)
|
||||
target_include_directories (mysqlxx PUBLIC "${ClickHouse_SOURCE_DIR}/contrib/mariadb-connector-c/include")
|
||||
target_include_directories (mysqlxx PUBLIC "${ClickHouse_BINARY_DIR}/contrib/mariadb-connector-c/include")
|
||||
else ()
|
||||
set(PLATFORM_LIBRARIES ${CMAKE_DL_LIBS})
|
||||
|
||||
|
@ -159,9 +159,9 @@ public:
|
||||
*/
|
||||
Pool(const std::string & db_,
|
||||
const std::string & server_,
|
||||
const std::string & user_ = "",
|
||||
const std::string & password_ = "",
|
||||
unsigned port_ = 0,
|
||||
const std::string & user_,
|
||||
const std::string & password_,
|
||||
unsigned port_,
|
||||
const std::string & socket_ = "",
|
||||
unsigned connect_timeout_ = MYSQLXX_DEFAULT_TIMEOUT,
|
||||
unsigned rw_timeout_ = MYSQLXX_DEFAULT_RW_TIMEOUT,
|
||||
|
@ -447,69 +447,6 @@ inline SrcIter uneven_copy(SrcIter src_first,
|
||||
std::integral_constant<bool, DEST_IS_SMALLER>{});
|
||||
}
|
||||
|
||||
/* generate_to, fill in a fixed-size array of integral type using a SeedSeq
|
||||
* (actually works for any random-access iterator)
|
||||
*/
|
||||
|
||||
template <size_t size, typename SeedSeq, typename DestIter>
|
||||
inline void generate_to_impl(SeedSeq&& generator, DestIter dest,
|
||||
std::true_type)
|
||||
{
|
||||
generator.generate(dest, dest+size);
|
||||
}
|
||||
|
||||
template <size_t size, typename SeedSeq, typename DestIter>
|
||||
void generate_to_impl(SeedSeq&& generator, DestIter dest,
|
||||
std::false_type)
|
||||
{
|
||||
typedef typename std::iterator_traits<DestIter>::value_type dest_t;
|
||||
constexpr auto DEST_SIZE = sizeof(dest_t);
|
||||
constexpr auto GEN_SIZE = sizeof(uint32_t);
|
||||
|
||||
constexpr bool GEN_IS_SMALLER = GEN_SIZE < DEST_SIZE;
|
||||
constexpr size_t FROM_ELEMS =
|
||||
GEN_IS_SMALLER
|
||||
? size * ((DEST_SIZE+GEN_SIZE-1) / GEN_SIZE)
|
||||
: (size + (GEN_SIZE / DEST_SIZE) - 1)
|
||||
/ ((GEN_SIZE / DEST_SIZE) + GEN_IS_SMALLER);
|
||||
// this odd code ^^^^^^^^^^^^^^^^^ is work-around for
|
||||
// a bug: http://llvm.org/bugs/show_bug.cgi?id=21287
|
||||
|
||||
if (FROM_ELEMS <= 1024) {
|
||||
uint32_t buffer[FROM_ELEMS];
|
||||
generator.generate(buffer, buffer+FROM_ELEMS);
|
||||
uneven_copy(buffer, dest, dest+size);
|
||||
} else {
|
||||
uint32_t* buffer = static_cast<uint32_t*>(malloc(GEN_SIZE * FROM_ELEMS));
|
||||
generator.generate(buffer, buffer+FROM_ELEMS);
|
||||
uneven_copy(buffer, dest, dest+size);
|
||||
free(static_cast<void*>(buffer));
|
||||
}
|
||||
}
|
||||
|
||||
template <size_t size, typename SeedSeq, typename DestIter>
|
||||
inline void generate_to(SeedSeq&& generator, DestIter dest)
|
||||
{
|
||||
typedef typename std::iterator_traits<DestIter>::value_type dest_t;
|
||||
constexpr bool IS_32BIT = sizeof(dest_t) == sizeof(uint32_t);
|
||||
|
||||
generate_to_impl<size>(std::forward<SeedSeq>(generator), dest,
|
||||
std::integral_constant<bool, IS_32BIT>{});
|
||||
}
|
||||
|
||||
/* generate_one, produce a value of integral type using a SeedSeq
|
||||
* (optionally, we can have it produce more than one and pick which one
|
||||
* we want)
|
||||
*/
|
||||
|
||||
template <typename UInt, size_t i = 0UL, size_t N = i+1UL, typename SeedSeq>
|
||||
inline UInt generate_one(SeedSeq&& generator)
|
||||
{
|
||||
UInt result[N];
|
||||
generate_to<N>(std::forward<SeedSeq>(generator), result);
|
||||
return result[i];
|
||||
}
|
||||
|
||||
template <typename RngType>
|
||||
auto bounded_rand(RngType& rng, typename RngType::result_type upper_bound)
|
||||
-> typename RngType::result_type
|
||||
@ -517,7 +454,7 @@ auto bounded_rand(RngType& rng, typename RngType::result_type upper_bound)
|
||||
typedef typename RngType::result_type rtype;
|
||||
rtype threshold = (RngType::max() - RngType::min() + rtype(1) - upper_bound)
|
||||
% upper_bound;
|
||||
for (;;) {
|
||||
for (;;) { //-V1044
|
||||
rtype r = rng() - RngType::min();
|
||||
if (r >= threshold)
|
||||
return r % upper_bound;
|
||||
|
@ -928,7 +928,7 @@ struct rxs_m_xs_mixin {
|
||||
constexpr bitcount_t shift = bits - xtypebits;
|
||||
constexpr bitcount_t mask = (1 << opbits) - 1;
|
||||
bitcount_t rshift =
|
||||
opbits ? bitcount_t(internal >> (bits - opbits)) & mask : 0;
|
||||
opbits ? bitcount_t(internal >> (bits - opbits)) & mask : 0; //-V547
|
||||
internal ^= internal >> (opbits + rshift);
|
||||
internal *= mcg_multiplier<itype>::multiplier();
|
||||
xtype result = internal >> shift;
|
||||
@ -950,7 +950,7 @@ struct rxs_m_xs_mixin {
|
||||
|
||||
internal *= mcg_unmultiplier<itype>::unmultiplier();
|
||||
|
||||
bitcount_t rshift = opbits ? (internal >> (bits - opbits)) & mask : 0;
|
||||
bitcount_t rshift = opbits ? (internal >> (bits - opbits)) & mask : 0; //-V547
|
||||
internal = unxorshift(internal, bits, opbits + rshift);
|
||||
|
||||
return internal;
|
||||
@ -975,7 +975,7 @@ struct rxs_m_mixin {
|
||||
: 2;
|
||||
constexpr bitcount_t shift = bits - xtypebits;
|
||||
constexpr bitcount_t mask = (1 << opbits) - 1;
|
||||
bitcount_t rshift = opbits ? (internal >> (bits - opbits)) & mask : 0;
|
||||
bitcount_t rshift = opbits ? (internal >> (bits - opbits)) & mask : 0; //-V547
|
||||
internal ^= internal >> (opbits + rshift);
|
||||
internal *= mcg_multiplier<itype>::multiplier();
|
||||
xtype result = internal >> shift;
|
||||
@ -1366,7 +1366,7 @@ void extended<table_pow2,advance_pow2,baseclass,extvalclass,kdd>::selfinit()
|
||||
// - any strange correlations would only be apparent if we
|
||||
// were to backstep the generator so that the base generator
|
||||
// was generating the same values again
|
||||
result_type xdiff = baseclass::operator()() - baseclass::operator()();
|
||||
result_type xdiff = baseclass::operator()() - baseclass::operator()(); //-V501
|
||||
for (size_t i = 0; i < table_size; ++i) {
|
||||
data_[i] = baseclass::operator()() ^ xdiff;
|
||||
}
|
||||
@ -1643,22 +1643,22 @@ typedef setseq_base<pcg128_t, pcg128_t, xsl_rr_rr_mixin>
|
||||
|
||||
template <bitcount_t table_pow2, bitcount_t advance_pow2,
|
||||
typename BaseRNG, bool kdd = true>
|
||||
using ext_std8 = extended<table_pow2, advance_pow2, BaseRNG,
|
||||
using ext_std8 = pcg_detail::extended<table_pow2, advance_pow2, BaseRNG,
|
||||
oneseq_rxs_m_xs_8_8, kdd>;
|
||||
|
||||
template <bitcount_t table_pow2, bitcount_t advance_pow2,
|
||||
typename BaseRNG, bool kdd = true>
|
||||
using ext_std16 = extended<table_pow2, advance_pow2, BaseRNG,
|
||||
using ext_std16 = pcg_detail::extended<table_pow2, advance_pow2, BaseRNG,
|
||||
oneseq_rxs_m_xs_16_16, kdd>;
|
||||
|
||||
template <bitcount_t table_pow2, bitcount_t advance_pow2,
|
||||
typename BaseRNG, bool kdd = true>
|
||||
using ext_std32 = extended<table_pow2, advance_pow2, BaseRNG,
|
||||
using ext_std32 = pcg_detail::extended<table_pow2, advance_pow2, BaseRNG,
|
||||
oneseq_rxs_m_xs_32_32, kdd>;
|
||||
|
||||
template <bitcount_t table_pow2, bitcount_t advance_pow2,
|
||||
typename BaseRNG, bool kdd = true>
|
||||
using ext_std64 = extended<table_pow2, advance_pow2, BaseRNG,
|
||||
using ext_std64 = pcg_detail::extended<table_pow2, advance_pow2, BaseRNG,
|
||||
oneseq_rxs_m_xs_64_64, kdd>;
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64")
|
||||
set (ARCH_AMD64 1)
|
||||
endif ()
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*|ARM64.*)")
|
||||
set (ARCH_AARCH64 1)
|
||||
endif ()
|
||||
if (ARCH_AARCH64 OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
|
@ -1,9 +1,9 @@
|
||||
# This strings autochanged from release_lib.sh:
|
||||
SET(VERSION_REVISION 54450)
|
||||
SET(VERSION_REVISION 54451)
|
||||
SET(VERSION_MAJOR 21)
|
||||
SET(VERSION_MINOR 5)
|
||||
SET(VERSION_MINOR 6)
|
||||
SET(VERSION_PATCH 1)
|
||||
SET(VERSION_GITHASH 3827789b3d8fd2021952e57e5110343d26daa1a1)
|
||||
SET(VERSION_DESCRIBE v21.5.1.1-prestable)
|
||||
SET(VERSION_STRING 21.5.1.1)
|
||||
SET(VERSION_GITHASH 96fced4c3cf432fb0b401d2ab01f0c56e5f74a96)
|
||||
SET(VERSION_DESCRIBE v21.6.1.1-prestable)
|
||||
SET(VERSION_STRING 21.6.1.1)
|
||||
# end of autochange
|
||||
|
6
cmake/check_flags.cmake
Normal file
6
cmake/check_flags.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
include (CheckCXXCompilerFlag)
|
||||
include (CheckCCompilerFlag)
|
||||
|
||||
check_cxx_compiler_flag("-Wsuggest-destructor-override" HAS_SUGGEST_DESTRUCTOR_OVERRIDE)
|
||||
check_cxx_compiler_flag("-Wshadow" HAS_SHADOW)
|
||||
check_cxx_compiler_flag("-Wsuggest-override" HAS_SUGGEST_OVERRIDE)
|
@ -1,11 +1,14 @@
|
||||
set (DEFAULT_LIBS "-nodefaultlibs")
|
||||
|
||||
if (NOT COMPILER_CLANG)
|
||||
message (FATAL_ERROR "Darwin build is supported only for Clang")
|
||||
endif ()
|
||||
|
||||
set (DEFAULT_LIBS "${DEFAULT_LIBS} ${COVERAGE_OPTION} -lc -lm -lpthread -ldl")
|
||||
|
||||
if (COMPILER_GCC)
|
||||
set (DEFAULT_LIBS "${DEFAULT_LIBS} -lgcc_eh")
|
||||
if (ARCH_AARCH64)
|
||||
set (DEFAULT_LIBS "${DEFAULT_LIBS} -lgcc")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
message(STATUS "Default libraries: ${DEFAULT_LIBS}")
|
||||
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES ${DEFAULT_LIBS})
|
||||
|
14
cmake/darwin/toolchain-aarch64.cmake
Normal file
14
cmake/darwin/toolchain-aarch64.cmake
Normal file
@ -0,0 +1,14 @@
|
||||
set (CMAKE_SYSTEM_NAME "Darwin")
|
||||
set (CMAKE_SYSTEM_PROCESSOR "aarch64")
|
||||
set (CMAKE_C_COMPILER_TARGET "aarch64-apple-darwin")
|
||||
set (CMAKE_CXX_COMPILER_TARGET "aarch64-apple-darwin")
|
||||
set (CMAKE_ASM_COMPILER_TARGET "aarch64-apple-darwin")
|
||||
set (CMAKE_OSX_SYSROOT "${CMAKE_CURRENT_LIST_DIR}/../toolchain/darwin-aarch64")
|
||||
|
||||
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) # disable linkage check - it doesn't work in CMake
|
||||
|
||||
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)
|
@ -1,3 +1,8 @@
|
||||
if (MISSING_INTERNAL_LIBUV_LIBRARY)
|
||||
message (WARNING "Can't find internal libuv needed for AMQP-CPP library")
|
||||
set (ENABLE_AMQPCPP OFF CACHE INTERNAL "")
|
||||
endif()
|
||||
|
||||
option(ENABLE_AMQPCPP "Enalbe AMQP-CPP" ${ENABLE_LIBRARIES})
|
||||
|
||||
if (NOT ENABLE_AMQPCPP)
|
||||
@ -12,11 +17,13 @@ if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/CMakeLists.txt")
|
||||
endif ()
|
||||
|
||||
set (USE_AMQPCPP 1)
|
||||
set (AMQPCPP_LIBRARY AMQP-CPP)
|
||||
set (AMQPCPP_LIBRARY amqp-cpp)
|
||||
|
||||
set (AMQPCPP_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/include")
|
||||
list (APPEND AMQPCPP_INCLUDE_DIR
|
||||
"${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/include"
|
||||
"${LIBUV_INCLUDE_DIR}"
|
||||
"${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP")
|
||||
|
||||
list (APPEND AMQPCPP_LIBRARY "${LIBUV_LIBRARY}")
|
||||
|
||||
message (STATUS "Using AMQP-CPP=${USE_AMQPCPP}: ${AMQPCPP_INCLUDE_DIR} : ${AMQPCPP_LIBRARY}")
|
||||
|
@ -1,3 +1,8 @@
|
||||
if (MISSING_INTERNAL_LIBUV_LIBRARY)
|
||||
message (WARNING "Disabling cassandra due to missing libuv")
|
||||
set (ENABLE_CASSANDRA OFF CACHE INTERNAL "")
|
||||
endif()
|
||||
|
||||
option(ENABLE_CASSANDRA "Enable Cassandra" ${ENABLE_LIBRARIES})
|
||||
|
||||
if (NOT ENABLE_CASSANDRA)
|
||||
@ -8,27 +13,22 @@ if (APPLE)
|
||||
set(CMAKE_MACOSX_RPATH ON)
|
||||
endif()
|
||||
|
||||
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libuv")
|
||||
message (ERROR "submodule contrib/libuv is missing. to fix try run: \n git submodule update --init --recursive")
|
||||
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal libuv needed for Cassandra")
|
||||
elseif (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 (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal Cassandra")
|
||||
else()
|
||||
set (LIBUV_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/libuv")
|
||||
set (CASSANDRA_INCLUDE_DIR
|
||||
"${ClickHouse_SOURCE_DIR}/contrib/cassandra/include/")
|
||||
if (MAKE_STATIC_LIBRARIES)
|
||||
set (LIBUV_LIBRARY uv_a)
|
||||
set (CASSANDRA_LIBRARY cassandra_static)
|
||||
else()
|
||||
set (LIBUV_LIBRARY uv)
|
||||
set (CASSANDRA_LIBRARY cassandra)
|
||||
endif()
|
||||
|
||||
set (USE_CASSANDRA 1)
|
||||
set (CASS_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/cassandra")
|
||||
set (USE_CASSANDRA 0)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set (USE_CASSANDRA 1)
|
||||
set (CASSANDRA_INCLUDE_DIR
|
||||
"${ClickHouse_SOURCE_DIR}/contrib/cassandra/include/")
|
||||
if (MAKE_STATIC_LIBRARIES)
|
||||
set (CASSANDRA_LIBRARY cassandra_static)
|
||||
else()
|
||||
set (CASSANDRA_LIBRARY cassandra)
|
||||
endif()
|
||||
|
||||
set (CASS_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/cassandra")
|
||||
|
||||
message (STATUS "Using cassandra=${USE_CASSANDRA}: ${CASSANDRA_INCLUDE_DIR} : ${CASSANDRA_LIBRARY}")
|
||||
message (STATUS "Using libuv: ${LIBUV_ROOT_DIR} : ${LIBUV_LIBRARY}")
|
||||
|
@ -32,7 +32,9 @@ if (CCACHE_FOUND AND NOT COMPILER_MATCHES_CCACHE)
|
||||
if (CCACHE_VERSION VERSION_GREATER "3.2.0" OR NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
message(STATUS "Using ${CCACHE_FOUND} ${CCACHE_VERSION}")
|
||||
|
||||
set_property (GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_FOUND})
|
||||
set (CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_FOUND} ${CMAKE_CXX_COMPILER_LAUNCHER})
|
||||
set (CMAKE_C_COMPILER_LAUNCHER ${CCACHE_FOUND} ${CMAKE_C_COMPILER_LAUNCHER})
|
||||
|
||||
set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_FOUND})
|
||||
|
||||
# debian (debhelpers) set SOURCE_DATE_EPOCH environment variable, that is
|
||||
|
@ -64,7 +64,8 @@ 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 "ppc64le" ) OR
|
||||
( "${_system_name}" STREQUAL "freebsd" AND "${_system_processor}" STREQUAL "x86_64" ) OR
|
||||
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "x86_64" )
|
||||
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "x86_64" ) OR
|
||||
( "${_system_name}" STREQUAL "darwin" AND "${_system_processor}" STREQUAL "aarch64" )
|
||||
)
|
||||
set (_ldap_supported_platform TRUE)
|
||||
endif ()
|
||||
|
22
cmake/find/libuv.cmake
Normal file
22
cmake/find/libuv.cmake
Normal file
@ -0,0 +1,22 @@
|
||||
if (OS_DARWIN AND COMPILER_GCC)
|
||||
message (WARNING "libuv cannot be built with GCC in macOS due to a bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93082")
|
||||
SET(MISSING_INTERNAL_LIBUV_LIBRARY 1)
|
||||
return()
|
||||
endif()
|
||||
|
||||
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")
|
||||
SET(MISSING_INTERNAL_LIBUV_LIBRARY 1)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (MAKE_STATIC_LIBRARIES)
|
||||
set (LIBUV_LIBRARY uv_a)
|
||||
else()
|
||||
set (LIBUV_LIBRARY uv)
|
||||
endif()
|
||||
|
||||
set (LIBUV_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/libuv")
|
||||
set (LIBUV_INCLUDE_DIR "${LIBUV_ROOT_DIR}/include")
|
||||
|
||||
message (STATUS "Using libuv: ${LIBUV_ROOT_DIR} : ${LIBUV_LIBRARY}")
|
@ -2,7 +2,7 @@ if (APPLE OR SPLIT_SHARED_LIBRARIES OR NOT ARCH_AMD64)
|
||||
set (ENABLE_EMBEDDED_COMPILER OFF CACHE INTERNAL "")
|
||||
endif()
|
||||
|
||||
option (ENABLE_EMBEDDED_COMPILER "Set to TRUE to enable support for 'compile_expressions' option for query execution" ${ENABLE_LIBRARIES})
|
||||
option (ENABLE_EMBEDDED_COMPILER "Enable support for 'compile_expressions' option for query execution" ON)
|
||||
# Broken in macos. TODO: update clang, re-test, enable on Apple
|
||||
if (ENABLE_EMBEDDED_COMPILER AND NOT SPLIT_SHARED_LIBRARIES AND ARCH_AMD64 AND NOT (SANITIZE STREQUAL "undefined"))
|
||||
option (USE_INTERNAL_LLVM_LIBRARY "Use bundled or system LLVM library." ${NOT_UNBUNDLED})
|
||||
@ -24,9 +24,9 @@ if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/llvm/llvm/CMakeLists.txt")
|
||||
endif ()
|
||||
|
||||
if (NOT USE_INTERNAL_LLVM_LIBRARY)
|
||||
set (LLVM_PATHS "/usr/local/lib/llvm")
|
||||
set (LLVM_PATHS "/usr/local/lib/llvm" "/usr/lib/llvm")
|
||||
|
||||
foreach(llvm_v 10 9 8)
|
||||
foreach(llvm_v 11.1 11)
|
||||
if (NOT LLVM_FOUND)
|
||||
find_package (LLVM ${llvm_v} CONFIG PATHS ${LLVM_PATHS})
|
||||
endif ()
|
||||
@ -102,7 +102,6 @@ LLVMRuntimeDyld
|
||||
LLVMX86CodeGen
|
||||
LLVMX86Desc
|
||||
LLVMX86Info
|
||||
LLVMX86Utils
|
||||
LLVMAsmPrinter
|
||||
LLVMDebugInfoDWARF
|
||||
LLVMGlobalISel
|
||||
|
16
cmake/find/nanodbc.cmake
Normal file
16
cmake/find/nanodbc.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
if (NOT ENABLE_ODBC)
|
||||
return ()
|
||||
endif ()
|
||||
|
||||
if (NOT USE_INTERNAL_NANODBC_LIBRARY)
|
||||
message (FATAL_ERROR "Only the bundled nanodbc library can be used")
|
||||
endif ()
|
||||
|
||||
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")
|
||||
endif()
|
||||
|
||||
set (NANODBC_LIBRARY nanodbc)
|
||||
set (NANODBC_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/nanodbc/nanodbc")
|
||||
|
||||
message (STATUS "Using nanodbc: ${NANODBC_INCLUDE_DIR} : ${NANODBC_LIBRARY}")
|
@ -11,7 +11,7 @@ if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/NuRaft/CMakeLists.txt")
|
||||
return()
|
||||
endif ()
|
||||
|
||||
if (NOT OS_FREEBSD AND NOT OS_DARWIN)
|
||||
if (NOT OS_FREEBSD)
|
||||
set (USE_NURAFT 1)
|
||||
set (NURAFT_LIBRARY nuraft)
|
||||
|
||||
|
@ -50,4 +50,6 @@ if (NOT EXTERNAL_ODBC_LIBRARY_FOUND)
|
||||
set (USE_INTERNAL_ODBC_LIBRARY 1)
|
||||
endif ()
|
||||
|
||||
set (USE_INTERNAL_NANODBC_LIBRARY 1)
|
||||
|
||||
message (STATUS "Using unixodbc")
|
||||
|
@ -1,3 +1,7 @@
|
||||
if (OS_DARWIN AND ARCH_AARCH64)
|
||||
set (ENABLE_ROCKSDB OFF CACHE INTERNAL "")
|
||||
endif()
|
||||
|
||||
option(ENABLE_ROCKSDB "Enable ROCKSDB" ${ENABLE_LIBRARIES})
|
||||
|
||||
if (NOT ENABLE_ROCKSDB)
|
||||
|
@ -40,7 +40,7 @@ if (SANITIZE)
|
||||
# RelWithDebInfo, and downgrade optimizations to -O1 but not to -Og, to
|
||||
# keep the binary size down.
|
||||
# TODO: try compiling with -Og and with ld.gold.
|
||||
set (MSAN_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins -fno-optimize-sibling-calls -fsanitize-blacklist=${CMAKE_SOURCE_DIR}/tests/msan_suppressions.txt")
|
||||
set (MSAN_FLAGS "-fsanitize=memory -fsanitize-memory-use-after-dtor -fsanitize-memory-track-origins -fno-optimize-sibling-calls -fsanitize-blacklist=${CMAKE_SOURCE_DIR}/tests/msan_suppressions.txt")
|
||||
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SAN_FLAGS} ${MSAN_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAN_FLAGS} ${MSAN_FLAGS}")
|
||||
|
@ -12,6 +12,9 @@ elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
set (OS_DARWIN 1)
|
||||
add_definitions(-D OS_DARWIN)
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
||||
set (OS_SUNOS 1)
|
||||
add_definitions(-D OS_SUNOS)
|
||||
endif ()
|
||||
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
|
@ -8,10 +8,13 @@ endif ()
|
||||
|
||||
if (COMPILER_GCC)
|
||||
# Require minimum version of gcc
|
||||
set (GCC_MINIMUM_VERSION 9)
|
||||
set (GCC_MINIMUM_VERSION 10)
|
||||
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.")
|
||||
endif ()
|
||||
|
||||
message (WARNING "GCC compiler is not officially supported for ClickHouse. You should migrate to clang.")
|
||||
|
||||
elseif (COMPILER_CLANG)
|
||||
# Require minimum version of clang/apple-clang
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
|
||||
|
@ -171,6 +171,7 @@ elseif (COMPILER_GCC)
|
||||
add_cxx_compile_options(-Wtrampolines)
|
||||
# Obvious
|
||||
add_cxx_compile_options(-Wunused)
|
||||
add_cxx_compile_options(-Wundef)
|
||||
# Warn if vector operation is not implemented via SIMD capabilities of the architecture
|
||||
add_cxx_compile_options(-Wvector-operation-performance)
|
||||
# XXX: libstdc++ has some of these for 3way compare
|
||||
|
19
contrib/CMakeLists.txt
vendored
19
contrib/CMakeLists.txt
vendored
@ -1,4 +1,3 @@
|
||||
# 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
|
||||
@ -11,8 +10,10 @@ else ()
|
||||
endif ()
|
||||
unset (_current_dir_name)
|
||||
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
|
||||
# Third-party libraries may have substandard code.
|
||||
# Also remove a possible source of nondeterminism.
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w -D__DATE__= -D__TIME__= -D__TIMESTAMP__=")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -D__DATE__= -D__TIME__= -D__TIMESTAMP__=")
|
||||
|
||||
if (WITH_COVERAGE)
|
||||
set (WITHOUT_COVERAGE_LIST ${WITHOUT_COVERAGE})
|
||||
@ -47,7 +48,11 @@ add_subdirectory (lz4-cmake)
|
||||
add_subdirectory (murmurhash)
|
||||
add_subdirectory (replxx-cmake)
|
||||
add_subdirectory (unixodbc-cmake)
|
||||
add_subdirectory (xz)
|
||||
add_subdirectory (nanodbc-cmake)
|
||||
|
||||
if (USE_INTERNAL_XZ_LIBRARY)
|
||||
add_subdirectory (xz)
|
||||
endif()
|
||||
|
||||
add_subdirectory (poco-cmake)
|
||||
add_subdirectory (croaring-cmake)
|
||||
@ -93,14 +98,8 @@ if (USE_INTERNAL_ZLIB_LIBRARY)
|
||||
add_subdirectory (${INTERNAL_ZLIB_NAME})
|
||||
# We should use same defines when including zlib.h as used when zlib compiled
|
||||
target_compile_definitions (zlib PUBLIC ZLIB_COMPAT WITH_GZFILEOP)
|
||||
if (TARGET zlibstatic)
|
||||
target_compile_definitions (zlibstatic PUBLIC ZLIB_COMPAT WITH_GZFILEOP)
|
||||
endif ()
|
||||
if (ARCH_AMD64 OR ARCH_AARCH64)
|
||||
target_compile_definitions (zlib PUBLIC X86_64 UNALIGNED_OK)
|
||||
if (TARGET zlibstatic)
|
||||
target_compile_definitions (zlibstatic PUBLIC X86_64 UNALIGNED_OK)
|
||||
endif ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
2
contrib/NuRaft
vendored
2
contrib/NuRaft
vendored
@ -1 +1 @@
|
||||
Subproject commit 241fd3754a1eb4d82ab68a9a875dc99391ec9f02
|
||||
Subproject commit 95d6bbba579b3a4e4c2dede954f541ff6f3dba51
|
@ -1,25 +1,25 @@
|
||||
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP)
|
||||
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP")
|
||||
|
||||
set (SRCS
|
||||
${LIBRARY_DIR}/src/array.cpp
|
||||
${LIBRARY_DIR}/src/channel.cpp
|
||||
${LIBRARY_DIR}/src/channelimpl.cpp
|
||||
${LIBRARY_DIR}/src/connectionimpl.cpp
|
||||
${LIBRARY_DIR}/src/deferredcancel.cpp
|
||||
${LIBRARY_DIR}/src/deferredconfirm.cpp
|
||||
${LIBRARY_DIR}/src/deferredconsumer.cpp
|
||||
${LIBRARY_DIR}/src/deferredextreceiver.cpp
|
||||
${LIBRARY_DIR}/src/deferredget.cpp
|
||||
${LIBRARY_DIR}/src/deferredpublisher.cpp
|
||||
${LIBRARY_DIR}/src/deferredreceiver.cpp
|
||||
${LIBRARY_DIR}/src/field.cpp
|
||||
${LIBRARY_DIR}/src/flags.cpp
|
||||
${LIBRARY_DIR}/src/linux_tcp/openssl.cpp
|
||||
${LIBRARY_DIR}/src/linux_tcp/tcpconnection.cpp
|
||||
${LIBRARY_DIR}/src/inbuffer.cpp
|
||||
${LIBRARY_DIR}/src/receivedframe.cpp
|
||||
${LIBRARY_DIR}/src/table.cpp
|
||||
${LIBRARY_DIR}/src/watchable.cpp
|
||||
"${LIBRARY_DIR}/src/array.cpp"
|
||||
"${LIBRARY_DIR}/src/channel.cpp"
|
||||
"${LIBRARY_DIR}/src/channelimpl.cpp"
|
||||
"${LIBRARY_DIR}/src/connectionimpl.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredcancel.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredconfirm.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredconsumer.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredextreceiver.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredget.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredpublisher.cpp"
|
||||
"${LIBRARY_DIR}/src/deferredreceiver.cpp"
|
||||
"${LIBRARY_DIR}/src/field.cpp"
|
||||
"${LIBRARY_DIR}/src/flags.cpp"
|
||||
"${LIBRARY_DIR}/src/linux_tcp/openssl.cpp"
|
||||
"${LIBRARY_DIR}/src/linux_tcp/tcpconnection.cpp"
|
||||
"${LIBRARY_DIR}/src/inbuffer.cpp"
|
||||
"${LIBRARY_DIR}/src/receivedframe.cpp"
|
||||
"${LIBRARY_DIR}/src/table.cpp"
|
||||
"${LIBRARY_DIR}/src/watchable.cpp"
|
||||
)
|
||||
|
||||
add_library(amqp-cpp ${SRCS})
|
||||
@ -39,7 +39,7 @@ target_compile_options (amqp-cpp
|
||||
-w
|
||||
)
|
||||
|
||||
target_include_directories (amqp-cpp SYSTEM PUBLIC ${LIBRARY_DIR}/include)
|
||||
target_include_directories (amqp-cpp SYSTEM PUBLIC "${LIBRARY_DIR}/include")
|
||||
|
||||
target_link_libraries (amqp-cpp PUBLIC ssl)
|
||||
|
||||
|
2
contrib/antlr4-runtime
vendored
2
contrib/antlr4-runtime
vendored
@ -1 +1 @@
|
||||
Subproject commit a2fa7b76e2ee16d2ad955e9214a90bbf79da66fc
|
||||
Subproject commit 672643e9a427ef803abf13bc8cb4989606553d64
|
@ -1,154 +1,154 @@
|
||||
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/antlr4-runtime)
|
||||
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/antlr4-runtime")
|
||||
|
||||
set (SRCS
|
||||
${LIBRARY_DIR}/ANTLRErrorListener.cpp
|
||||
${LIBRARY_DIR}/ANTLRErrorStrategy.cpp
|
||||
${LIBRARY_DIR}/ANTLRFileStream.cpp
|
||||
${LIBRARY_DIR}/ANTLRInputStream.cpp
|
||||
${LIBRARY_DIR}/atn/AbstractPredicateTransition.cpp
|
||||
${LIBRARY_DIR}/atn/ActionTransition.cpp
|
||||
${LIBRARY_DIR}/atn/AmbiguityInfo.cpp
|
||||
${LIBRARY_DIR}/atn/ArrayPredictionContext.cpp
|
||||
${LIBRARY_DIR}/atn/ATN.cpp
|
||||
${LIBRARY_DIR}/atn/ATNConfig.cpp
|
||||
${LIBRARY_DIR}/atn/ATNConfigSet.cpp
|
||||
${LIBRARY_DIR}/atn/ATNDeserializationOptions.cpp
|
||||
${LIBRARY_DIR}/atn/ATNDeserializer.cpp
|
||||
${LIBRARY_DIR}/atn/ATNSerializer.cpp
|
||||
${LIBRARY_DIR}/atn/ATNSimulator.cpp
|
||||
${LIBRARY_DIR}/atn/ATNState.cpp
|
||||
${LIBRARY_DIR}/atn/AtomTransition.cpp
|
||||
${LIBRARY_DIR}/atn/BasicBlockStartState.cpp
|
||||
${LIBRARY_DIR}/atn/BasicState.cpp
|
||||
${LIBRARY_DIR}/atn/BlockEndState.cpp
|
||||
${LIBRARY_DIR}/atn/BlockStartState.cpp
|
||||
${LIBRARY_DIR}/atn/ContextSensitivityInfo.cpp
|
||||
${LIBRARY_DIR}/atn/DecisionEventInfo.cpp
|
||||
${LIBRARY_DIR}/atn/DecisionInfo.cpp
|
||||
${LIBRARY_DIR}/atn/DecisionState.cpp
|
||||
${LIBRARY_DIR}/atn/EmptyPredictionContext.cpp
|
||||
${LIBRARY_DIR}/atn/EpsilonTransition.cpp
|
||||
${LIBRARY_DIR}/atn/ErrorInfo.cpp
|
||||
${LIBRARY_DIR}/atn/LexerAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerActionExecutor.cpp
|
||||
${LIBRARY_DIR}/atn/LexerATNConfig.cpp
|
||||
${LIBRARY_DIR}/atn/LexerATNSimulator.cpp
|
||||
${LIBRARY_DIR}/atn/LexerChannelAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerCustomAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerIndexedCustomAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerModeAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerMoreAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerPopModeAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerPushModeAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerSkipAction.cpp
|
||||
${LIBRARY_DIR}/atn/LexerTypeAction.cpp
|
||||
${LIBRARY_DIR}/atn/LL1Analyzer.cpp
|
||||
${LIBRARY_DIR}/atn/LookaheadEventInfo.cpp
|
||||
${LIBRARY_DIR}/atn/LoopEndState.cpp
|
||||
${LIBRARY_DIR}/atn/NotSetTransition.cpp
|
||||
${LIBRARY_DIR}/atn/OrderedATNConfigSet.cpp
|
||||
${LIBRARY_DIR}/atn/ParseInfo.cpp
|
||||
${LIBRARY_DIR}/atn/ParserATNSimulator.cpp
|
||||
${LIBRARY_DIR}/atn/PlusBlockStartState.cpp
|
||||
${LIBRARY_DIR}/atn/PlusLoopbackState.cpp
|
||||
${LIBRARY_DIR}/atn/PrecedencePredicateTransition.cpp
|
||||
${LIBRARY_DIR}/atn/PredicateEvalInfo.cpp
|
||||
${LIBRARY_DIR}/atn/PredicateTransition.cpp
|
||||
${LIBRARY_DIR}/atn/PredictionContext.cpp
|
||||
${LIBRARY_DIR}/atn/PredictionMode.cpp
|
||||
${LIBRARY_DIR}/atn/ProfilingATNSimulator.cpp
|
||||
${LIBRARY_DIR}/atn/RangeTransition.cpp
|
||||
${LIBRARY_DIR}/atn/RuleStartState.cpp
|
||||
${LIBRARY_DIR}/atn/RuleStopState.cpp
|
||||
${LIBRARY_DIR}/atn/RuleTransition.cpp
|
||||
${LIBRARY_DIR}/atn/SemanticContext.cpp
|
||||
${LIBRARY_DIR}/atn/SetTransition.cpp
|
||||
${LIBRARY_DIR}/atn/SingletonPredictionContext.cpp
|
||||
${LIBRARY_DIR}/atn/StarBlockStartState.cpp
|
||||
${LIBRARY_DIR}/atn/StarLoopbackState.cpp
|
||||
${LIBRARY_DIR}/atn/StarLoopEntryState.cpp
|
||||
${LIBRARY_DIR}/atn/TokensStartState.cpp
|
||||
${LIBRARY_DIR}/atn/Transition.cpp
|
||||
${LIBRARY_DIR}/atn/WildcardTransition.cpp
|
||||
${LIBRARY_DIR}/BailErrorStrategy.cpp
|
||||
${LIBRARY_DIR}/BaseErrorListener.cpp
|
||||
${LIBRARY_DIR}/BufferedTokenStream.cpp
|
||||
${LIBRARY_DIR}/CharStream.cpp
|
||||
${LIBRARY_DIR}/CommonToken.cpp
|
||||
${LIBRARY_DIR}/CommonTokenFactory.cpp
|
||||
${LIBRARY_DIR}/CommonTokenStream.cpp
|
||||
${LIBRARY_DIR}/ConsoleErrorListener.cpp
|
||||
${LIBRARY_DIR}/DefaultErrorStrategy.cpp
|
||||
${LIBRARY_DIR}/dfa/DFA.cpp
|
||||
${LIBRARY_DIR}/dfa/DFASerializer.cpp
|
||||
${LIBRARY_DIR}/dfa/DFAState.cpp
|
||||
${LIBRARY_DIR}/dfa/LexerDFASerializer.cpp
|
||||
${LIBRARY_DIR}/DiagnosticErrorListener.cpp
|
||||
${LIBRARY_DIR}/Exceptions.cpp
|
||||
${LIBRARY_DIR}/FailedPredicateException.cpp
|
||||
${LIBRARY_DIR}/InputMismatchException.cpp
|
||||
${LIBRARY_DIR}/InterpreterRuleContext.cpp
|
||||
${LIBRARY_DIR}/IntStream.cpp
|
||||
${LIBRARY_DIR}/Lexer.cpp
|
||||
${LIBRARY_DIR}/LexerInterpreter.cpp
|
||||
${LIBRARY_DIR}/LexerNoViableAltException.cpp
|
||||
${LIBRARY_DIR}/ListTokenSource.cpp
|
||||
${LIBRARY_DIR}/misc/InterpreterDataReader.cpp
|
||||
${LIBRARY_DIR}/misc/Interval.cpp
|
||||
${LIBRARY_DIR}/misc/IntervalSet.cpp
|
||||
${LIBRARY_DIR}/misc/MurmurHash.cpp
|
||||
${LIBRARY_DIR}/misc/Predicate.cpp
|
||||
${LIBRARY_DIR}/NoViableAltException.cpp
|
||||
${LIBRARY_DIR}/Parser.cpp
|
||||
${LIBRARY_DIR}/ParserInterpreter.cpp
|
||||
${LIBRARY_DIR}/ParserRuleContext.cpp
|
||||
${LIBRARY_DIR}/ProxyErrorListener.cpp
|
||||
${LIBRARY_DIR}/RecognitionException.cpp
|
||||
${LIBRARY_DIR}/Recognizer.cpp
|
||||
${LIBRARY_DIR}/RuleContext.cpp
|
||||
${LIBRARY_DIR}/RuleContextWithAltNum.cpp
|
||||
${LIBRARY_DIR}/RuntimeMetaData.cpp
|
||||
${LIBRARY_DIR}/support/Any.cpp
|
||||
${LIBRARY_DIR}/support/Arrays.cpp
|
||||
${LIBRARY_DIR}/support/CPPUtils.cpp
|
||||
${LIBRARY_DIR}/support/guid.cpp
|
||||
${LIBRARY_DIR}/support/StringUtils.cpp
|
||||
${LIBRARY_DIR}/Token.cpp
|
||||
${LIBRARY_DIR}/TokenSource.cpp
|
||||
${LIBRARY_DIR}/TokenStream.cpp
|
||||
${LIBRARY_DIR}/TokenStreamRewriter.cpp
|
||||
${LIBRARY_DIR}/tree/ErrorNode.cpp
|
||||
${LIBRARY_DIR}/tree/ErrorNodeImpl.cpp
|
||||
${LIBRARY_DIR}/tree/IterativeParseTreeWalker.cpp
|
||||
${LIBRARY_DIR}/tree/ParseTree.cpp
|
||||
${LIBRARY_DIR}/tree/ParseTreeListener.cpp
|
||||
${LIBRARY_DIR}/tree/ParseTreeVisitor.cpp
|
||||
${LIBRARY_DIR}/tree/ParseTreeWalker.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/Chunk.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/ParseTreeMatch.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/ParseTreePattern.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/ParseTreePatternMatcher.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/RuleTagToken.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/TagChunk.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/TextChunk.cpp
|
||||
${LIBRARY_DIR}/tree/pattern/TokenTagToken.cpp
|
||||
${LIBRARY_DIR}/tree/TerminalNode.cpp
|
||||
${LIBRARY_DIR}/tree/TerminalNodeImpl.cpp
|
||||
${LIBRARY_DIR}/tree/Trees.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPath.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathElement.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathLexer.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathLexerErrorListener.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathRuleAnywhereElement.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathRuleElement.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathTokenAnywhereElement.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathTokenElement.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathWildcardAnywhereElement.cpp
|
||||
${LIBRARY_DIR}/tree/xpath/XPathWildcardElement.cpp
|
||||
${LIBRARY_DIR}/UnbufferedCharStream.cpp
|
||||
${LIBRARY_DIR}/UnbufferedTokenStream.cpp
|
||||
${LIBRARY_DIR}/Vocabulary.cpp
|
||||
${LIBRARY_DIR}/WritableToken.cpp
|
||||
"${LIBRARY_DIR}/ANTLRErrorListener.cpp"
|
||||
"${LIBRARY_DIR}/ANTLRErrorStrategy.cpp"
|
||||
"${LIBRARY_DIR}/ANTLRFileStream.cpp"
|
||||
"${LIBRARY_DIR}/ANTLRInputStream.cpp"
|
||||
"${LIBRARY_DIR}/atn/AbstractPredicateTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/ActionTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/AmbiguityInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/ArrayPredictionContext.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATN.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNConfig.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNConfigSet.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNDeserializationOptions.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNDeserializer.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNSerializer.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNSimulator.cpp"
|
||||
"${LIBRARY_DIR}/atn/ATNState.cpp"
|
||||
"${LIBRARY_DIR}/atn/AtomTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/BasicBlockStartState.cpp"
|
||||
"${LIBRARY_DIR}/atn/BasicState.cpp"
|
||||
"${LIBRARY_DIR}/atn/BlockEndState.cpp"
|
||||
"${LIBRARY_DIR}/atn/BlockStartState.cpp"
|
||||
"${LIBRARY_DIR}/atn/ContextSensitivityInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/DecisionEventInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/DecisionInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/DecisionState.cpp"
|
||||
"${LIBRARY_DIR}/atn/EmptyPredictionContext.cpp"
|
||||
"${LIBRARY_DIR}/atn/EpsilonTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/ErrorInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerActionExecutor.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerATNConfig.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerATNSimulator.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerChannelAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerCustomAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerIndexedCustomAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerModeAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerMoreAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerPopModeAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerPushModeAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerSkipAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LexerTypeAction.cpp"
|
||||
"${LIBRARY_DIR}/atn/LL1Analyzer.cpp"
|
||||
"${LIBRARY_DIR}/atn/LookaheadEventInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/LoopEndState.cpp"
|
||||
"${LIBRARY_DIR}/atn/NotSetTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/OrderedATNConfigSet.cpp"
|
||||
"${LIBRARY_DIR}/atn/ParseInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/ParserATNSimulator.cpp"
|
||||
"${LIBRARY_DIR}/atn/PlusBlockStartState.cpp"
|
||||
"${LIBRARY_DIR}/atn/PlusLoopbackState.cpp"
|
||||
"${LIBRARY_DIR}/atn/PrecedencePredicateTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/PredicateEvalInfo.cpp"
|
||||
"${LIBRARY_DIR}/atn/PredicateTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/PredictionContext.cpp"
|
||||
"${LIBRARY_DIR}/atn/PredictionMode.cpp"
|
||||
"${LIBRARY_DIR}/atn/ProfilingATNSimulator.cpp"
|
||||
"${LIBRARY_DIR}/atn/RangeTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/RuleStartState.cpp"
|
||||
"${LIBRARY_DIR}/atn/RuleStopState.cpp"
|
||||
"${LIBRARY_DIR}/atn/RuleTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/SemanticContext.cpp"
|
||||
"${LIBRARY_DIR}/atn/SetTransition.cpp"
|
||||
"${LIBRARY_DIR}/atn/SingletonPredictionContext.cpp"
|
||||
"${LIBRARY_DIR}/atn/StarBlockStartState.cpp"
|
||||
"${LIBRARY_DIR}/atn/StarLoopbackState.cpp"
|
||||
"${LIBRARY_DIR}/atn/StarLoopEntryState.cpp"
|
||||
"${LIBRARY_DIR}/atn/TokensStartState.cpp"
|
||||
"${LIBRARY_DIR}/atn/Transition.cpp"
|
||||
"${LIBRARY_DIR}/atn/WildcardTransition.cpp"
|
||||
"${LIBRARY_DIR}/BailErrorStrategy.cpp"
|
||||
"${LIBRARY_DIR}/BaseErrorListener.cpp"
|
||||
"${LIBRARY_DIR}/BufferedTokenStream.cpp"
|
||||
"${LIBRARY_DIR}/CharStream.cpp"
|
||||
"${LIBRARY_DIR}/CommonToken.cpp"
|
||||
"${LIBRARY_DIR}/CommonTokenFactory.cpp"
|
||||
"${LIBRARY_DIR}/CommonTokenStream.cpp"
|
||||
"${LIBRARY_DIR}/ConsoleErrorListener.cpp"
|
||||
"${LIBRARY_DIR}/DefaultErrorStrategy.cpp"
|
||||
"${LIBRARY_DIR}/dfa/DFA.cpp"
|
||||
"${LIBRARY_DIR}/dfa/DFASerializer.cpp"
|
||||
"${LIBRARY_DIR}/dfa/DFAState.cpp"
|
||||
"${LIBRARY_DIR}/dfa/LexerDFASerializer.cpp"
|
||||
"${LIBRARY_DIR}/DiagnosticErrorListener.cpp"
|
||||
"${LIBRARY_DIR}/Exceptions.cpp"
|
||||
"${LIBRARY_DIR}/FailedPredicateException.cpp"
|
||||
"${LIBRARY_DIR}/InputMismatchException.cpp"
|
||||
"${LIBRARY_DIR}/InterpreterRuleContext.cpp"
|
||||
"${LIBRARY_DIR}/IntStream.cpp"
|
||||
"${LIBRARY_DIR}/Lexer.cpp"
|
||||
"${LIBRARY_DIR}/LexerInterpreter.cpp"
|
||||
"${LIBRARY_DIR}/LexerNoViableAltException.cpp"
|
||||
"${LIBRARY_DIR}/ListTokenSource.cpp"
|
||||
"${LIBRARY_DIR}/misc/InterpreterDataReader.cpp"
|
||||
"${LIBRARY_DIR}/misc/Interval.cpp"
|
||||
"${LIBRARY_DIR}/misc/IntervalSet.cpp"
|
||||
"${LIBRARY_DIR}/misc/MurmurHash.cpp"
|
||||
"${LIBRARY_DIR}/misc/Predicate.cpp"
|
||||
"${LIBRARY_DIR}/NoViableAltException.cpp"
|
||||
"${LIBRARY_DIR}/Parser.cpp"
|
||||
"${LIBRARY_DIR}/ParserInterpreter.cpp"
|
||||
"${LIBRARY_DIR}/ParserRuleContext.cpp"
|
||||
"${LIBRARY_DIR}/ProxyErrorListener.cpp"
|
||||
"${LIBRARY_DIR}/RecognitionException.cpp"
|
||||
"${LIBRARY_DIR}/Recognizer.cpp"
|
||||
"${LIBRARY_DIR}/RuleContext.cpp"
|
||||
"${LIBRARY_DIR}/RuleContextWithAltNum.cpp"
|
||||
"${LIBRARY_DIR}/RuntimeMetaData.cpp"
|
||||
"${LIBRARY_DIR}/support/Any.cpp"
|
||||
"${LIBRARY_DIR}/support/Arrays.cpp"
|
||||
"${LIBRARY_DIR}/support/CPPUtils.cpp"
|
||||
"${LIBRARY_DIR}/support/guid.cpp"
|
||||
"${LIBRARY_DIR}/support/StringUtils.cpp"
|
||||
"${LIBRARY_DIR}/Token.cpp"
|
||||
"${LIBRARY_DIR}/TokenSource.cpp"
|
||||
"${LIBRARY_DIR}/TokenStream.cpp"
|
||||
"${LIBRARY_DIR}/TokenStreamRewriter.cpp"
|
||||
"${LIBRARY_DIR}/tree/ErrorNode.cpp"
|
||||
"${LIBRARY_DIR}/tree/ErrorNodeImpl.cpp"
|
||||
"${LIBRARY_DIR}/tree/IterativeParseTreeWalker.cpp"
|
||||
"${LIBRARY_DIR}/tree/ParseTree.cpp"
|
||||
"${LIBRARY_DIR}/tree/ParseTreeListener.cpp"
|
||||
"${LIBRARY_DIR}/tree/ParseTreeVisitor.cpp"
|
||||
"${LIBRARY_DIR}/tree/ParseTreeWalker.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/Chunk.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/ParseTreeMatch.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/ParseTreePattern.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/ParseTreePatternMatcher.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/RuleTagToken.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/TagChunk.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/TextChunk.cpp"
|
||||
"${LIBRARY_DIR}/tree/pattern/TokenTagToken.cpp"
|
||||
"${LIBRARY_DIR}/tree/TerminalNode.cpp"
|
||||
"${LIBRARY_DIR}/tree/TerminalNodeImpl.cpp"
|
||||
"${LIBRARY_DIR}/tree/Trees.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPath.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathElement.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathLexer.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathLexerErrorListener.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathRuleAnywhereElement.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathRuleElement.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathTokenAnywhereElement.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathTokenElement.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathWildcardAnywhereElement.cpp"
|
||||
"${LIBRARY_DIR}/tree/xpath/XPathWildcardElement.cpp"
|
||||
"${LIBRARY_DIR}/UnbufferedCharStream.cpp"
|
||||
"${LIBRARY_DIR}/UnbufferedTokenStream.cpp"
|
||||
"${LIBRARY_DIR}/Vocabulary.cpp"
|
||||
"${LIBRARY_DIR}/WritableToken.cpp"
|
||||
)
|
||||
|
||||
add_library (antlr4-runtime ${SRCS})
|
||||
|
@ -2,69 +2,69 @@ set (CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# === thrift
|
||||
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/thrift/lib/cpp)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/thrift/lib/cpp")
|
||||
# contrib/thrift/lib/cpp/CMakeLists.txt
|
||||
set(thriftcpp_SOURCES
|
||||
${LIBRARY_DIR}/src/thrift/TApplicationException.cpp
|
||||
${LIBRARY_DIR}/src/thrift/TOutput.cpp
|
||||
${LIBRARY_DIR}/src/thrift/async/TAsyncChannel.cpp
|
||||
${LIBRARY_DIR}/src/thrift/async/TAsyncProtocolProcessor.cpp
|
||||
${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.h
|
||||
${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.cpp
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/ThreadManager.cpp
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/TimerManager.cpp
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/Util.cpp
|
||||
${LIBRARY_DIR}/src/thrift/processor/PeekProcessor.cpp
|
||||
${LIBRARY_DIR}/src/thrift/protocol/TBase64Utils.cpp
|
||||
${LIBRARY_DIR}/src/thrift/protocol/TDebugProtocol.cpp
|
||||
${LIBRARY_DIR}/src/thrift/protocol/TJSONProtocol.cpp
|
||||
${LIBRARY_DIR}/src/thrift/protocol/TMultiplexedProtocol.cpp
|
||||
${LIBRARY_DIR}/src/thrift/protocol/TProtocol.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TTransportException.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TFDTransport.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TSimpleFileTransport.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/THttpTransport.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/THttpClient.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/THttpServer.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TSocket.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TSocketPool.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TServerSocket.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TTransportUtils.cpp
|
||||
${LIBRARY_DIR}/src/thrift/transport/TBufferTransports.cpp
|
||||
${LIBRARY_DIR}/src/thrift/server/TConnectedClient.cpp
|
||||
${LIBRARY_DIR}/src/thrift/server/TServerFramework.cpp
|
||||
${LIBRARY_DIR}/src/thrift/server/TSimpleServer.cpp
|
||||
${LIBRARY_DIR}/src/thrift/server/TThreadPoolServer.cpp
|
||||
${LIBRARY_DIR}/src/thrift/server/TThreadedServer.cpp
|
||||
"${LIBRARY_DIR}/src/thrift/TApplicationException.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/TOutput.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/async/TAsyncChannel.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/async/TAsyncProtocolProcessor.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.h"
|
||||
"${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/ThreadManager.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/TimerManager.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/Util.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/processor/PeekProcessor.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/protocol/TBase64Utils.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/protocol/TDebugProtocol.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/protocol/TJSONProtocol.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/protocol/TMultiplexedProtocol.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/protocol/TProtocol.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TTransportException.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TFDTransport.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TSimpleFileTransport.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/THttpTransport.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/THttpClient.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/THttpServer.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TSocket.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TSocketPool.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TServerSocket.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TTransportUtils.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/transport/TBufferTransports.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/server/TConnectedClient.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/server/TServerFramework.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/server/TSimpleServer.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/server/TThreadPoolServer.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/server/TThreadedServer.cpp"
|
||||
)
|
||||
set(thriftcpp_threads_SOURCES
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/ThreadFactory.cpp
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/Thread.cpp
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/Monitor.cpp
|
||||
${LIBRARY_DIR}/src/thrift/concurrency/Mutex.cpp
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/ThreadFactory.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/Thread.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/Monitor.cpp"
|
||||
"${LIBRARY_DIR}/src/thrift/concurrency/Mutex.cpp"
|
||||
)
|
||||
add_library(${THRIFT_LIBRARY} ${thriftcpp_SOURCES} ${thriftcpp_threads_SOURCES})
|
||||
set_target_properties(${THRIFT_LIBRARY} PROPERTIES CXX_STANDARD 14) # REMOVE after https://github.com/apache/thrift/pull/1641
|
||||
target_include_directories(${THRIFT_LIBRARY} SYSTEM PUBLIC ${ClickHouse_SOURCE_DIR}/contrib/thrift/lib/cpp/src)
|
||||
target_include_directories(${THRIFT_LIBRARY} SYSTEM PUBLIC "${ClickHouse_SOURCE_DIR}/contrib/thrift/lib/cpp/src")
|
||||
target_link_libraries (${THRIFT_LIBRARY} PRIVATE boost::headers_only)
|
||||
|
||||
|
||||
# === orc
|
||||
|
||||
set(ORC_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/orc/c++)
|
||||
set(ORC_INCLUDE_DIR ${ORC_SOURCE_DIR}/include)
|
||||
set(ORC_SOURCE_SRC_DIR ${ORC_SOURCE_DIR}/src)
|
||||
set(ORC_SOURCE_WRAP_DIR ${ORC_SOURCE_DIR}/wrap)
|
||||
set(ORC_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/orc/c++")
|
||||
set(ORC_INCLUDE_DIR "${ORC_SOURCE_DIR}/include")
|
||||
set(ORC_SOURCE_SRC_DIR "${ORC_SOURCE_DIR}/src")
|
||||
set(ORC_SOURCE_WRAP_DIR "${ORC_SOURCE_DIR}/wrap")
|
||||
|
||||
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_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/src")
|
||||
set(ORC_BUILD_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/include")
|
||||
|
||||
set(GOOGLE_PROTOBUF_DIR ${Protobuf_INCLUDE_DIR}/)
|
||||
set(GOOGLE_PROTOBUF_DIR "${Protobuf_INCLUDE_DIR}/")
|
||||
set(ORC_ADDITION_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set(ARROW_SRC_DIR ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src)
|
||||
set(ARROW_SRC_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src")
|
||||
|
||||
set(PROTOBUF_EXECUTABLE ${Protobuf_PROTOC_EXECUTABLE})
|
||||
set(PROTO_DIR ${ORC_SOURCE_DIR}/../proto)
|
||||
set(PROTO_DIR "${ORC_SOURCE_DIR}/../proto")
|
||||
|
||||
|
||||
add_custom_command(OUTPUT orc_proto.pb.h orc_proto.pb.cc
|
||||
@ -75,9 +75,9 @@ add_custom_command(OUTPUT orc_proto.pb.h orc_proto.pb.cc
|
||||
|
||||
|
||||
# === flatbuffers
|
||||
set(FLATBUFFERS_SRC_DIR ${ClickHouse_SOURCE_DIR}/contrib/flatbuffers)
|
||||
set(FLATBUFFERS_BINARY_DIR ${ClickHouse_BINARY_DIR}/contrib/flatbuffers)
|
||||
set(FLATBUFFERS_INCLUDE_DIR ${FLATBUFFERS_SRC_DIR}/include)
|
||||
set(FLATBUFFERS_SRC_DIR "${ClickHouse_SOURCE_DIR}/contrib/flatbuffers")
|
||||
set(FLATBUFFERS_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/flatbuffers")
|
||||
set(FLATBUFFERS_INCLUDE_DIR "${FLATBUFFERS_SRC_DIR}/include")
|
||||
|
||||
# set flatbuffers CMake options
|
||||
if (MAKE_STATIC_LIBRARIES)
|
||||
@ -101,187 +101,187 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
set(CXX11_FLAGS "-std=c++0x")
|
||||
endif ()
|
||||
|
||||
include(${ClickHouse_SOURCE_DIR}/contrib/orc/cmake_modules/CheckSourceCompiles.cmake)
|
||||
include("${ClickHouse_SOURCE_DIR}/contrib/orc/cmake_modules/CheckSourceCompiles.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_SOURCE_SRC_DIR}/Adaptor.hh.in" "${ORC_BUILD_INCLUDE_DIR}/Adaptor.hh")
|
||||
|
||||
|
||||
set(ORC_SRCS
|
||||
${ARROW_SRC_DIR}/arrow/adapters/orc/adapter.cc
|
||||
${ARROW_SRC_DIR}/arrow/adapters/orc/adapter_util.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Exceptions.cc
|
||||
${ORC_SOURCE_SRC_DIR}/OrcFile.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Reader.cc
|
||||
${ORC_SOURCE_SRC_DIR}/ByteRLE.cc
|
||||
${ORC_SOURCE_SRC_DIR}/ColumnPrinter.cc
|
||||
${ORC_SOURCE_SRC_DIR}/ColumnReader.cc
|
||||
${ORC_SOURCE_SRC_DIR}/ColumnWriter.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Common.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Compression.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Exceptions.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Int128.cc
|
||||
${ORC_SOURCE_SRC_DIR}/LzoDecompressor.cc
|
||||
${ORC_SOURCE_SRC_DIR}/MemoryPool.cc
|
||||
${ORC_SOURCE_SRC_DIR}/OrcFile.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Reader.cc
|
||||
${ORC_SOURCE_SRC_DIR}/RLE.cc
|
||||
${ORC_SOURCE_SRC_DIR}/RLEv1.cc
|
||||
${ORC_SOURCE_SRC_DIR}/RLEv2.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Statistics.cc
|
||||
${ORC_SOURCE_SRC_DIR}/StripeStream.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Timezone.cc
|
||||
${ORC_SOURCE_SRC_DIR}/TypeImpl.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Vector.cc
|
||||
${ORC_SOURCE_SRC_DIR}/Writer.cc
|
||||
${ORC_SOURCE_SRC_DIR}/io/InputStream.cc
|
||||
${ORC_SOURCE_SRC_DIR}/io/OutputStream.cc
|
||||
${ORC_ADDITION_SOURCE_DIR}/orc_proto.pb.cc
|
||||
"${ARROW_SRC_DIR}/arrow/adapters/orc/adapter.cc"
|
||||
"${ARROW_SRC_DIR}/arrow/adapters/orc/adapter_util.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Exceptions.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/OrcFile.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Reader.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/ByteRLE.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/ColumnPrinter.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/ColumnReader.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/ColumnWriter.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Common.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Compression.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Exceptions.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Int128.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/LzoDecompressor.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/MemoryPool.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/OrcFile.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Reader.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/RLE.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/RLEv1.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/RLEv2.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Statistics.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/StripeStream.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Timezone.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/TypeImpl.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Vector.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/Writer.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/io/InputStream.cc"
|
||||
"${ORC_SOURCE_SRC_DIR}/io/OutputStream.cc"
|
||||
"${ORC_ADDITION_SOURCE_DIR}/orc_proto.pb.cc"
|
||||
)
|
||||
|
||||
|
||||
# === arrow
|
||||
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/arrow)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/arrow")
|
||||
|
||||
configure_file("${LIBRARY_DIR}/util/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cpp/src/arrow/util/config.h")
|
||||
|
||||
# arrow/cpp/src/arrow/CMakeLists.txt
|
||||
set(ARROW_SRCS
|
||||
${LIBRARY_DIR}/buffer.cc
|
||||
${LIBRARY_DIR}/builder.cc
|
||||
${LIBRARY_DIR}/chunked_array.cc
|
||||
${LIBRARY_DIR}/compare.cc
|
||||
${LIBRARY_DIR}/datum.cc
|
||||
${LIBRARY_DIR}/device.cc
|
||||
${LIBRARY_DIR}/extension_type.cc
|
||||
${LIBRARY_DIR}/memory_pool.cc
|
||||
${LIBRARY_DIR}/pretty_print.cc
|
||||
${LIBRARY_DIR}/record_batch.cc
|
||||
${LIBRARY_DIR}/result.cc
|
||||
${LIBRARY_DIR}/scalar.cc
|
||||
${LIBRARY_DIR}/sparse_tensor.cc
|
||||
${LIBRARY_DIR}/status.cc
|
||||
${LIBRARY_DIR}/table_builder.cc
|
||||
${LIBRARY_DIR}/table.cc
|
||||
${LIBRARY_DIR}/tensor.cc
|
||||
${LIBRARY_DIR}/type.cc
|
||||
${LIBRARY_DIR}/visitor.cc
|
||||
"${LIBRARY_DIR}/buffer.cc"
|
||||
"${LIBRARY_DIR}/builder.cc"
|
||||
"${LIBRARY_DIR}/chunked_array.cc"
|
||||
"${LIBRARY_DIR}/compare.cc"
|
||||
"${LIBRARY_DIR}/datum.cc"
|
||||
"${LIBRARY_DIR}/device.cc"
|
||||
"${LIBRARY_DIR}/extension_type.cc"
|
||||
"${LIBRARY_DIR}/memory_pool.cc"
|
||||
"${LIBRARY_DIR}/pretty_print.cc"
|
||||
"${LIBRARY_DIR}/record_batch.cc"
|
||||
"${LIBRARY_DIR}/result.cc"
|
||||
"${LIBRARY_DIR}/scalar.cc"
|
||||
"${LIBRARY_DIR}/sparse_tensor.cc"
|
||||
"${LIBRARY_DIR}/status.cc"
|
||||
"${LIBRARY_DIR}/table_builder.cc"
|
||||
"${LIBRARY_DIR}/table.cc"
|
||||
"${LIBRARY_DIR}/tensor.cc"
|
||||
"${LIBRARY_DIR}/type.cc"
|
||||
"${LIBRARY_DIR}/visitor.cc"
|
||||
|
||||
${LIBRARY_DIR}/array/array_base.cc
|
||||
${LIBRARY_DIR}/array/array_binary.cc
|
||||
${LIBRARY_DIR}/array/array_decimal.cc
|
||||
${LIBRARY_DIR}/array/array_dict.cc
|
||||
${LIBRARY_DIR}/array/array_nested.cc
|
||||
${LIBRARY_DIR}/array/array_primitive.cc
|
||||
${LIBRARY_DIR}/array/builder_adaptive.cc
|
||||
${LIBRARY_DIR}/array/builder_base.cc
|
||||
${LIBRARY_DIR}/array/builder_binary.cc
|
||||
${LIBRARY_DIR}/array/builder_decimal.cc
|
||||
${LIBRARY_DIR}/array/builder_dict.cc
|
||||
${LIBRARY_DIR}/array/builder_nested.cc
|
||||
${LIBRARY_DIR}/array/builder_primitive.cc
|
||||
${LIBRARY_DIR}/array/builder_union.cc
|
||||
${LIBRARY_DIR}/array/concatenate.cc
|
||||
${LIBRARY_DIR}/array/data.cc
|
||||
${LIBRARY_DIR}/array/diff.cc
|
||||
${LIBRARY_DIR}/array/util.cc
|
||||
${LIBRARY_DIR}/array/validate.cc
|
||||
"${LIBRARY_DIR}/array/array_base.cc"
|
||||
"${LIBRARY_DIR}/array/array_binary.cc"
|
||||
"${LIBRARY_DIR}/array/array_decimal.cc"
|
||||
"${LIBRARY_DIR}/array/array_dict.cc"
|
||||
"${LIBRARY_DIR}/array/array_nested.cc"
|
||||
"${LIBRARY_DIR}/array/array_primitive.cc"
|
||||
"${LIBRARY_DIR}/array/builder_adaptive.cc"
|
||||
"${LIBRARY_DIR}/array/builder_base.cc"
|
||||
"${LIBRARY_DIR}/array/builder_binary.cc"
|
||||
"${LIBRARY_DIR}/array/builder_decimal.cc"
|
||||
"${LIBRARY_DIR}/array/builder_dict.cc"
|
||||
"${LIBRARY_DIR}/array/builder_nested.cc"
|
||||
"${LIBRARY_DIR}/array/builder_primitive.cc"
|
||||
"${LIBRARY_DIR}/array/builder_union.cc"
|
||||
"${LIBRARY_DIR}/array/concatenate.cc"
|
||||
"${LIBRARY_DIR}/array/data.cc"
|
||||
"${LIBRARY_DIR}/array/diff.cc"
|
||||
"${LIBRARY_DIR}/array/util.cc"
|
||||
"${LIBRARY_DIR}/array/validate.cc"
|
||||
|
||||
${LIBRARY_DIR}/compute/api_scalar.cc
|
||||
${LIBRARY_DIR}/compute/api_vector.cc
|
||||
${LIBRARY_DIR}/compute/cast.cc
|
||||
${LIBRARY_DIR}/compute/exec.cc
|
||||
${LIBRARY_DIR}/compute/function.cc
|
||||
${LIBRARY_DIR}/compute/kernel.cc
|
||||
${LIBRARY_DIR}/compute/registry.cc
|
||||
"${LIBRARY_DIR}/compute/api_scalar.cc"
|
||||
"${LIBRARY_DIR}/compute/api_vector.cc"
|
||||
"${LIBRARY_DIR}/compute/cast.cc"
|
||||
"${LIBRARY_DIR}/compute/exec.cc"
|
||||
"${LIBRARY_DIR}/compute/function.cc"
|
||||
"${LIBRARY_DIR}/compute/kernel.cc"
|
||||
"${LIBRARY_DIR}/compute/registry.cc"
|
||||
|
||||
${LIBRARY_DIR}/compute/kernels/aggregate_basic.cc
|
||||
${LIBRARY_DIR}/compute/kernels/aggregate_mode.cc
|
||||
${LIBRARY_DIR}/compute/kernels/aggregate_var_std.cc
|
||||
${LIBRARY_DIR}/compute/kernels/codegen_internal.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_arithmetic.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_boolean.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_cast_boolean.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_cast_internal.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_cast_nested.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_cast_numeric.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_cast_string.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_cast_temporal.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_compare.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_fill_null.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_nested.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_set_lookup.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_string.cc
|
||||
${LIBRARY_DIR}/compute/kernels/scalar_validity.cc
|
||||
${LIBRARY_DIR}/compute/kernels/vector_hash.cc
|
||||
${LIBRARY_DIR}/compute/kernels/vector_nested.cc
|
||||
${LIBRARY_DIR}/compute/kernels/vector_selection.cc
|
||||
${LIBRARY_DIR}/compute/kernels/vector_sort.cc
|
||||
${LIBRARY_DIR}/compute/kernels/util_internal.cc
|
||||
"${LIBRARY_DIR}/compute/kernels/aggregate_basic.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/aggregate_mode.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/aggregate_var_std.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/codegen_internal.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_arithmetic.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_boolean.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_cast_boolean.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_cast_internal.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_cast_nested.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_cast_numeric.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_cast_string.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_cast_temporal.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_compare.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_fill_null.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_nested.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_set_lookup.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_string.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/scalar_validity.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/vector_hash.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/vector_nested.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/vector_selection.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/vector_sort.cc"
|
||||
"${LIBRARY_DIR}/compute/kernels/util_internal.cc"
|
||||
|
||||
${LIBRARY_DIR}/csv/chunker.cc
|
||||
${LIBRARY_DIR}/csv/column_builder.cc
|
||||
${LIBRARY_DIR}/csv/column_decoder.cc
|
||||
${LIBRARY_DIR}/csv/converter.cc
|
||||
${LIBRARY_DIR}/csv/options.cc
|
||||
${LIBRARY_DIR}/csv/parser.cc
|
||||
${LIBRARY_DIR}/csv/reader.cc
|
||||
"${LIBRARY_DIR}/csv/chunker.cc"
|
||||
"${LIBRARY_DIR}/csv/column_builder.cc"
|
||||
"${LIBRARY_DIR}/csv/column_decoder.cc"
|
||||
"${LIBRARY_DIR}/csv/converter.cc"
|
||||
"${LIBRARY_DIR}/csv/options.cc"
|
||||
"${LIBRARY_DIR}/csv/parser.cc"
|
||||
"${LIBRARY_DIR}/csv/reader.cc"
|
||||
|
||||
${LIBRARY_DIR}/ipc/dictionary.cc
|
||||
${LIBRARY_DIR}/ipc/feather.cc
|
||||
${LIBRARY_DIR}/ipc/message.cc
|
||||
${LIBRARY_DIR}/ipc/metadata_internal.cc
|
||||
${LIBRARY_DIR}/ipc/options.cc
|
||||
${LIBRARY_DIR}/ipc/reader.cc
|
||||
${LIBRARY_DIR}/ipc/writer.cc
|
||||
"${LIBRARY_DIR}/ipc/dictionary.cc"
|
||||
"${LIBRARY_DIR}/ipc/feather.cc"
|
||||
"${LIBRARY_DIR}/ipc/message.cc"
|
||||
"${LIBRARY_DIR}/ipc/metadata_internal.cc"
|
||||
"${LIBRARY_DIR}/ipc/options.cc"
|
||||
"${LIBRARY_DIR}/ipc/reader.cc"
|
||||
"${LIBRARY_DIR}/ipc/writer.cc"
|
||||
|
||||
${LIBRARY_DIR}/io/buffered.cc
|
||||
${LIBRARY_DIR}/io/caching.cc
|
||||
${LIBRARY_DIR}/io/compressed.cc
|
||||
${LIBRARY_DIR}/io/file.cc
|
||||
${LIBRARY_DIR}/io/interfaces.cc
|
||||
${LIBRARY_DIR}/io/memory.cc
|
||||
${LIBRARY_DIR}/io/slow.cc
|
||||
"${LIBRARY_DIR}/io/buffered.cc"
|
||||
"${LIBRARY_DIR}/io/caching.cc"
|
||||
"${LIBRARY_DIR}/io/compressed.cc"
|
||||
"${LIBRARY_DIR}/io/file.cc"
|
||||
"${LIBRARY_DIR}/io/interfaces.cc"
|
||||
"${LIBRARY_DIR}/io/memory.cc"
|
||||
"${LIBRARY_DIR}/io/slow.cc"
|
||||
|
||||
${LIBRARY_DIR}/tensor/coo_converter.cc
|
||||
${LIBRARY_DIR}/tensor/csf_converter.cc
|
||||
${LIBRARY_DIR}/tensor/csx_converter.cc
|
||||
"${LIBRARY_DIR}/tensor/coo_converter.cc"
|
||||
"${LIBRARY_DIR}/tensor/csf_converter.cc"
|
||||
"${LIBRARY_DIR}/tensor/csx_converter.cc"
|
||||
|
||||
${LIBRARY_DIR}/util/basic_decimal.cc
|
||||
${LIBRARY_DIR}/util/bit_block_counter.cc
|
||||
${LIBRARY_DIR}/util/bit_run_reader.cc
|
||||
${LIBRARY_DIR}/util/bit_util.cc
|
||||
${LIBRARY_DIR}/util/bitmap.cc
|
||||
${LIBRARY_DIR}/util/bitmap_builders.cc
|
||||
${LIBRARY_DIR}/util/bitmap_ops.cc
|
||||
${LIBRARY_DIR}/util/bpacking.cc
|
||||
${LIBRARY_DIR}/util/compression.cc
|
||||
${LIBRARY_DIR}/util/compression_lz4.cc
|
||||
${LIBRARY_DIR}/util/compression_snappy.cc
|
||||
${LIBRARY_DIR}/util/compression_zlib.cc
|
||||
${LIBRARY_DIR}/util/compression_zstd.cc
|
||||
${LIBRARY_DIR}/util/cpu_info.cc
|
||||
${LIBRARY_DIR}/util/decimal.cc
|
||||
${LIBRARY_DIR}/util/delimiting.cc
|
||||
${LIBRARY_DIR}/util/formatting.cc
|
||||
${LIBRARY_DIR}/util/future.cc
|
||||
${LIBRARY_DIR}/util/int_util.cc
|
||||
${LIBRARY_DIR}/util/io_util.cc
|
||||
${LIBRARY_DIR}/util/iterator.cc
|
||||
${LIBRARY_DIR}/util/key_value_metadata.cc
|
||||
${LIBRARY_DIR}/util/logging.cc
|
||||
${LIBRARY_DIR}/util/memory.cc
|
||||
${LIBRARY_DIR}/util/string_builder.cc
|
||||
${LIBRARY_DIR}/util/string.cc
|
||||
${LIBRARY_DIR}/util/task_group.cc
|
||||
${LIBRARY_DIR}/util/thread_pool.cc
|
||||
${LIBRARY_DIR}/util/time.cc
|
||||
${LIBRARY_DIR}/util/trie.cc
|
||||
${LIBRARY_DIR}/util/utf8.cc
|
||||
${LIBRARY_DIR}/util/value_parsing.cc
|
||||
"${LIBRARY_DIR}/util/basic_decimal.cc"
|
||||
"${LIBRARY_DIR}/util/bit_block_counter.cc"
|
||||
"${LIBRARY_DIR}/util/bit_run_reader.cc"
|
||||
"${LIBRARY_DIR}/util/bit_util.cc"
|
||||
"${LIBRARY_DIR}/util/bitmap.cc"
|
||||
"${LIBRARY_DIR}/util/bitmap_builders.cc"
|
||||
"${LIBRARY_DIR}/util/bitmap_ops.cc"
|
||||
"${LIBRARY_DIR}/util/bpacking.cc"
|
||||
"${LIBRARY_DIR}/util/compression.cc"
|
||||
"${LIBRARY_DIR}/util/compression_lz4.cc"
|
||||
"${LIBRARY_DIR}/util/compression_snappy.cc"
|
||||
"${LIBRARY_DIR}/util/compression_zlib.cc"
|
||||
"${LIBRARY_DIR}/util/compression_zstd.cc"
|
||||
"${LIBRARY_DIR}/util/cpu_info.cc"
|
||||
"${LIBRARY_DIR}/util/decimal.cc"
|
||||
"${LIBRARY_DIR}/util/delimiting.cc"
|
||||
"${LIBRARY_DIR}/util/formatting.cc"
|
||||
"${LIBRARY_DIR}/util/future.cc"
|
||||
"${LIBRARY_DIR}/util/int_util.cc"
|
||||
"${LIBRARY_DIR}/util/io_util.cc"
|
||||
"${LIBRARY_DIR}/util/iterator.cc"
|
||||
"${LIBRARY_DIR}/util/key_value_metadata.cc"
|
||||
"${LIBRARY_DIR}/util/logging.cc"
|
||||
"${LIBRARY_DIR}/util/memory.cc"
|
||||
"${LIBRARY_DIR}/util/string_builder.cc"
|
||||
"${LIBRARY_DIR}/util/string.cc"
|
||||
"${LIBRARY_DIR}/util/task_group.cc"
|
||||
"${LIBRARY_DIR}/util/thread_pool.cc"
|
||||
"${LIBRARY_DIR}/util/time.cc"
|
||||
"${LIBRARY_DIR}/util/trie.cc"
|
||||
"${LIBRARY_DIR}/util/utf8.cc"
|
||||
"${LIBRARY_DIR}/util/value_parsing.cc"
|
||||
|
||||
${LIBRARY_DIR}/vendored/base64.cpp
|
||||
"${LIBRARY_DIR}/vendored/base64.cpp"
|
||||
${ORC_SRCS}
|
||||
)
|
||||
|
||||
@ -298,21 +298,21 @@ if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY)
|
||||
endif ()
|
||||
|
||||
add_definitions(-DARROW_WITH_LZ4)
|
||||
SET(ARROW_SRCS ${LIBRARY_DIR}/util/compression_lz4.cc ${ARROW_SRCS})
|
||||
SET(ARROW_SRCS "${LIBRARY_DIR}/util/compression_lz4.cc" ${ARROW_SRCS})
|
||||
|
||||
if (ARROW_WITH_SNAPPY)
|
||||
add_definitions(-DARROW_WITH_SNAPPY)
|
||||
SET(ARROW_SRCS ${LIBRARY_DIR}/util/compression_snappy.cc ${ARROW_SRCS})
|
||||
SET(ARROW_SRCS "${LIBRARY_DIR}/util/compression_snappy.cc" ${ARROW_SRCS})
|
||||
endif ()
|
||||
|
||||
if (ARROW_WITH_ZLIB)
|
||||
add_definitions(-DARROW_WITH_ZLIB)
|
||||
SET(ARROW_SRCS ${LIBRARY_DIR}/util/compression_zlib.cc ${ARROW_SRCS})
|
||||
SET(ARROW_SRCS "${LIBRARY_DIR}/util/compression_zlib.cc" ${ARROW_SRCS})
|
||||
endif ()
|
||||
|
||||
if (ARROW_WITH_ZSTD)
|
||||
add_definitions(-DARROW_WITH_ZSTD)
|
||||
SET(ARROW_SRCS ${LIBRARY_DIR}/util/compression_zstd.cc ${ARROW_SRCS})
|
||||
SET(ARROW_SRCS "${LIBRARY_DIR}/util/compression_zstd.cc" ${ARROW_SRCS})
|
||||
endif ()
|
||||
|
||||
|
||||
@ -327,8 +327,8 @@ if (USE_INTERNAL_PROTOBUF_LIBRARY)
|
||||
add_dependencies(${ARROW_LIBRARY} protoc)
|
||||
endif ()
|
||||
|
||||
target_include_directories(${ARROW_LIBRARY} SYSTEM PUBLIC ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src)
|
||||
target_include_directories(${ARROW_LIBRARY} SYSTEM PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/cpp/src)
|
||||
target_include_directories(${ARROW_LIBRARY} SYSTEM PUBLIC "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src")
|
||||
target_include_directories(${ARROW_LIBRARY} SYSTEM PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/cpp/src")
|
||||
target_link_libraries(${ARROW_LIBRARY} PRIVATE ${DOUBLE_CONVERSION_LIBRARIES} ${Protobuf_LIBRARY})
|
||||
target_link_libraries(${ARROW_LIBRARY} PRIVATE lz4)
|
||||
if (ARROW_WITH_SNAPPY)
|
||||
@ -354,46 +354,46 @@ target_include_directories(${ARROW_LIBRARY} PRIVATE SYSTEM ${FLATBUFFERS_INCLUDE
|
||||
|
||||
# === parquet
|
||||
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/parquet)
|
||||
set(GEN_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/generated)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/parquet")
|
||||
set(GEN_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/generated")
|
||||
# arrow/cpp/src/parquet/CMakeLists.txt
|
||||
set(PARQUET_SRCS
|
||||
${LIBRARY_DIR}/arrow/path_internal.cc
|
||||
${LIBRARY_DIR}/arrow/reader.cc
|
||||
${LIBRARY_DIR}/arrow/reader_internal.cc
|
||||
${LIBRARY_DIR}/arrow/schema.cc
|
||||
${LIBRARY_DIR}/arrow/schema_internal.cc
|
||||
${LIBRARY_DIR}/arrow/writer.cc
|
||||
${LIBRARY_DIR}/bloom_filter.cc
|
||||
${LIBRARY_DIR}/column_reader.cc
|
||||
${LIBRARY_DIR}/column_scanner.cc
|
||||
${LIBRARY_DIR}/column_writer.cc
|
||||
${LIBRARY_DIR}/deprecated_io.cc
|
||||
${LIBRARY_DIR}/encoding.cc
|
||||
${LIBRARY_DIR}/encryption.cc
|
||||
${LIBRARY_DIR}/encryption_internal.cc
|
||||
${LIBRARY_DIR}/file_reader.cc
|
||||
${LIBRARY_DIR}/file_writer.cc
|
||||
${LIBRARY_DIR}/internal_file_decryptor.cc
|
||||
${LIBRARY_DIR}/internal_file_encryptor.cc
|
||||
${LIBRARY_DIR}/level_conversion.cc
|
||||
${LIBRARY_DIR}/level_comparison.cc
|
||||
${LIBRARY_DIR}/metadata.cc
|
||||
${LIBRARY_DIR}/murmur3.cc
|
||||
${LIBRARY_DIR}/platform.cc
|
||||
${LIBRARY_DIR}/printer.cc
|
||||
${LIBRARY_DIR}/properties.cc
|
||||
${LIBRARY_DIR}/schema.cc
|
||||
${LIBRARY_DIR}/statistics.cc
|
||||
${LIBRARY_DIR}/types.cc
|
||||
"${LIBRARY_DIR}/arrow/path_internal.cc"
|
||||
"${LIBRARY_DIR}/arrow/reader.cc"
|
||||
"${LIBRARY_DIR}/arrow/reader_internal.cc"
|
||||
"${LIBRARY_DIR}/arrow/schema.cc"
|
||||
"${LIBRARY_DIR}/arrow/schema_internal.cc"
|
||||
"${LIBRARY_DIR}/arrow/writer.cc"
|
||||
"${LIBRARY_DIR}/bloom_filter.cc"
|
||||
"${LIBRARY_DIR}/column_reader.cc"
|
||||
"${LIBRARY_DIR}/column_scanner.cc"
|
||||
"${LIBRARY_DIR}/column_writer.cc"
|
||||
"${LIBRARY_DIR}/deprecated_io.cc"
|
||||
"${LIBRARY_DIR}/encoding.cc"
|
||||
"${LIBRARY_DIR}/encryption.cc"
|
||||
"${LIBRARY_DIR}/encryption_internal.cc"
|
||||
"${LIBRARY_DIR}/file_reader.cc"
|
||||
"${LIBRARY_DIR}/file_writer.cc"
|
||||
"${LIBRARY_DIR}/internal_file_decryptor.cc"
|
||||
"${LIBRARY_DIR}/internal_file_encryptor.cc"
|
||||
"${LIBRARY_DIR}/level_conversion.cc"
|
||||
"${LIBRARY_DIR}/level_comparison.cc"
|
||||
"${LIBRARY_DIR}/metadata.cc"
|
||||
"${LIBRARY_DIR}/murmur3.cc"
|
||||
"${LIBRARY_DIR}/platform.cc"
|
||||
"${LIBRARY_DIR}/printer.cc"
|
||||
"${LIBRARY_DIR}/properties.cc"
|
||||
"${LIBRARY_DIR}/schema.cc"
|
||||
"${LIBRARY_DIR}/statistics.cc"
|
||||
"${LIBRARY_DIR}/types.cc"
|
||||
|
||||
${GEN_LIBRARY_DIR}/parquet_constants.cpp
|
||||
${GEN_LIBRARY_DIR}/parquet_types.cpp
|
||||
"${GEN_LIBRARY_DIR}/parquet_constants.cpp"
|
||||
"${GEN_LIBRARY_DIR}/parquet_types.cpp"
|
||||
)
|
||||
#list(TRANSFORM PARQUET_SRCS PREPEND ${LIBRARY_DIR}/) # cmake 3.12
|
||||
#list(TRANSFORM PARQUET_SRCS PREPEND "${LIBRARY_DIR}/") # cmake 3.12
|
||||
add_library(${PARQUET_LIBRARY} ${PARQUET_SRCS})
|
||||
target_include_directories(${PARQUET_LIBRARY} SYSTEM PUBLIC ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src ${CMAKE_CURRENT_SOURCE_DIR}/cpp/src PRIVATE ${OPENSSL_INCLUDE_DIR})
|
||||
include(${ClickHouse_SOURCE_DIR}/contrib/thrift/build/cmake/ConfigureChecks.cmake) # makes config.h
|
||||
target_include_directories(${PARQUET_LIBRARY} SYSTEM PUBLIC "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src" "${CMAKE_CURRENT_SOURCE_DIR}/cpp/src" PRIVATE ${OPENSSL_INCLUDE_DIR})
|
||||
include("${ClickHouse_SOURCE_DIR}/contrib/thrift/build/cmake/ConfigureChecks.cmake") # makes config.h
|
||||
target_link_libraries(${PARQUET_LIBRARY} PUBLIC ${ARROW_LIBRARY} PRIVATE ${THRIFT_LIBRARY} boost::headers_only boost::regex ${OPENSSL_LIBRARIES})
|
||||
|
||||
if (SANITIZE STREQUAL "undefined")
|
||||
@ -403,9 +403,9 @@ endif ()
|
||||
|
||||
# === tools
|
||||
|
||||
set(TOOLS_DIR ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/tools/parquet)
|
||||
set(TOOLS_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/tools/parquet")
|
||||
set(PARQUET_TOOLS parquet_dump_schema parquet_reader parquet_scan)
|
||||
foreach (TOOL ${PARQUET_TOOLS})
|
||||
add_executable(${TOOL} ${TOOLS_DIR}/${TOOL}.cc)
|
||||
add_executable(${TOOL} "${TOOLS_DIR}/${TOOL}.cc")
|
||||
target_link_libraries(${TOOL} PRIVATE ${PARQUET_LIBRARY})
|
||||
endforeach ()
|
||||
|
@ -1,10 +1,10 @@
|
||||
set(AVROCPP_ROOT_DIR ${CMAKE_SOURCE_DIR}/contrib/avro/lang/c++)
|
||||
set(AVROCPP_INCLUDE_DIR ${AVROCPP_ROOT_DIR}/api)
|
||||
set(AVROCPP_SOURCE_DIR ${AVROCPP_ROOT_DIR}/impl)
|
||||
set(AVROCPP_ROOT_DIR "${CMAKE_SOURCE_DIR}/contrib/avro/lang/c++")
|
||||
set(AVROCPP_INCLUDE_DIR "${AVROCPP_ROOT_DIR}/api")
|
||||
set(AVROCPP_SOURCE_DIR "${AVROCPP_ROOT_DIR}/impl")
|
||||
|
||||
set (CMAKE_CXX_STANDARD 17)
|
||||
|
||||
if (EXISTS ${AVROCPP_ROOT_DIR}/../../share/VERSION.txt)
|
||||
if (EXISTS "${AVROCPP_ROOT_DIR}/../../share/VERSION.txt")
|
||||
file(READ "${AVROCPP_ROOT_DIR}/../../share/VERSION.txt"
|
||||
AVRO_VERSION)
|
||||
endif()
|
||||
@ -14,30 +14,30 @@ set (AVRO_VERSION_MAJOR ${AVRO_VERSION})
|
||||
set (AVRO_VERSION_MINOR "0")
|
||||
|
||||
set (AVROCPP_SOURCE_FILES
|
||||
${AVROCPP_SOURCE_DIR}/Compiler.cc
|
||||
${AVROCPP_SOURCE_DIR}/Node.cc
|
||||
${AVROCPP_SOURCE_DIR}/LogicalType.cc
|
||||
${AVROCPP_SOURCE_DIR}/NodeImpl.cc
|
||||
${AVROCPP_SOURCE_DIR}/ResolverSchema.cc
|
||||
${AVROCPP_SOURCE_DIR}/Schema.cc
|
||||
${AVROCPP_SOURCE_DIR}/Types.cc
|
||||
${AVROCPP_SOURCE_DIR}/ValidSchema.cc
|
||||
${AVROCPP_SOURCE_DIR}/Zigzag.cc
|
||||
${AVROCPP_SOURCE_DIR}/BinaryEncoder.cc
|
||||
${AVROCPP_SOURCE_DIR}/BinaryDecoder.cc
|
||||
${AVROCPP_SOURCE_DIR}/Stream.cc
|
||||
${AVROCPP_SOURCE_DIR}/FileStream.cc
|
||||
${AVROCPP_SOURCE_DIR}/Generic.cc
|
||||
${AVROCPP_SOURCE_DIR}/GenericDatum.cc
|
||||
${AVROCPP_SOURCE_DIR}/DataFile.cc
|
||||
${AVROCPP_SOURCE_DIR}/parsing/Symbol.cc
|
||||
${AVROCPP_SOURCE_DIR}/parsing/ValidatingCodec.cc
|
||||
${AVROCPP_SOURCE_DIR}/parsing/JsonCodec.cc
|
||||
${AVROCPP_SOURCE_DIR}/parsing/ResolvingDecoder.cc
|
||||
${AVROCPP_SOURCE_DIR}/json/JsonIO.cc
|
||||
${AVROCPP_SOURCE_DIR}/json/JsonDom.cc
|
||||
${AVROCPP_SOURCE_DIR}/Resolver.cc
|
||||
${AVROCPP_SOURCE_DIR}/Validator.cc
|
||||
"${AVROCPP_SOURCE_DIR}/Compiler.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Node.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/LogicalType.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/NodeImpl.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/ResolverSchema.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Schema.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Types.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/ValidSchema.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Zigzag.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/BinaryEncoder.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/BinaryDecoder.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Stream.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/FileStream.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Generic.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/GenericDatum.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/DataFile.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/parsing/Symbol.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/parsing/ValidatingCodec.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/parsing/JsonCodec.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/parsing/ResolvingDecoder.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/json/JsonIO.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/json/JsonDom.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Resolver.cc"
|
||||
"${AVROCPP_SOURCE_DIR}/Validator.cc"
|
||||
)
|
||||
|
||||
add_library (avrocpp ${AVROCPP_SOURCE_FILES})
|
||||
@ -63,7 +63,7 @@ target_compile_options(avrocpp PRIVATE ${SUPPRESS_WARNINGS})
|
||||
|
||||
# create a symlink to include headers with <avro/...>
|
||||
ADD_CUSTOM_TARGET(avro_symlink_headers ALL
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${AVROCPP_ROOT_DIR}/include
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink ${AVROCPP_ROOT_DIR}/api ${AVROCPP_ROOT_DIR}/include/avro
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${AVROCPP_ROOT_DIR}/include"
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink "${AVROCPP_ROOT_DIR}/api" "${AVROCPP_ROOT_DIR}/include/avro"
|
||||
)
|
||||
add_dependencies(avrocpp avro_symlink_headers)
|
||||
|
@ -1,8 +1,8 @@
|
||||
SET(AWS_S3_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-s3)
|
||||
SET(AWS_CORE_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-core)
|
||||
SET(AWS_CHECKSUMS_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws-checksums)
|
||||
SET(AWS_COMMON_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws-c-common)
|
||||
SET(AWS_EVENT_STREAM_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws-c-event-stream)
|
||||
SET(AWS_S3_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-s3")
|
||||
SET(AWS_CORE_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-core")
|
||||
SET(AWS_CHECKSUMS_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-checksums")
|
||||
SET(AWS_COMMON_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-c-common")
|
||||
SET(AWS_EVENT_STREAM_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-c-event-stream")
|
||||
|
||||
OPTION(USE_AWS_MEMORY_MANAGEMENT "Aws memory management" OFF)
|
||||
configure_file("${AWS_CORE_LIBRARY_DIR}/include/aws/core/SDKConfig.h.in"
|
||||
|
@ -1,11 +1,11 @@
|
||||
SET(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/base64)
|
||||
SET(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/base64")
|
||||
|
||||
add_library(base64_scalar OBJECT ${LIBRARY_DIR}/turbob64c.c ${LIBRARY_DIR}/turbob64d.c)
|
||||
add_library(base64_ssse3 OBJECT ${LIBRARY_DIR}/turbob64sse.c) # This file also contains code for ARM NEON
|
||||
add_library(base64_scalar OBJECT "${LIBRARY_DIR}/turbob64c.c" "${LIBRARY_DIR}/turbob64d.c")
|
||||
add_library(base64_ssse3 OBJECT "${LIBRARY_DIR}/turbob64sse.c") # This file also contains code for ARM NEON
|
||||
|
||||
if (ARCH_AMD64)
|
||||
add_library(base64_avx OBJECT ${LIBRARY_DIR}/turbob64sse.c) # This is not a mistake. One file is compiled twice.
|
||||
add_library(base64_avx2 OBJECT ${LIBRARY_DIR}/turbob64avx2.c)
|
||||
add_library(base64_avx OBJECT "${LIBRARY_DIR}/turbob64sse.c") # This is not a mistake. One file is compiled twice.
|
||||
add_library(base64_avx2 OBJECT "${LIBRARY_DIR}/turbob64avx2.c")
|
||||
endif ()
|
||||
|
||||
target_compile_options(base64_scalar PRIVATE -falign-loops)
|
||||
|
2
contrib/boost
vendored
2
contrib/boost
vendored
@ -1 +1 @@
|
||||
Subproject commit ee24fa55bc46e4d2ce7d0d052cc5a0d9b1be8c36
|
||||
Subproject commit 1ccbb5a522a571ce83b606dbc2e1011c42ecccfb
|
@ -56,19 +56,19 @@ endif()
|
||||
|
||||
if (NOT EXTERNAL_BOOST_FOUND)
|
||||
set (USE_INTERNAL_BOOST_LIBRARY 1)
|
||||
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/boost)
|
||||
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/boost")
|
||||
|
||||
# filesystem
|
||||
|
||||
set (SRCS_FILESYSTEM
|
||||
${LIBRARY_DIR}/libs/filesystem/src/codecvt_error_category.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/operations.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/path_traits.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/path.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/portability.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/unique_path.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/utf8_codecvt_facet.cpp
|
||||
${LIBRARY_DIR}/libs/filesystem/src/windows_file_codecvt.cpp
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/codecvt_error_category.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/operations.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/path_traits.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/path.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/portability.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/unique_path.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/utf8_codecvt_facet.cpp"
|
||||
"${LIBRARY_DIR}/libs/filesystem/src/windows_file_codecvt.cpp"
|
||||
)
|
||||
|
||||
add_library (_boost_filesystem ${SRCS_FILESYSTEM})
|
||||
@ -88,10 +88,10 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
# iostreams
|
||||
|
||||
set (SRCS_IOSTREAMS
|
||||
${LIBRARY_DIR}/libs/iostreams/src/file_descriptor.cpp
|
||||
${LIBRARY_DIR}/libs/iostreams/src/gzip.cpp
|
||||
${LIBRARY_DIR}/libs/iostreams/src/mapped_file.cpp
|
||||
${LIBRARY_DIR}/libs/iostreams/src/zlib.cpp
|
||||
"${LIBRARY_DIR}/libs/iostreams/src/file_descriptor.cpp"
|
||||
"${LIBRARY_DIR}/libs/iostreams/src/gzip.cpp"
|
||||
"${LIBRARY_DIR}/libs/iostreams/src/mapped_file.cpp"
|
||||
"${LIBRARY_DIR}/libs/iostreams/src/zlib.cpp"
|
||||
)
|
||||
|
||||
add_library (_boost_iostreams ${SRCS_IOSTREAMS})
|
||||
@ -102,17 +102,17 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
# program_options
|
||||
|
||||
set (SRCS_PROGRAM_OPTIONS
|
||||
${LIBRARY_DIR}/libs/program_options/src/cmdline.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/config_file.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/convert.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/options_description.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/parsers.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/positional_options.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/split.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/utf8_codecvt_facet.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/value_semantic.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/variables_map.cpp
|
||||
${LIBRARY_DIR}/libs/program_options/src/winmain.cpp
|
||||
"${LIBRARY_DIR}/libs/program_options/src/cmdline.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/config_file.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/convert.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/options_description.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/parsers.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/positional_options.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/split.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/utf8_codecvt_facet.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/value_semantic.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/variables_map.cpp"
|
||||
"${LIBRARY_DIR}/libs/program_options/src/winmain.cpp"
|
||||
)
|
||||
|
||||
add_library (_boost_program_options ${SRCS_PROGRAM_OPTIONS})
|
||||
@ -122,24 +122,24 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
# regex
|
||||
|
||||
set (SRCS_REGEX
|
||||
${LIBRARY_DIR}/libs/regex/src/c_regex_traits.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/cpp_regex_traits.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/cregex.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/fileiter.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/icu.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/instances.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/internals.hpp
|
||||
${LIBRARY_DIR}/libs/regex/src/posix_api.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/regex_debug.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/regex_raw_buffer.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/regex_traits_defaults.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/regex.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/static_mutex.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/usinstances.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/w32_regex_traits.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/wc_regex_traits.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/wide_posix_api.cpp
|
||||
${LIBRARY_DIR}/libs/regex/src/winstances.cpp
|
||||
"${LIBRARY_DIR}/libs/regex/src/c_regex_traits.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/cpp_regex_traits.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/cregex.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/fileiter.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/icu.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/instances.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/internals.hpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/posix_api.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/regex_debug.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/regex_raw_buffer.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/regex_traits_defaults.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/regex.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/static_mutex.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/usinstances.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/w32_regex_traits.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/wc_regex_traits.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/wide_posix_api.cpp"
|
||||
"${LIBRARY_DIR}/libs/regex/src/winstances.cpp"
|
||||
)
|
||||
|
||||
add_library (_boost_regex ${SRCS_REGEX})
|
||||
@ -149,7 +149,7 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
# system
|
||||
|
||||
set (SRCS_SYSTEM
|
||||
${LIBRARY_DIR}/libs/system/src/error_code.cpp
|
||||
"${LIBRARY_DIR}/libs/system/src/error_code.cpp"
|
||||
)
|
||||
|
||||
add_library (_boost_system ${SRCS_SYSTEM})
|
||||
@ -161,9 +161,9 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
SET(ASM_OPTIONS "-x assembler-with-cpp")
|
||||
|
||||
set (SRCS_CONTEXT
|
||||
${LIBRARY_DIR}/libs/context/src/dummy.cpp
|
||||
${LIBRARY_DIR}/libs/context/src/execution_context.cpp
|
||||
${LIBRARY_DIR}/libs/context/src/posix/stack_traits.cpp
|
||||
"${LIBRARY_DIR}/libs/context/src/dummy.cpp"
|
||||
"${LIBRARY_DIR}/libs/context/src/execution_context.cpp"
|
||||
"${LIBRARY_DIR}/libs/context/src/posix/stack_traits.cpp"
|
||||
)
|
||||
|
||||
if (SANITIZE AND (SANITIZE STREQUAL "address" OR SANITIZE STREQUAL "thread"))
|
||||
@ -176,33 +176,33 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
endif()
|
||||
|
||||
set (SRCS_CONTEXT ${SRCS_CONTEXT}
|
||||
${LIBRARY_DIR}/libs/context/src/fiber.cpp
|
||||
${LIBRARY_DIR}/libs/context/src/continuation.cpp
|
||||
"${LIBRARY_DIR}/libs/context/src/fiber.cpp"
|
||||
"${LIBRARY_DIR}/libs/context/src/continuation.cpp"
|
||||
)
|
||||
endif()
|
||||
if (ARCH_ARM)
|
||||
set (SRCS_CONTEXT ${SRCS_CONTEXT}
|
||||
${LIBRARY_DIR}/libs/context/src/asm/jump_arm64_aapcs_elf_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/make_arm64_aapcs_elf_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/ontop_arm64_aapcs_elf_gas.S
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/jump_arm64_aapcs_elf_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/make_arm64_aapcs_elf_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/ontop_arm64_aapcs_elf_gas.S"
|
||||
)
|
||||
elseif (ARCH_PPC64LE)
|
||||
set (SRCS_CONTEXT ${SRCS_CONTEXT}
|
||||
${LIBRARY_DIR}/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/make_ppc64_sysv_elf_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/ontop_ppc64_sysv_elf_gas.S
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/make_ppc64_sysv_elf_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/ontop_ppc64_sysv_elf_gas.S"
|
||||
)
|
||||
elseif(OS_DARWIN)
|
||||
set (SRCS_CONTEXT ${SRCS_CONTEXT}
|
||||
${LIBRARY_DIR}/libs/context/src/asm/jump_x86_64_sysv_macho_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/make_x86_64_sysv_macho_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/ontop_x86_64_sysv_macho_gas.S
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/jump_x86_64_sysv_macho_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/make_x86_64_sysv_macho_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/ontop_x86_64_sysv_macho_gas.S"
|
||||
)
|
||||
else()
|
||||
set (SRCS_CONTEXT ${SRCS_CONTEXT}
|
||||
${LIBRARY_DIR}/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/make_x86_64_sysv_elf_gas.S
|
||||
${LIBRARY_DIR}/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/make_x86_64_sysv_elf_gas.S"
|
||||
"${LIBRARY_DIR}/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S"
|
||||
)
|
||||
endif()
|
||||
|
||||
@ -213,9 +213,9 @@ if (NOT EXTERNAL_BOOST_FOUND)
|
||||
# coroutine
|
||||
|
||||
set (SRCS_COROUTINE
|
||||
${LIBRARY_DIR}/libs/coroutine/detail/coroutine_context.cpp
|
||||
${LIBRARY_DIR}/libs/coroutine/exceptions.cpp
|
||||
${LIBRARY_DIR}/libs/coroutine/posix/stack_traits.cpp
|
||||
"${LIBRARY_DIR}/libs/coroutine/detail/coroutine_context.cpp"
|
||||
"${LIBRARY_DIR}/libs/coroutine/exceptions.cpp"
|
||||
"${LIBRARY_DIR}/libs/coroutine/posix/stack_traits.cpp"
|
||||
)
|
||||
add_library (_boost_coroutine ${SRCS_COROUTINE})
|
||||
add_library (boost::coroutine ALIAS _boost_coroutine)
|
||||
|
2
contrib/boringssl
vendored
2
contrib/boringssl
vendored
@ -1 +1 @@
|
||||
Subproject commit fd9ce1a0406f571507068b9555d0b545b8a18332
|
||||
Subproject commit a6a2e2ab3e44d97ce98e51c558e989f211de7eb3
|
@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(BoringSSL LANGUAGES C CXX)
|
||||
|
||||
set(BORINGSSL_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/boringssl)
|
||||
set(BORINGSSL_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/boringssl")
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
set(CLANG 1)
|
||||
@ -16,7 +16,7 @@ endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fvisibility=hidden -fno-common -fno-exceptions -fno-rtti")
|
||||
if(APPLE)
|
||||
if(APPLE AND CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
||||
endif()
|
||||
|
||||
@ -130,7 +130,7 @@ if(BUILD_SHARED_LIBS)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||
endif()
|
||||
|
||||
include_directories(${BORINGSSL_SOURCE_DIR}/include)
|
||||
include_directories("${BORINGSSL_SOURCE_DIR}/include")
|
||||
|
||||
set(
|
||||
CRYPTO_ios_aarch64_SOURCES
|
||||
@ -192,8 +192,8 @@ set(
|
||||
linux-arm/crypto/fipsmodule/sha512-armv4.S
|
||||
linux-arm/crypto/fipsmodule/vpaes-armv7.S
|
||||
linux-arm/crypto/test/trampoline-armv4.S
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/curve25519/asm/x25519-asm-arm.S
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm_asm.S
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/curve25519/asm/x25519-asm-arm.S"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm_asm.S"
|
||||
)
|
||||
|
||||
set(
|
||||
@ -244,7 +244,7 @@ set(
|
||||
linux-x86_64/crypto/fipsmodule/x86_64-mont.S
|
||||
linux-x86_64/crypto/fipsmodule/x86_64-mont5.S
|
||||
linux-x86_64/crypto/test/trampoline-x86_64.S
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/hrss/asm/poly_rq_mul.S
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/hrss/asm/poly_rq_mul.S"
|
||||
)
|
||||
|
||||
set(
|
||||
@ -348,300 +348,300 @@ add_library(
|
||||
|
||||
${CRYPTO_ARCH_SOURCES}
|
||||
err_data.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bitstr.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bool.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_d2i_fp.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_dup.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_enum.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_gentm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_i2d_fp.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_int.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_mbstr.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utctm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utf8.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_lib.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_par.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn_pack.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_enum.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_int.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_string.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_dec.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_enc.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_fre.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_new.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_typ.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_utl.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/asn1/time_support.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/base64/base64.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/bio.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/bio_mem.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/connect.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/fd.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/file.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/hexdump.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/pair.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/asn1_compat.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/ber.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbb.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbs.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/unicode.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/chacha/chacha.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/cipher_extra.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/derive_key.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesccm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesctrhmac.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesgcmsiv.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_chacha20poly1305.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_null.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_rc2.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_rc4.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_tls.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/tls_cbc.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cmac/cmac.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/cpu-ppc64le.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/crypto.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/curve25519/curve25519.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/curve25519/spake25519.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/dh_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/params.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/digest_extra/digest_extra.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_derive.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/hash_to_curve.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/ecdh_extra/ecdh_extra.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/ecdsa_extra/ecdsa_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/engine/engine.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/err/err.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/digestsign.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/evp.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_ctx.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_dsa_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ec.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ec_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ed25519.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ed25519_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_rsa.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_rsa_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_x25519.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_x25519_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/pbkdf.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/print.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/scrypt.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/evp/sign.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.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/hpke/hpke.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/lhash/lhash.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/mem.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/obj/obj.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/obj/obj_xref.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_all.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_info.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_lib.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_oth.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pk8.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pkey.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_x509.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_xaux.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7_x509.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/p5_pbev2.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8_x509.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_vec.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/pool/pool.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/deterministic.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/forkunsafe.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/fuchsia.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/passive.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/rand_extra.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/windows.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rc4/rc4.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/refcount_c11.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/refcount_lock.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_asn1.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_print.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/siphash/siphash.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/stack/stack.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/thread.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/thread_none.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/thread_pthread.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/thread_win.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/trust_token/pmbtoken.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/trust_token/trust_token.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.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/algorithm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509a.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_att.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_cmp.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_d2.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_def.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_ext.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_lu.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_set.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_trs.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_txt.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_v3.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vfy.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vpm.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509cset.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509name.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509rset.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509spki.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_algor.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_all.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_attrib.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_crl.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_exten.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_info.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_name.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pkey.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pubkey.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_req.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_sig.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_spki.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_val.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509a.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_cache.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_data.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_lib.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_map.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_node.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_tree.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akey.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akeya.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_alt.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bcons.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bitst.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_conf.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_cpols.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_crld.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_enum.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_extku.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_genn.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ia5.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_info.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_int.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_lib.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ncons.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ocsp.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pci.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcia.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcons.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pmaps.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_prn.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_purp.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_skey.c
|
||||
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_utl.c
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bitstr.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bool.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_d2i_fp.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_dup.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_enum.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_gentm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_i2d_fp.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_int.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_mbstr.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utctm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utf8.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_lib.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_par.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn_pack.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_enum.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_int.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_string.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_dec.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_enc.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_fre.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_new.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_typ.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_utl.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/asn1/time_support.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/base64/base64.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/bio.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/bio_mem.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/connect.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/fd.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/file.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/hexdump.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/pair.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bytestring/asn1_compat.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bytestring/ber.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbb.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbs.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/bytestring/unicode.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/chacha/chacha.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/cipher_extra.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/derive_key.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesccm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesctrhmac.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesgcmsiv.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_chacha20poly1305.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_null.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_rc2.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_rc4.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_tls.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/tls_cbc.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cmac/cmac.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/cpu-ppc64le.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/crypto.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/curve25519/curve25519.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/curve25519/spake25519.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/dh_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/params.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/digest_extra/digest_extra.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_derive.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/hash_to_curve.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/ecdh_extra/ecdh_extra.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/ecdsa_extra/ecdsa_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/engine/engine.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/err/err.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/digestsign.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/evp.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_ctx.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_dsa_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ec.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ec_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ed25519.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ed25519_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_rsa.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_rsa_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_x25519.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/p_x25519_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/pbkdf.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/print.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/scrypt.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/evp/sign.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.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/hpke/hpke.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/lhash/lhash.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/mem.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/obj/obj.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/obj/obj_xref.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_all.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_info.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_lib.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_oth.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pk8.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pkey.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_x509.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_xaux.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7_x509.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/p5_pbev2.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8_x509.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_vec.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/pool/pool.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/deterministic.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/forkunsafe.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/fuchsia.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/passive.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/rand_extra.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/windows.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rc4/rc4.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/refcount_c11.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/refcount_lock.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_asn1.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_print.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/siphash/siphash.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/stack/stack.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/thread.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/thread_none.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/thread_pthread.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/thread_win.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/trust_token/pmbtoken.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/trust_token/trust_token.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.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/algorithm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509a.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_att.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_cmp.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_d2.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_def.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_ext.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_lu.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_set.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_trs.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_txt.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_v3.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vfy.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vpm.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509cset.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509name.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509rset.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x509spki.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_algor.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_all.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_attrib.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_crl.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_exten.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_info.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_name.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pkey.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pubkey.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_req.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_sig.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_spki.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_val.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509a.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_cache.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_data.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_lib.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_map.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_node.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_tree.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akey.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akeya.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_alt.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bcons.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bitst.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_conf.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_cpols.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_crld.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_enum.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_extku.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_genn.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ia5.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_info.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_int.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_lib.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ncons.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ocsp.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pci.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcia.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcons.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pmaps.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_prn.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_purp.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_skey.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_utl.c"
|
||||
)
|
||||
|
||||
add_library(
|
||||
ssl
|
||||
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/bio_ssl.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/d1_both.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/d1_lib.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/d1_pkt.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/handshake_server.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/s3_both.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/s3_lib.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/s3_pkt.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_aead_ctx.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_asn1.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_buffer.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_cert.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_cipher.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_file.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_key_share.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_lib.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_privkey.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_session.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_stat.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_transcript.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.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_client.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/tls13_server.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/tls_method.cc
|
||||
${BORINGSSL_SOURCE_DIR}/ssl/tls_record.cc
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/bio_ssl.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/d1_both.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/d1_lib.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/d1_pkt.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/handshake_server.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/s3_both.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/s3_lib.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/s3_pkt.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_aead_ctx.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_asn1.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_buffer.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_cert.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_cipher.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_file.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_key_share.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_lib.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_privkey.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_session.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_stat.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_transcript.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.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_client.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls13_server.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls_method.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/ssl/tls_record.cc"
|
||||
|
||||
${BORINGSSL_SOURCE_DIR}/decrepit/ssl/ssl_decrepit.c
|
||||
${BORINGSSL_SOURCE_DIR}/decrepit/cfb/cfb.c
|
||||
"${BORINGSSL_SOURCE_DIR}/decrepit/ssl/ssl_decrepit.c"
|
||||
"${BORINGSSL_SOURCE_DIR}/decrepit/cfb/cfb.c"
|
||||
)
|
||||
|
||||
add_executable(
|
||||
bssl
|
||||
|
||||
${BORINGSSL_SOURCE_DIR}/tool/args.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/ciphers.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/client.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/const.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/digest.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/fd.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/file.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/rand.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/server.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/sign.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/speed.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/tool.cc
|
||||
${BORINGSSL_SOURCE_DIR}/tool/transport_common.cc
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/args.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/ciphers.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/client.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/const.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/digest.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/fd.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/file.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/rand.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/server.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/sign.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/speed.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/tool.cc"
|
||||
"${BORINGSSL_SOURCE_DIR}/tool/transport_common.cc"
|
||||
)
|
||||
|
||||
target_link_libraries(ssl crypto)
|
||||
@ -655,7 +655,7 @@ if(WIN32)
|
||||
target_link_libraries(bssl ws2_32)
|
||||
endif()
|
||||
|
||||
target_include_directories(crypto SYSTEM PUBLIC ${BORINGSSL_SOURCE_DIR}/include)
|
||||
target_include_directories(ssl SYSTEM PUBLIC ${BORINGSSL_SOURCE_DIR}/include)
|
||||
target_include_directories(crypto SYSTEM PUBLIC "${BORINGSSL_SOURCE_DIR}/include")
|
||||
target_include_directories(ssl SYSTEM PUBLIC "${BORINGSSL_SOURCE_DIR}/include")
|
||||
|
||||
target_compile_options(crypto PRIVATE -Wno-gnu-anonymous-struct)
|
||||
|
@ -1,41 +1,41 @@
|
||||
set(BROTLI_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/brotli/c)
|
||||
set(BROTLI_BINARY_DIR ${ClickHouse_BINARY_DIR}/contrib/brotli/c)
|
||||
set(BROTLI_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/brotli/c")
|
||||
set(BROTLI_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/brotli/c")
|
||||
|
||||
set(SRCS
|
||||
${BROTLI_SOURCE_DIR}/enc/command.c
|
||||
${BROTLI_SOURCE_DIR}/enc/fast_log.c
|
||||
${BROTLI_SOURCE_DIR}/dec/bit_reader.c
|
||||
${BROTLI_SOURCE_DIR}/dec/state.c
|
||||
${BROTLI_SOURCE_DIR}/dec/huffman.c
|
||||
${BROTLI_SOURCE_DIR}/dec/decode.c
|
||||
${BROTLI_SOURCE_DIR}/enc/encode.c
|
||||
${BROTLI_SOURCE_DIR}/enc/dictionary_hash.c
|
||||
${BROTLI_SOURCE_DIR}/enc/cluster.c
|
||||
${BROTLI_SOURCE_DIR}/enc/entropy_encode.c
|
||||
${BROTLI_SOURCE_DIR}/enc/literal_cost.c
|
||||
${BROTLI_SOURCE_DIR}/enc/compress_fragment_two_pass.c
|
||||
${BROTLI_SOURCE_DIR}/enc/static_dict.c
|
||||
${BROTLI_SOURCE_DIR}/enc/compress_fragment.c
|
||||
${BROTLI_SOURCE_DIR}/enc/block_splitter.c
|
||||
${BROTLI_SOURCE_DIR}/enc/backward_references_hq.c
|
||||
${BROTLI_SOURCE_DIR}/enc/histogram.c
|
||||
${BROTLI_SOURCE_DIR}/enc/brotli_bit_stream.c
|
||||
${BROTLI_SOURCE_DIR}/enc/utf8_util.c
|
||||
${BROTLI_SOURCE_DIR}/enc/encoder_dict.c
|
||||
${BROTLI_SOURCE_DIR}/enc/backward_references.c
|
||||
${BROTLI_SOURCE_DIR}/enc/bit_cost.c
|
||||
${BROTLI_SOURCE_DIR}/enc/metablock.c
|
||||
${BROTLI_SOURCE_DIR}/enc/memory.c
|
||||
${BROTLI_SOURCE_DIR}/common/dictionary.c
|
||||
${BROTLI_SOURCE_DIR}/common/transform.c
|
||||
${BROTLI_SOURCE_DIR}/common/platform.c
|
||||
${BROTLI_SOURCE_DIR}/common/context.c
|
||||
${BROTLI_SOURCE_DIR}/common/constants.c
|
||||
"${BROTLI_SOURCE_DIR}/enc/command.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/fast_log.c"
|
||||
"${BROTLI_SOURCE_DIR}/dec/bit_reader.c"
|
||||
"${BROTLI_SOURCE_DIR}/dec/state.c"
|
||||
"${BROTLI_SOURCE_DIR}/dec/huffman.c"
|
||||
"${BROTLI_SOURCE_DIR}/dec/decode.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/encode.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/dictionary_hash.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/cluster.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/entropy_encode.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/literal_cost.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/compress_fragment_two_pass.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/static_dict.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/compress_fragment.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/block_splitter.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/backward_references_hq.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/histogram.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/brotli_bit_stream.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/utf8_util.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/encoder_dict.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/backward_references.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/bit_cost.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/metablock.c"
|
||||
"${BROTLI_SOURCE_DIR}/enc/memory.c"
|
||||
"${BROTLI_SOURCE_DIR}/common/dictionary.c"
|
||||
"${BROTLI_SOURCE_DIR}/common/transform.c"
|
||||
"${BROTLI_SOURCE_DIR}/common/platform.c"
|
||||
"${BROTLI_SOURCE_DIR}/common/context.c"
|
||||
"${BROTLI_SOURCE_DIR}/common/constants.c"
|
||||
)
|
||||
|
||||
add_library(brotli ${SRCS})
|
||||
|
||||
target_include_directories(brotli PUBLIC ${BROTLI_SOURCE_DIR}/include)
|
||||
target_include_directories(brotli PUBLIC "${BROTLI_SOURCE_DIR}/include")
|
||||
|
||||
if(M_LIBRARY)
|
||||
target_link_libraries(brotli PRIVATE ${M_LIBRARY})
|
||||
|
@ -1,53 +1,53 @@
|
||||
set (CAPNPROTO_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/capnproto/c++/src)
|
||||
set (CAPNPROTO_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/capnproto/c++/src")
|
||||
|
||||
set (CMAKE_CXX_STANDARD 17)
|
||||
|
||||
set (KJ_SRCS
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/array.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/common.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/debug.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/exception.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/io.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/memory.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/mutex.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/string.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/hash.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/table.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/thread.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/main.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/arena.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/test-helpers.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/units.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/encoding.c++
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/array.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/common.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/debug.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/exception.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/io.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/memory.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/mutex.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/string.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/hash.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/table.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/thread.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/main.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/arena.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/test-helpers.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/units.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/encoding.c++"
|
||||
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/refcount.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/string-tree.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/time.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/filesystem.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-unix.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-win32.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/kj/parse/char.c++
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/refcount.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/string-tree.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/time.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/filesystem.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-unix.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-win32.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/kj/parse/char.c++"
|
||||
)
|
||||
|
||||
add_library(kj ${KJ_SRCS})
|
||||
target_include_directories(kj SYSTEM PUBLIC ${CAPNPROTO_SOURCE_DIR})
|
||||
|
||||
set (CAPNP_SRCS
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/c++.capnp.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/blob.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/arena.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/layout.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/list.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/any.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/message.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/schema.capnp.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/serialize.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/serialize-packed.c++
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/c++.capnp.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/blob.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/arena.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/layout.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/list.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/any.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/message.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema.capnp.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/serialize.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/serialize-packed.c++"
|
||||
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/schema.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/schema-loader.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/dynamic.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/stringify.c++
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema-loader.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/dynamic.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/stringify.c++"
|
||||
)
|
||||
|
||||
add_library(capnp ${CAPNP_SRCS})
|
||||
@ -57,16 +57,16 @@ set_target_properties(capnp
|
||||
target_link_libraries(capnp PUBLIC kj)
|
||||
|
||||
set (CAPNPC_SRCS
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/type-id.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/error-reporter.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.capnp.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/grammar.capnp.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/parser.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/node-translator.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/compiler.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/schema-parser.c++
|
||||
${CAPNPROTO_SOURCE_DIR}/capnp/serialize-text.c++
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/type-id.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/error-reporter.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.capnp.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/grammar.capnp.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/parser.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/node-translator.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/compiler/compiler.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/schema-parser.c++"
|
||||
"${CAPNPROTO_SOURCE_DIR}/capnp/serialize-text.c++"
|
||||
)
|
||||
|
||||
add_library(capnpc ${CAPNPC_SRCS})
|
||||
|
@ -40,23 +40,23 @@ endif()
|
||||
|
||||
if (NOT EXTERNAL_CCTZ_LIBRARY_FOUND OR NOT EXTERNAL_CCTZ_LIBRARY_WORKS)
|
||||
set(USE_INTERNAL_CCTZ_LIBRARY 1)
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/cctz)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/cctz")
|
||||
|
||||
set (SRCS
|
||||
${LIBRARY_DIR}/src/civil_time_detail.cc
|
||||
${LIBRARY_DIR}/src/time_zone_fixed.cc
|
||||
${LIBRARY_DIR}/src/time_zone_format.cc
|
||||
${LIBRARY_DIR}/src/time_zone_if.cc
|
||||
${LIBRARY_DIR}/src/time_zone_impl.cc
|
||||
${LIBRARY_DIR}/src/time_zone_info.cc
|
||||
${LIBRARY_DIR}/src/time_zone_libc.cc
|
||||
${LIBRARY_DIR}/src/time_zone_lookup.cc
|
||||
${LIBRARY_DIR}/src/time_zone_posix.cc
|
||||
${LIBRARY_DIR}/src/zone_info_source.cc
|
||||
"${LIBRARY_DIR}/src/civil_time_detail.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_fixed.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_format.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_if.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_impl.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_info.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_libc.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_lookup.cc"
|
||||
"${LIBRARY_DIR}/src/time_zone_posix.cc"
|
||||
"${LIBRARY_DIR}/src/zone_info_source.cc"
|
||||
)
|
||||
|
||||
add_library (cctz ${SRCS})
|
||||
target_include_directories (cctz PUBLIC ${LIBRARY_DIR}/include)
|
||||
target_include_directories (cctz PUBLIC "${LIBRARY_DIR}/include")
|
||||
|
||||
if (OS_FREEBSD)
|
||||
# yes, need linux, because bsd check inside linux in time_zone_libc.cc:24
|
||||
@ -73,8 +73,8 @@ if (NOT EXTERNAL_CCTZ_LIBRARY_FOUND OR NOT EXTERNAL_CCTZ_LIBRARY_WORKS)
|
||||
# Build a libray with embedded tzdata
|
||||
if (OS_LINUX)
|
||||
# get the list of timezones from tzdata shipped with cctz
|
||||
set(TZDIR ${LIBRARY_DIR}/testdata/zoneinfo)
|
||||
file(STRINGS ${LIBRARY_DIR}/testdata/version TZDATA_VERSION)
|
||||
set(TZDIR "${LIBRARY_DIR}/testdata/zoneinfo")
|
||||
file(STRINGS "${LIBRARY_DIR}/testdata/version" TZDATA_VERSION)
|
||||
set_property(GLOBAL PROPERTY TZDATA_VERSION_PROP "${TZDATA_VERSION}")
|
||||
message(STATUS "Packaging with tzdata version: ${TZDATA_VERSION}")
|
||||
|
||||
@ -100,15 +100,15 @@ if (NOT EXTERNAL_CCTZ_LIBRARY_FOUND OR NOT EXTERNAL_CCTZ_LIBRARY_WORKS)
|
||||
# PPC64LE fails to do this with objcopy, use ld or lld instead
|
||||
if (ARCH_PPC64LE)
|
||||
add_custom_command(OUTPUT ${TZ_OBJ}
|
||||
COMMAND cp ${TZDIR}/${TIMEZONE} ${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID}
|
||||
COMMAND cp "${TZDIR}/${TIMEZONE}" "${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID}"
|
||||
COMMAND cd ${CMAKE_CURRENT_BINARY_DIR} && ${CMAKE_LINKER} -m elf64lppc -r -b binary -o ${TZ_OBJ} ${TIMEZONE_ID}
|
||||
COMMAND rm ${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID})
|
||||
COMMAND rm "${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID}")
|
||||
else()
|
||||
add_custom_command(OUTPUT ${TZ_OBJ}
|
||||
COMMAND cp ${TZDIR}/${TIMEZONE} ${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID}
|
||||
COMMAND cp "${TZDIR}/${TIMEZONE}" "${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID}"
|
||||
COMMAND cd ${CMAKE_CURRENT_BINARY_DIR} && ${OBJCOPY_PATH} -I binary ${OBJCOPY_ARCH_OPTIONS}
|
||||
--rename-section .data=.rodata,alloc,load,readonly,data,contents ${TIMEZONE_ID} ${TZ_OBJ}
|
||||
COMMAND rm ${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID})
|
||||
COMMAND rm "${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID}")
|
||||
endif()
|
||||
set_source_files_properties(${TZ_OBJ} PROPERTIES EXTERNAL_OBJECT true GENERATED true)
|
||||
endforeach(TIMEZONE)
|
||||
|
2
contrib/cppkafka
vendored
2
contrib/cppkafka
vendored
@ -1 +1 @@
|
||||
Subproject commit b06e64ef5bffd636d918a742c689f69130c1dbab
|
||||
Subproject commit 57a599d99c540e647bcd0eb9ea77c523cca011b3
|
@ -1,25 +1,25 @@
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/cppkafka)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/cppkafka")
|
||||
|
||||
set(SRCS
|
||||
${LIBRARY_DIR}/src/buffer.cpp
|
||||
${LIBRARY_DIR}/src/configuration_option.cpp
|
||||
${LIBRARY_DIR}/src/configuration.cpp
|
||||
${LIBRARY_DIR}/src/consumer.cpp
|
||||
${LIBRARY_DIR}/src/error.cpp
|
||||
${LIBRARY_DIR}/src/event.cpp
|
||||
${LIBRARY_DIR}/src/exceptions.cpp
|
||||
${LIBRARY_DIR}/src/group_information.cpp
|
||||
${LIBRARY_DIR}/src/kafka_handle_base.cpp
|
||||
${LIBRARY_DIR}/src/message_internal.cpp
|
||||
${LIBRARY_DIR}/src/message_timestamp.cpp
|
||||
${LIBRARY_DIR}/src/message.cpp
|
||||
${LIBRARY_DIR}/src/metadata.cpp
|
||||
${LIBRARY_DIR}/src/producer.cpp
|
||||
${LIBRARY_DIR}/src/queue.cpp
|
||||
${LIBRARY_DIR}/src/topic_configuration.cpp
|
||||
${LIBRARY_DIR}/src/topic_partition_list.cpp
|
||||
${LIBRARY_DIR}/src/topic_partition.cpp
|
||||
${LIBRARY_DIR}/src/topic.cpp
|
||||
"${LIBRARY_DIR}/src/buffer.cpp"
|
||||
"${LIBRARY_DIR}/src/configuration_option.cpp"
|
||||
"${LIBRARY_DIR}/src/configuration.cpp"
|
||||
"${LIBRARY_DIR}/src/consumer.cpp"
|
||||
"${LIBRARY_DIR}/src/error.cpp"
|
||||
"${LIBRARY_DIR}/src/event.cpp"
|
||||
"${LIBRARY_DIR}/src/exceptions.cpp"
|
||||
"${LIBRARY_DIR}/src/group_information.cpp"
|
||||
"${LIBRARY_DIR}/src/kafka_handle_base.cpp"
|
||||
"${LIBRARY_DIR}/src/message_internal.cpp"
|
||||
"${LIBRARY_DIR}/src/message_timestamp.cpp"
|
||||
"${LIBRARY_DIR}/src/message.cpp"
|
||||
"${LIBRARY_DIR}/src/metadata.cpp"
|
||||
"${LIBRARY_DIR}/src/producer.cpp"
|
||||
"${LIBRARY_DIR}/src/queue.cpp"
|
||||
"${LIBRARY_DIR}/src/topic_configuration.cpp"
|
||||
"${LIBRARY_DIR}/src/topic_partition_list.cpp"
|
||||
"${LIBRARY_DIR}/src/topic_partition.cpp"
|
||||
"${LIBRARY_DIR}/src/topic.cpp"
|
||||
)
|
||||
|
||||
add_library(cppkafka ${SRCS})
|
||||
@ -29,5 +29,5 @@ target_link_libraries(cppkafka
|
||||
${RDKAFKA_LIBRARY}
|
||||
boost::headers_only
|
||||
)
|
||||
target_include_directories(cppkafka PRIVATE ${LIBRARY_DIR}/include/cppkafka)
|
||||
target_include_directories(cppkafka SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}/include)
|
||||
target_include_directories(cppkafka PRIVATE "${LIBRARY_DIR}/include/cppkafka")
|
||||
target_include_directories(cppkafka SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}/include")
|
||||
|
@ -1,26 +1,26 @@
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/croaring)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/croaring")
|
||||
|
||||
set(SRCS
|
||||
${LIBRARY_DIR}/src/array_util.c
|
||||
${LIBRARY_DIR}/src/bitset_util.c
|
||||
${LIBRARY_DIR}/src/containers/array.c
|
||||
${LIBRARY_DIR}/src/containers/bitset.c
|
||||
${LIBRARY_DIR}/src/containers/containers.c
|
||||
${LIBRARY_DIR}/src/containers/convert.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_intersection.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_union.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_equal.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_subset.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_negation.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_xor.c
|
||||
${LIBRARY_DIR}/src/containers/mixed_andnot.c
|
||||
${LIBRARY_DIR}/src/containers/run.c
|
||||
${LIBRARY_DIR}/src/roaring.c
|
||||
${LIBRARY_DIR}/src/roaring_priority_queue.c
|
||||
${LIBRARY_DIR}/src/roaring_array.c)
|
||||
"${LIBRARY_DIR}/src/array_util.c"
|
||||
"${LIBRARY_DIR}/src/bitset_util.c"
|
||||
"${LIBRARY_DIR}/src/containers/array.c"
|
||||
"${LIBRARY_DIR}/src/containers/bitset.c"
|
||||
"${LIBRARY_DIR}/src/containers/containers.c"
|
||||
"${LIBRARY_DIR}/src/containers/convert.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_intersection.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_union.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_equal.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_subset.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_negation.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_xor.c"
|
||||
"${LIBRARY_DIR}/src/containers/mixed_andnot.c"
|
||||
"${LIBRARY_DIR}/src/containers/run.c"
|
||||
"${LIBRARY_DIR}/src/roaring.c"
|
||||
"${LIBRARY_DIR}/src/roaring_priority_queue.c"
|
||||
"${LIBRARY_DIR}/src/roaring_array.c")
|
||||
|
||||
add_library(roaring ${SRCS})
|
||||
|
||||
target_include_directories(roaring PRIVATE ${LIBRARY_DIR}/include/roaring)
|
||||
target_include_directories(roaring SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}/include)
|
||||
target_include_directories(roaring SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}/cpp)
|
||||
target_include_directories(roaring PRIVATE "${LIBRARY_DIR}/include/roaring")
|
||||
target_include_directories(roaring SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}/include")
|
||||
target_include_directories(roaring SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}/cpp")
|
||||
|
@ -5,143 +5,143 @@ endif()
|
||||
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/curl")
|
||||
|
||||
set (SRCS
|
||||
${LIBRARY_DIR}/lib/file.c
|
||||
${LIBRARY_DIR}/lib/timeval.c
|
||||
${LIBRARY_DIR}/lib/base64.c
|
||||
${LIBRARY_DIR}/lib/hostip.c
|
||||
${LIBRARY_DIR}/lib/progress.c
|
||||
${LIBRARY_DIR}/lib/formdata.c
|
||||
${LIBRARY_DIR}/lib/cookie.c
|
||||
${LIBRARY_DIR}/lib/http.c
|
||||
${LIBRARY_DIR}/lib/sendf.c
|
||||
${LIBRARY_DIR}/lib/url.c
|
||||
${LIBRARY_DIR}/lib/dict.c
|
||||
${LIBRARY_DIR}/lib/if2ip.c
|
||||
${LIBRARY_DIR}/lib/speedcheck.c
|
||||
${LIBRARY_DIR}/lib/ldap.c
|
||||
${LIBRARY_DIR}/lib/version.c
|
||||
${LIBRARY_DIR}/lib/getenv.c
|
||||
${LIBRARY_DIR}/lib/escape.c
|
||||
${LIBRARY_DIR}/lib/mprintf.c
|
||||
${LIBRARY_DIR}/lib/telnet.c
|
||||
${LIBRARY_DIR}/lib/netrc.c
|
||||
${LIBRARY_DIR}/lib/getinfo.c
|
||||
${LIBRARY_DIR}/lib/transfer.c
|
||||
${LIBRARY_DIR}/lib/strcase.c
|
||||
${LIBRARY_DIR}/lib/easy.c
|
||||
${LIBRARY_DIR}/lib/security.c
|
||||
${LIBRARY_DIR}/lib/curl_fnmatch.c
|
||||
${LIBRARY_DIR}/lib/fileinfo.c
|
||||
${LIBRARY_DIR}/lib/wildcard.c
|
||||
${LIBRARY_DIR}/lib/krb5.c
|
||||
${LIBRARY_DIR}/lib/memdebug.c
|
||||
${LIBRARY_DIR}/lib/http_chunks.c
|
||||
${LIBRARY_DIR}/lib/strtok.c
|
||||
${LIBRARY_DIR}/lib/connect.c
|
||||
${LIBRARY_DIR}/lib/llist.c
|
||||
${LIBRARY_DIR}/lib/hash.c
|
||||
${LIBRARY_DIR}/lib/multi.c
|
||||
${LIBRARY_DIR}/lib/content_encoding.c
|
||||
${LIBRARY_DIR}/lib/share.c
|
||||
${LIBRARY_DIR}/lib/http_digest.c
|
||||
${LIBRARY_DIR}/lib/md4.c
|
||||
${LIBRARY_DIR}/lib/md5.c
|
||||
${LIBRARY_DIR}/lib/http_negotiate.c
|
||||
${LIBRARY_DIR}/lib/inet_pton.c
|
||||
${LIBRARY_DIR}/lib/strtoofft.c
|
||||
${LIBRARY_DIR}/lib/strerror.c
|
||||
${LIBRARY_DIR}/lib/amigaos.c
|
||||
${LIBRARY_DIR}/lib/hostasyn.c
|
||||
${LIBRARY_DIR}/lib/hostip4.c
|
||||
${LIBRARY_DIR}/lib/hostip6.c
|
||||
${LIBRARY_DIR}/lib/hostsyn.c
|
||||
${LIBRARY_DIR}/lib/inet_ntop.c
|
||||
${LIBRARY_DIR}/lib/parsedate.c
|
||||
${LIBRARY_DIR}/lib/select.c
|
||||
${LIBRARY_DIR}/lib/splay.c
|
||||
${LIBRARY_DIR}/lib/strdup.c
|
||||
${LIBRARY_DIR}/lib/socks.c
|
||||
${LIBRARY_DIR}/lib/curl_addrinfo.c
|
||||
${LIBRARY_DIR}/lib/socks_gssapi.c
|
||||
${LIBRARY_DIR}/lib/socks_sspi.c
|
||||
${LIBRARY_DIR}/lib/curl_sspi.c
|
||||
${LIBRARY_DIR}/lib/slist.c
|
||||
${LIBRARY_DIR}/lib/nonblock.c
|
||||
${LIBRARY_DIR}/lib/curl_memrchr.c
|
||||
${LIBRARY_DIR}/lib/imap.c
|
||||
${LIBRARY_DIR}/lib/pop3.c
|
||||
${LIBRARY_DIR}/lib/smtp.c
|
||||
${LIBRARY_DIR}/lib/pingpong.c
|
||||
${LIBRARY_DIR}/lib/rtsp.c
|
||||
${LIBRARY_DIR}/lib/curl_threads.c
|
||||
${LIBRARY_DIR}/lib/warnless.c
|
||||
${LIBRARY_DIR}/lib/hmac.c
|
||||
${LIBRARY_DIR}/lib/curl_rtmp.c
|
||||
${LIBRARY_DIR}/lib/openldap.c
|
||||
${LIBRARY_DIR}/lib/curl_gethostname.c
|
||||
${LIBRARY_DIR}/lib/gopher.c
|
||||
${LIBRARY_DIR}/lib/idn_win32.c
|
||||
${LIBRARY_DIR}/lib/http_proxy.c
|
||||
${LIBRARY_DIR}/lib/non-ascii.c
|
||||
${LIBRARY_DIR}/lib/asyn-thread.c
|
||||
${LIBRARY_DIR}/lib/curl_gssapi.c
|
||||
${LIBRARY_DIR}/lib/http_ntlm.c
|
||||
${LIBRARY_DIR}/lib/curl_ntlm_wb.c
|
||||
${LIBRARY_DIR}/lib/curl_ntlm_core.c
|
||||
${LIBRARY_DIR}/lib/curl_sasl.c
|
||||
${LIBRARY_DIR}/lib/rand.c
|
||||
${LIBRARY_DIR}/lib/curl_multibyte.c
|
||||
${LIBRARY_DIR}/lib/hostcheck.c
|
||||
${LIBRARY_DIR}/lib/conncache.c
|
||||
${LIBRARY_DIR}/lib/dotdot.c
|
||||
${LIBRARY_DIR}/lib/x509asn1.c
|
||||
${LIBRARY_DIR}/lib/http2.c
|
||||
${LIBRARY_DIR}/lib/smb.c
|
||||
${LIBRARY_DIR}/lib/curl_endian.c
|
||||
${LIBRARY_DIR}/lib/curl_des.c
|
||||
${LIBRARY_DIR}/lib/system_win32.c
|
||||
${LIBRARY_DIR}/lib/mime.c
|
||||
${LIBRARY_DIR}/lib/sha256.c
|
||||
${LIBRARY_DIR}/lib/setopt.c
|
||||
${LIBRARY_DIR}/lib/curl_path.c
|
||||
${LIBRARY_DIR}/lib/curl_ctype.c
|
||||
${LIBRARY_DIR}/lib/curl_range.c
|
||||
${LIBRARY_DIR}/lib/psl.c
|
||||
${LIBRARY_DIR}/lib/doh.c
|
||||
${LIBRARY_DIR}/lib/urlapi.c
|
||||
${LIBRARY_DIR}/lib/curl_get_line.c
|
||||
${LIBRARY_DIR}/lib/altsvc.c
|
||||
${LIBRARY_DIR}/lib/socketpair.c
|
||||
${LIBRARY_DIR}/lib/vauth/vauth.c
|
||||
${LIBRARY_DIR}/lib/vauth/cleartext.c
|
||||
${LIBRARY_DIR}/lib/vauth/cram.c
|
||||
${LIBRARY_DIR}/lib/vauth/digest.c
|
||||
${LIBRARY_DIR}/lib/vauth/digest_sspi.c
|
||||
${LIBRARY_DIR}/lib/vauth/krb5_gssapi.c
|
||||
${LIBRARY_DIR}/lib/vauth/krb5_sspi.c
|
||||
${LIBRARY_DIR}/lib/vauth/ntlm.c
|
||||
${LIBRARY_DIR}/lib/vauth/ntlm_sspi.c
|
||||
${LIBRARY_DIR}/lib/vauth/oauth2.c
|
||||
${LIBRARY_DIR}/lib/vauth/spnego_gssapi.c
|
||||
${LIBRARY_DIR}/lib/vauth/spnego_sspi.c
|
||||
${LIBRARY_DIR}/lib/vtls/openssl.c
|
||||
${LIBRARY_DIR}/lib/vtls/gtls.c
|
||||
${LIBRARY_DIR}/lib/vtls/vtls.c
|
||||
${LIBRARY_DIR}/lib/vtls/nss.c
|
||||
${LIBRARY_DIR}/lib/vtls/polarssl.c
|
||||
${LIBRARY_DIR}/lib/vtls/polarssl_threadlock.c
|
||||
${LIBRARY_DIR}/lib/vtls/wolfssl.c
|
||||
${LIBRARY_DIR}/lib/vtls/schannel.c
|
||||
${LIBRARY_DIR}/lib/vtls/schannel_verify.c
|
||||
${LIBRARY_DIR}/lib/vtls/sectransp.c
|
||||
${LIBRARY_DIR}/lib/vtls/gskit.c
|
||||
${LIBRARY_DIR}/lib/vtls/mbedtls.c
|
||||
${LIBRARY_DIR}/lib/vtls/mesalink.c
|
||||
${LIBRARY_DIR}/lib/vtls/bearssl.c
|
||||
${LIBRARY_DIR}/lib/vquic/ngtcp2.c
|
||||
${LIBRARY_DIR}/lib/vquic/quiche.c
|
||||
${LIBRARY_DIR}/lib/vssh/libssh2.c
|
||||
${LIBRARY_DIR}/lib/vssh/libssh.c
|
||||
"${LIBRARY_DIR}/lib/file.c"
|
||||
"${LIBRARY_DIR}/lib/timeval.c"
|
||||
"${LIBRARY_DIR}/lib/base64.c"
|
||||
"${LIBRARY_DIR}/lib/hostip.c"
|
||||
"${LIBRARY_DIR}/lib/progress.c"
|
||||
"${LIBRARY_DIR}/lib/formdata.c"
|
||||
"${LIBRARY_DIR}/lib/cookie.c"
|
||||
"${LIBRARY_DIR}/lib/http.c"
|
||||
"${LIBRARY_DIR}/lib/sendf.c"
|
||||
"${LIBRARY_DIR}/lib/url.c"
|
||||
"${LIBRARY_DIR}/lib/dict.c"
|
||||
"${LIBRARY_DIR}/lib/if2ip.c"
|
||||
"${LIBRARY_DIR}/lib/speedcheck.c"
|
||||
"${LIBRARY_DIR}/lib/ldap.c"
|
||||
"${LIBRARY_DIR}/lib/version.c"
|
||||
"${LIBRARY_DIR}/lib/getenv.c"
|
||||
"${LIBRARY_DIR}/lib/escape.c"
|
||||
"${LIBRARY_DIR}/lib/mprintf.c"
|
||||
"${LIBRARY_DIR}/lib/telnet.c"
|
||||
"${LIBRARY_DIR}/lib/netrc.c"
|
||||
"${LIBRARY_DIR}/lib/getinfo.c"
|
||||
"${LIBRARY_DIR}/lib/transfer.c"
|
||||
"${LIBRARY_DIR}/lib/strcase.c"
|
||||
"${LIBRARY_DIR}/lib/easy.c"
|
||||
"${LIBRARY_DIR}/lib/security.c"
|
||||
"${LIBRARY_DIR}/lib/curl_fnmatch.c"
|
||||
"${LIBRARY_DIR}/lib/fileinfo.c"
|
||||
"${LIBRARY_DIR}/lib/wildcard.c"
|
||||
"${LIBRARY_DIR}/lib/krb5.c"
|
||||
"${LIBRARY_DIR}/lib/memdebug.c"
|
||||
"${LIBRARY_DIR}/lib/http_chunks.c"
|
||||
"${LIBRARY_DIR}/lib/strtok.c"
|
||||
"${LIBRARY_DIR}/lib/connect.c"
|
||||
"${LIBRARY_DIR}/lib/llist.c"
|
||||
"${LIBRARY_DIR}/lib/hash.c"
|
||||
"${LIBRARY_DIR}/lib/multi.c"
|
||||
"${LIBRARY_DIR}/lib/content_encoding.c"
|
||||
"${LIBRARY_DIR}/lib/share.c"
|
||||
"${LIBRARY_DIR}/lib/http_digest.c"
|
||||
"${LIBRARY_DIR}/lib/md4.c"
|
||||
"${LIBRARY_DIR}/lib/md5.c"
|
||||
"${LIBRARY_DIR}/lib/http_negotiate.c"
|
||||
"${LIBRARY_DIR}/lib/inet_pton.c"
|
||||
"${LIBRARY_DIR}/lib/strtoofft.c"
|
||||
"${LIBRARY_DIR}/lib/strerror.c"
|
||||
"${LIBRARY_DIR}/lib/amigaos.c"
|
||||
"${LIBRARY_DIR}/lib/hostasyn.c"
|
||||
"${LIBRARY_DIR}/lib/hostip4.c"
|
||||
"${LIBRARY_DIR}/lib/hostip6.c"
|
||||
"${LIBRARY_DIR}/lib/hostsyn.c"
|
||||
"${LIBRARY_DIR}/lib/inet_ntop.c"
|
||||
"${LIBRARY_DIR}/lib/parsedate.c"
|
||||
"${LIBRARY_DIR}/lib/select.c"
|
||||
"${LIBRARY_DIR}/lib/splay.c"
|
||||
"${LIBRARY_DIR}/lib/strdup.c"
|
||||
"${LIBRARY_DIR}/lib/socks.c"
|
||||
"${LIBRARY_DIR}/lib/curl_addrinfo.c"
|
||||
"${LIBRARY_DIR}/lib/socks_gssapi.c"
|
||||
"${LIBRARY_DIR}/lib/socks_sspi.c"
|
||||
"${LIBRARY_DIR}/lib/curl_sspi.c"
|
||||
"${LIBRARY_DIR}/lib/slist.c"
|
||||
"${LIBRARY_DIR}/lib/nonblock.c"
|
||||
"${LIBRARY_DIR}/lib/curl_memrchr.c"
|
||||
"${LIBRARY_DIR}/lib/imap.c"
|
||||
"${LIBRARY_DIR}/lib/pop3.c"
|
||||
"${LIBRARY_DIR}/lib/smtp.c"
|
||||
"${LIBRARY_DIR}/lib/pingpong.c"
|
||||
"${LIBRARY_DIR}/lib/rtsp.c"
|
||||
"${LIBRARY_DIR}/lib/curl_threads.c"
|
||||
"${LIBRARY_DIR}/lib/warnless.c"
|
||||
"${LIBRARY_DIR}/lib/hmac.c"
|
||||
"${LIBRARY_DIR}/lib/curl_rtmp.c"
|
||||
"${LIBRARY_DIR}/lib/openldap.c"
|
||||
"${LIBRARY_DIR}/lib/curl_gethostname.c"
|
||||
"${LIBRARY_DIR}/lib/gopher.c"
|
||||
"${LIBRARY_DIR}/lib/idn_win32.c"
|
||||
"${LIBRARY_DIR}/lib/http_proxy.c"
|
||||
"${LIBRARY_DIR}/lib/non-ascii.c"
|
||||
"${LIBRARY_DIR}/lib/asyn-thread.c"
|
||||
"${LIBRARY_DIR}/lib/curl_gssapi.c"
|
||||
"${LIBRARY_DIR}/lib/http_ntlm.c"
|
||||
"${LIBRARY_DIR}/lib/curl_ntlm_wb.c"
|
||||
"${LIBRARY_DIR}/lib/curl_ntlm_core.c"
|
||||
"${LIBRARY_DIR}/lib/curl_sasl.c"
|
||||
"${LIBRARY_DIR}/lib/rand.c"
|
||||
"${LIBRARY_DIR}/lib/curl_multibyte.c"
|
||||
"${LIBRARY_DIR}/lib/hostcheck.c"
|
||||
"${LIBRARY_DIR}/lib/conncache.c"
|
||||
"${LIBRARY_DIR}/lib/dotdot.c"
|
||||
"${LIBRARY_DIR}/lib/x509asn1.c"
|
||||
"${LIBRARY_DIR}/lib/http2.c"
|
||||
"${LIBRARY_DIR}/lib/smb.c"
|
||||
"${LIBRARY_DIR}/lib/curl_endian.c"
|
||||
"${LIBRARY_DIR}/lib/curl_des.c"
|
||||
"${LIBRARY_DIR}/lib/system_win32.c"
|
||||
"${LIBRARY_DIR}/lib/mime.c"
|
||||
"${LIBRARY_DIR}/lib/sha256.c"
|
||||
"${LIBRARY_DIR}/lib/setopt.c"
|
||||
"${LIBRARY_DIR}/lib/curl_path.c"
|
||||
"${LIBRARY_DIR}/lib/curl_ctype.c"
|
||||
"${LIBRARY_DIR}/lib/curl_range.c"
|
||||
"${LIBRARY_DIR}/lib/psl.c"
|
||||
"${LIBRARY_DIR}/lib/doh.c"
|
||||
"${LIBRARY_DIR}/lib/urlapi.c"
|
||||
"${LIBRARY_DIR}/lib/curl_get_line.c"
|
||||
"${LIBRARY_DIR}/lib/altsvc.c"
|
||||
"${LIBRARY_DIR}/lib/socketpair.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/vauth.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/cleartext.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/cram.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/digest.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/digest_sspi.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/krb5_gssapi.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/krb5_sspi.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/ntlm.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/ntlm_sspi.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/oauth2.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/spnego_gssapi.c"
|
||||
"${LIBRARY_DIR}/lib/vauth/spnego_sspi.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/openssl.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/gtls.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/vtls.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/nss.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/polarssl.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/polarssl_threadlock.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/wolfssl.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/schannel.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/schannel_verify.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/sectransp.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/gskit.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/mbedtls.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/mesalink.c"
|
||||
"${LIBRARY_DIR}/lib/vtls/bearssl.c"
|
||||
"${LIBRARY_DIR}/lib/vquic/ngtcp2.c"
|
||||
"${LIBRARY_DIR}/lib/vquic/quiche.c"
|
||||
"${LIBRARY_DIR}/lib/vssh/libssh2.c"
|
||||
"${LIBRARY_DIR}/lib/vssh/libssh.c"
|
||||
)
|
||||
|
||||
add_library (curl ${SRCS})
|
||||
@ -154,8 +154,8 @@ target_compile_definitions (curl PRIVATE
|
||||
OS="${CMAKE_SYSTEM_NAME}"
|
||||
)
|
||||
target_include_directories (curl PUBLIC
|
||||
${LIBRARY_DIR}/include
|
||||
${LIBRARY_DIR}/lib
|
||||
"${LIBRARY_DIR}/include"
|
||||
"${LIBRARY_DIR}/lib"
|
||||
. # curl_config.h
|
||||
)
|
||||
|
||||
@ -171,8 +171,8 @@ target_compile_options (curl PRIVATE -g0)
|
||||
# - sentry-native
|
||||
set (CURL_FOUND ON CACHE BOOL "")
|
||||
set (CURL_ROOT_DIR ${LIBRARY_DIR} CACHE PATH "")
|
||||
set (CURL_INCLUDE_DIR ${LIBRARY_DIR}/include CACHE PATH "")
|
||||
set (CURL_INCLUDE_DIRS ${LIBRARY_DIR}/include CACHE PATH "")
|
||||
set (CURL_INCLUDE_DIR "${LIBRARY_DIR}/include" CACHE PATH "")
|
||||
set (CURL_INCLUDE_DIRS "${LIBRARY_DIR}/include" CACHE PATH "")
|
||||
set (CURL_LIBRARY curl CACHE STRING "")
|
||||
set (CURL_LIBRARIES ${CURL_LIBRARY} CACHE STRING "")
|
||||
set (CURL_VERSION_STRING 7.67.0 CACHE STRING "")
|
||||
|
2
contrib/cyrus-sasl
vendored
2
contrib/cyrus-sasl
vendored
@ -1 +1 @@
|
||||
Subproject commit 9995bf9d8e14f58934d9313ac64f13780d6dd3c9
|
||||
Subproject commit e6466edfd638cc5073debe941c53345b18a09512
|
@ -1,23 +1,23 @@
|
||||
set(CYRUS_SASL_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl)
|
||||
set(CYRUS_SASL_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/cyrus-sasl")
|
||||
|
||||
add_library(${CYRUS_SASL_LIBRARY})
|
||||
|
||||
target_sources(${CYRUS_SASL_LIBRARY} PRIVATE
|
||||
${CYRUS_SASL_SOURCE_DIR}/plugins/gssapi.c
|
||||
# ${CYRUS_SASL_SOURCE_DIR}/plugins/gssapiv2_init.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/common/plugin_common.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/common.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/canonusr.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/server.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/config.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/auxprop.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/saslutil.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/external.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/seterror.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/md5.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/dlopen.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/client.c
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib/checkpw.c
|
||||
"${CYRUS_SASL_SOURCE_DIR}/plugins/gssapi.c"
|
||||
# "${CYRUS_SASL_SOURCE_DIR}/plugins/gssapiv2_init.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/common/plugin_common.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/common.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/canonusr.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/server.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/config.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/auxprop.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/saslutil.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/external.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/seterror.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/md5.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/dlopen.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/client.c"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib/checkpw.c"
|
||||
)
|
||||
|
||||
target_include_directories(${CYRUS_SASL_LIBRARY} PUBLIC
|
||||
@ -26,16 +26,16 @@ target_include_directories(${CYRUS_SASL_LIBRARY} PUBLIC
|
||||
|
||||
target_include_directories(${CYRUS_SASL_LIBRARY} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR} # for config.h
|
||||
${CYRUS_SASL_SOURCE_DIR}/plugins
|
||||
"${CYRUS_SASL_SOURCE_DIR}/plugins"
|
||||
${CYRUS_SASL_SOURCE_DIR}
|
||||
${CYRUS_SASL_SOURCE_DIR}/include
|
||||
${CYRUS_SASL_SOURCE_DIR}/lib
|
||||
${CYRUS_SASL_SOURCE_DIR}/sasldb
|
||||
${CYRUS_SASL_SOURCE_DIR}/common
|
||||
${CYRUS_SASL_SOURCE_DIR}/saslauthd
|
||||
${CYRUS_SASL_SOURCE_DIR}/sample
|
||||
${CYRUS_SASL_SOURCE_DIR}/utils
|
||||
${CYRUS_SASL_SOURCE_DIR}/tests
|
||||
"${CYRUS_SASL_SOURCE_DIR}/include"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/lib"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/sasldb"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/common"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/saslauthd"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/sample"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/utils"
|
||||
"${CYRUS_SASL_SOURCE_DIR}/tests"
|
||||
)
|
||||
|
||||
target_compile_definitions(${CYRUS_SASL_LIBRARY} PUBLIC
|
||||
@ -52,15 +52,15 @@ target_compile_definitions(${CYRUS_SASL_LIBRARY} PUBLIC
|
||||
LIBSASL_EXPORTS=1
|
||||
)
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/sasl)
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/sasl")
|
||||
|
||||
file(COPY
|
||||
${CYRUS_SASL_SOURCE_DIR}/include/sasl.h
|
||||
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sasl
|
||||
"${CYRUS_SASL_SOURCE_DIR}/include/sasl.h"
|
||||
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/sasl"
|
||||
)
|
||||
|
||||
file(COPY
|
||||
${CYRUS_SASL_SOURCE_DIR}/include/prop.h
|
||||
"${CYRUS_SASL_SOURCE_DIR}/include/prop.h"
|
||||
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
|
2
contrib/datasketches-cpp
vendored
2
contrib/datasketches-cpp
vendored
@ -1 +1 @@
|
||||
Subproject commit f915d35b2de676683493c86c585141a1e1c83334
|
||||
Subproject commit 7d73d7610db31d4e1ecde0fb3a7ee90ef371207f
|
@ -1,13 +1,13 @@
|
||||
SET(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/double-conversion)
|
||||
SET(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/double-conversion")
|
||||
|
||||
add_library(double-conversion
|
||||
${LIBRARY_DIR}/double-conversion/bignum.cc
|
||||
${LIBRARY_DIR}/double-conversion/bignum-dtoa.cc
|
||||
${LIBRARY_DIR}/double-conversion/cached-powers.cc
|
||||
${LIBRARY_DIR}/double-conversion/diy-fp.cc
|
||||
${LIBRARY_DIR}/double-conversion/double-conversion.cc
|
||||
${LIBRARY_DIR}/double-conversion/fast-dtoa.cc
|
||||
${LIBRARY_DIR}/double-conversion/fixed-dtoa.cc
|
||||
${LIBRARY_DIR}/double-conversion/strtod.cc)
|
||||
"${LIBRARY_DIR}/double-conversion/bignum.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/bignum-dtoa.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/cached-powers.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/diy-fp.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/double-conversion.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/fast-dtoa.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/fixed-dtoa.cc"
|
||||
"${LIBRARY_DIR}/double-conversion/strtod.cc")
|
||||
|
||||
target_include_directories(double-conversion SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}")
|
||||
|
@ -1,18 +1,18 @@
|
||||
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/fastops)
|
||||
set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/fastops")
|
||||
|
||||
set(SRCS "")
|
||||
|
||||
if(HAVE_AVX)
|
||||
set (SRCS ${SRCS} ${LIBRARY_DIR}/fastops/avx/ops_avx.cpp)
|
||||
set_source_files_properties(${LIBRARY_DIR}/fastops/avx/ops_avx.cpp PROPERTIES COMPILE_FLAGS "-mavx -DNO_AVX2")
|
||||
set (SRCS ${SRCS} "${LIBRARY_DIR}/fastops/avx/ops_avx.cpp")
|
||||
set_source_files_properties("${LIBRARY_DIR}/fastops/avx/ops_avx.cpp" PROPERTIES COMPILE_FLAGS "-mavx -DNO_AVX2")
|
||||
endif()
|
||||
|
||||
if(HAVE_AVX2)
|
||||
set (SRCS ${SRCS} ${LIBRARY_DIR}/fastops/avx2/ops_avx2.cpp)
|
||||
set_source_files_properties(${LIBRARY_DIR}/fastops/avx2/ops_avx2.cpp PROPERTIES COMPILE_FLAGS "-mavx2 -mfma")
|
||||
set (SRCS ${SRCS} "${LIBRARY_DIR}/fastops/avx2/ops_avx2.cpp")
|
||||
set_source_files_properties("${LIBRARY_DIR}/fastops/avx2/ops_avx2.cpp" PROPERTIES COMPILE_FLAGS "-mavx2 -mfma")
|
||||
endif()
|
||||
|
||||
set (SRCS ${SRCS} ${LIBRARY_DIR}/fastops/plain/ops_plain.cpp ${LIBRARY_DIR}/fastops/core/avx_id.cpp ${LIBRARY_DIR}/fastops/fastops.cpp)
|
||||
set (SRCS ${SRCS} "${LIBRARY_DIR}/fastops/plain/ops_plain.cpp" "${LIBRARY_DIR}/fastops/core/avx_id.cpp" "${LIBRARY_DIR}/fastops/fastops.cpp")
|
||||
|
||||
add_library(fastops ${SRCS})
|
||||
|
||||
|
2
contrib/flatbuffers
vendored
2
contrib/flatbuffers
vendored
@ -1 +1 @@
|
||||
Subproject commit 6df40a2471737b27271bdd9b900ab5f3aec746c7
|
||||
Subproject commit 22e3ffc66d2d7d72d1414390aa0f04ffd114a5a1
|
2
contrib/grpc
vendored
2
contrib/grpc
vendored
@ -1 +1 @@
|
||||
Subproject commit 8d558f03fe370240081424fafa76cdc9301ea14b
|
||||
Subproject commit 5b79aae85c515e0df4abfb7b1e07975fdc7cecc1
|
@ -1,30 +1,30 @@
|
||||
set(H3_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/h3/src/h3lib)
|
||||
set(H3_BINARY_DIR ${ClickHouse_BINARY_DIR}/contrib/h3/src/h3lib)
|
||||
set(H3_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/h3/src/h3lib")
|
||||
set(H3_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/h3/src/h3lib")
|
||||
|
||||
set(SRCS
|
||||
${H3_SOURCE_DIR}/lib/algos.c
|
||||
${H3_SOURCE_DIR}/lib/baseCells.c
|
||||
${H3_SOURCE_DIR}/lib/bbox.c
|
||||
${H3_SOURCE_DIR}/lib/coordijk.c
|
||||
${H3_SOURCE_DIR}/lib/faceijk.c
|
||||
${H3_SOURCE_DIR}/lib/geoCoord.c
|
||||
${H3_SOURCE_DIR}/lib/h3Index.c
|
||||
${H3_SOURCE_DIR}/lib/h3UniEdge.c
|
||||
${H3_SOURCE_DIR}/lib/linkedGeo.c
|
||||
${H3_SOURCE_DIR}/lib/localij.c
|
||||
${H3_SOURCE_DIR}/lib/mathExtensions.c
|
||||
${H3_SOURCE_DIR}/lib/polygon.c
|
||||
${H3_SOURCE_DIR}/lib/vec2d.c
|
||||
${H3_SOURCE_DIR}/lib/vec3d.c
|
||||
${H3_SOURCE_DIR}/lib/vertex.c
|
||||
${H3_SOURCE_DIR}/lib/vertexGraph.c
|
||||
"${H3_SOURCE_DIR}/lib/algos.c"
|
||||
"${H3_SOURCE_DIR}/lib/baseCells.c"
|
||||
"${H3_SOURCE_DIR}/lib/bbox.c"
|
||||
"${H3_SOURCE_DIR}/lib/coordijk.c"
|
||||
"${H3_SOURCE_DIR}/lib/faceijk.c"
|
||||
"${H3_SOURCE_DIR}/lib/geoCoord.c"
|
||||
"${H3_SOURCE_DIR}/lib/h3Index.c"
|
||||
"${H3_SOURCE_DIR}/lib/h3UniEdge.c"
|
||||
"${H3_SOURCE_DIR}/lib/linkedGeo.c"
|
||||
"${H3_SOURCE_DIR}/lib/localij.c"
|
||||
"${H3_SOURCE_DIR}/lib/mathExtensions.c"
|
||||
"${H3_SOURCE_DIR}/lib/polygon.c"
|
||||
"${H3_SOURCE_DIR}/lib/vec2d.c"
|
||||
"${H3_SOURCE_DIR}/lib/vec3d.c"
|
||||
"${H3_SOURCE_DIR}/lib/vertex.c"
|
||||
"${H3_SOURCE_DIR}/lib/vertexGraph.c"
|
||||
)
|
||||
|
||||
configure_file(${H3_SOURCE_DIR}/include/h3api.h.in ${H3_BINARY_DIR}/include/h3api.h)
|
||||
configure_file("${H3_SOURCE_DIR}/include/h3api.h.in" "${H3_BINARY_DIR}/include/h3api.h")
|
||||
|
||||
add_library(h3 ${SRCS})
|
||||
target_include_directories(h3 SYSTEM PUBLIC ${H3_SOURCE_DIR}/include)
|
||||
target_include_directories(h3 SYSTEM PUBLIC ${H3_BINARY_DIR}/include)
|
||||
target_include_directories(h3 SYSTEM PUBLIC "${H3_SOURCE_DIR}/include")
|
||||
target_include_directories(h3 SYSTEM PUBLIC "${H3_BINARY_DIR}/include")
|
||||
target_compile_definitions(h3 PRIVATE H3_HAVE_VLA)
|
||||
if(M_LIBRARY)
|
||||
target_link_libraries(h3 PRIVATE ${M_LIBRARY})
|
||||
|
@ -40,211 +40,211 @@ endif ()
|
||||
if (NOT EXTERNAL_HYPERSCAN_LIBRARY_FOUND)
|
||||
set (USE_INTERNAL_HYPERSCAN_LIBRARY 1)
|
||||
|
||||
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/hyperscan)
|
||||
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/hyperscan")
|
||||
|
||||
set (SRCS
|
||||
${LIBRARY_DIR}/src/alloc.c
|
||||
${LIBRARY_DIR}/src/compiler/asserts.cpp
|
||||
${LIBRARY_DIR}/src/compiler/compiler.cpp
|
||||
${LIBRARY_DIR}/src/compiler/error.cpp
|
||||
${LIBRARY_DIR}/src/crc32.c
|
||||
${LIBRARY_DIR}/src/database.c
|
||||
${LIBRARY_DIR}/src/fdr/engine_description.cpp
|
||||
${LIBRARY_DIR}/src/fdr/fdr_compile_util.cpp
|
||||
${LIBRARY_DIR}/src/fdr/fdr_compile.cpp
|
||||
${LIBRARY_DIR}/src/fdr/fdr_confirm_compile.cpp
|
||||
${LIBRARY_DIR}/src/fdr/fdr_engine_description.cpp
|
||||
${LIBRARY_DIR}/src/fdr/fdr.c
|
||||
${LIBRARY_DIR}/src/fdr/flood_compile.cpp
|
||||
${LIBRARY_DIR}/src/fdr/teddy_compile.cpp
|
||||
${LIBRARY_DIR}/src/fdr/teddy_engine_description.cpp
|
||||
${LIBRARY_DIR}/src/fdr/teddy.c
|
||||
${LIBRARY_DIR}/src/grey.cpp
|
||||
${LIBRARY_DIR}/src/hs_valid_platform.c
|
||||
${LIBRARY_DIR}/src/hs_version.c
|
||||
${LIBRARY_DIR}/src/hs.cpp
|
||||
${LIBRARY_DIR}/src/hwlm/hwlm_build.cpp
|
||||
${LIBRARY_DIR}/src/hwlm/hwlm_literal.cpp
|
||||
${LIBRARY_DIR}/src/hwlm/hwlm.c
|
||||
${LIBRARY_DIR}/src/hwlm/noodle_build.cpp
|
||||
${LIBRARY_DIR}/src/hwlm/noodle_engine.c
|
||||
${LIBRARY_DIR}/src/nfa/accel_dfa_build_strat.cpp
|
||||
${LIBRARY_DIR}/src/nfa/accel.c
|
||||
${LIBRARY_DIR}/src/nfa/accelcompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/castle.c
|
||||
${LIBRARY_DIR}/src/nfa/castlecompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/dfa_build_strat.cpp
|
||||
${LIBRARY_DIR}/src/nfa/dfa_min.cpp
|
||||
${LIBRARY_DIR}/src/nfa/gough.c
|
||||
${LIBRARY_DIR}/src/nfa/goughcompile_accel.cpp
|
||||
${LIBRARY_DIR}/src/nfa/goughcompile_reg.cpp
|
||||
${LIBRARY_DIR}/src/nfa/goughcompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/lbr.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_64.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_accel.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_compile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/limex_native.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_simd128.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_simd256.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_simd384.c
|
||||
${LIBRARY_DIR}/src/nfa/limex_simd512.c
|
||||
${LIBRARY_DIR}/src/nfa/mcclellan.c
|
||||
${LIBRARY_DIR}/src/nfa/mcclellancompile_util.cpp
|
||||
${LIBRARY_DIR}/src/nfa/mcclellancompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/mcsheng_compile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/mcsheng_data.c
|
||||
${LIBRARY_DIR}/src/nfa/mcsheng.c
|
||||
${LIBRARY_DIR}/src/nfa/mpv.c
|
||||
${LIBRARY_DIR}/src/nfa/mpvcompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/nfa_api_dispatch.c
|
||||
${LIBRARY_DIR}/src/nfa/nfa_build_util.cpp
|
||||
${LIBRARY_DIR}/src/nfa/rdfa_graph.cpp
|
||||
${LIBRARY_DIR}/src/nfa/rdfa_merge.cpp
|
||||
${LIBRARY_DIR}/src/nfa/rdfa.cpp
|
||||
${LIBRARY_DIR}/src/nfa/repeat.c
|
||||
${LIBRARY_DIR}/src/nfa/repeatcompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/sheng.c
|
||||
${LIBRARY_DIR}/src/nfa/shengcompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/shufti.c
|
||||
${LIBRARY_DIR}/src/nfa/shufticompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/tamarama.c
|
||||
${LIBRARY_DIR}/src/nfa/tamaramacompile.cpp
|
||||
${LIBRARY_DIR}/src/nfa/truffle.c
|
||||
${LIBRARY_DIR}/src/nfa/trufflecompile.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_anchored_acyclic.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_anchored_dots.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_asserts.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_builder.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_calc_components.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_cyclic_redundancy.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_depth.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_dominators.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_edge_redundancy.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_equivalence.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_execute.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_expr_info.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_extparam.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_fixed_width.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_fuzzy.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_haig.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_holder.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_is_equal.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_lbr.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_limex_accel.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_limex.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_literal_analysis.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_literal_component.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_literal_decorated.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_mcclellan.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_misc_opt.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_netflow.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_prefilter.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_prune.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_puff.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_redundancy.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_region_redundancy.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_region.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_repeat.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_reports.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_restructuring.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_revacc.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_sep.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_small_literal_set.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_som_add_redundancy.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_som_util.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_som.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_split.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_squash.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_stop.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_uncalc_components.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_utf8.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_util.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_vacuous.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_violet.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng_width.cpp
|
||||
${LIBRARY_DIR}/src/nfagraph/ng.cpp
|
||||
${LIBRARY_DIR}/src/parser/AsciiComponentClass.cpp
|
||||
${LIBRARY_DIR}/src/parser/buildstate.cpp
|
||||
${LIBRARY_DIR}/src/parser/check_refs.cpp
|
||||
${LIBRARY_DIR}/src/parser/Component.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentAlternation.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentAssertion.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentAtomicGroup.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentBackReference.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentBoundary.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentByte.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentClass.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentCondReference.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentEmpty.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentEUS.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentRepeat.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentSequence.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentVisitor.cpp
|
||||
${LIBRARY_DIR}/src/parser/ComponentWordBoundary.cpp
|
||||
${LIBRARY_DIR}/src/parser/ConstComponentVisitor.cpp
|
||||
${LIBRARY_DIR}/src/parser/control_verbs.cpp
|
||||
${LIBRARY_DIR}/src/parser/logical_combination.cpp
|
||||
${LIBRARY_DIR}/src/parser/parse_error.cpp
|
||||
${LIBRARY_DIR}/src/parser/parser_util.cpp
|
||||
${LIBRARY_DIR}/src/parser/Parser.cpp
|
||||
${LIBRARY_DIR}/src/parser/prefilter.cpp
|
||||
${LIBRARY_DIR}/src/parser/shortcut_literal.cpp
|
||||
${LIBRARY_DIR}/src/parser/ucp_table.cpp
|
||||
${LIBRARY_DIR}/src/parser/unsupported.cpp
|
||||
${LIBRARY_DIR}/src/parser/utf8_validate.cpp
|
||||
${LIBRARY_DIR}/src/parser/Utf8ComponentClass.cpp
|
||||
${LIBRARY_DIR}/src/rose/block.c
|
||||
${LIBRARY_DIR}/src/rose/catchup.c
|
||||
${LIBRARY_DIR}/src/rose/init.c
|
||||
${LIBRARY_DIR}/src/rose/match.c
|
||||
${LIBRARY_DIR}/src/rose/program_runtime.c
|
||||
${LIBRARY_DIR}/src/rose/rose_build_add_mask.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_add.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_anchored.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_bytecode.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_castle.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_compile.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_convert.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_dedupe.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_engine_blob.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_exclusive.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_groups.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_infix.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_instructions.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_lit_accel.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_long_lit.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_lookaround.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_matchers.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_merge.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_misc.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_program.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_role_aliasing.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_scatter.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_build_width.cpp
|
||||
${LIBRARY_DIR}/src/rose/rose_in_util.cpp
|
||||
${LIBRARY_DIR}/src/rose/stream.c
|
||||
${LIBRARY_DIR}/src/runtime.c
|
||||
${LIBRARY_DIR}/src/scratch.c
|
||||
${LIBRARY_DIR}/src/smallwrite/smallwrite_build.cpp
|
||||
${LIBRARY_DIR}/src/som/slot_manager.cpp
|
||||
${LIBRARY_DIR}/src/som/som_runtime.c
|
||||
${LIBRARY_DIR}/src/som/som_stream.c
|
||||
${LIBRARY_DIR}/src/stream_compress.c
|
||||
${LIBRARY_DIR}/src/util/alloc.cpp
|
||||
${LIBRARY_DIR}/src/util/charreach.cpp
|
||||
${LIBRARY_DIR}/src/util/clique.cpp
|
||||
${LIBRARY_DIR}/src/util/compile_context.cpp
|
||||
${LIBRARY_DIR}/src/util/compile_error.cpp
|
||||
${LIBRARY_DIR}/src/util/cpuid_flags.c
|
||||
${LIBRARY_DIR}/src/util/depth.cpp
|
||||
${LIBRARY_DIR}/src/util/fatbit_build.cpp
|
||||
${LIBRARY_DIR}/src/util/multibit_build.cpp
|
||||
${LIBRARY_DIR}/src/util/multibit.c
|
||||
${LIBRARY_DIR}/src/util/report_manager.cpp
|
||||
${LIBRARY_DIR}/src/util/simd_utils.c
|
||||
${LIBRARY_DIR}/src/util/state_compress.c
|
||||
${LIBRARY_DIR}/src/util/target_info.cpp
|
||||
${LIBRARY_DIR}/src/util/ue2string.cpp
|
||||
"${LIBRARY_DIR}/src/alloc.c"
|
||||
"${LIBRARY_DIR}/src/compiler/asserts.cpp"
|
||||
"${LIBRARY_DIR}/src/compiler/compiler.cpp"
|
||||
"${LIBRARY_DIR}/src/compiler/error.cpp"
|
||||
"${LIBRARY_DIR}/src/crc32.c"
|
||||
"${LIBRARY_DIR}/src/database.c"
|
||||
"${LIBRARY_DIR}/src/fdr/engine_description.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/fdr_compile_util.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/fdr_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/fdr_confirm_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/fdr_engine_description.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/fdr.c"
|
||||
"${LIBRARY_DIR}/src/fdr/flood_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/teddy_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/teddy_engine_description.cpp"
|
||||
"${LIBRARY_DIR}/src/fdr/teddy.c"
|
||||
"${LIBRARY_DIR}/src/grey.cpp"
|
||||
"${LIBRARY_DIR}/src/hs_valid_platform.c"
|
||||
"${LIBRARY_DIR}/src/hs_version.c"
|
||||
"${LIBRARY_DIR}/src/hs.cpp"
|
||||
"${LIBRARY_DIR}/src/hwlm/hwlm_build.cpp"
|
||||
"${LIBRARY_DIR}/src/hwlm/hwlm_literal.cpp"
|
||||
"${LIBRARY_DIR}/src/hwlm/hwlm.c"
|
||||
"${LIBRARY_DIR}/src/hwlm/noodle_build.cpp"
|
||||
"${LIBRARY_DIR}/src/hwlm/noodle_engine.c"
|
||||
"${LIBRARY_DIR}/src/nfa/accel_dfa_build_strat.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/accel.c"
|
||||
"${LIBRARY_DIR}/src/nfa/accelcompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/castle.c"
|
||||
"${LIBRARY_DIR}/src/nfa/castlecompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/dfa_build_strat.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/dfa_min.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/gough.c"
|
||||
"${LIBRARY_DIR}/src/nfa/goughcompile_accel.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/goughcompile_reg.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/goughcompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/lbr.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_64.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_accel.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_native.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_simd128.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_simd256.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_simd384.c"
|
||||
"${LIBRARY_DIR}/src/nfa/limex_simd512.c"
|
||||
"${LIBRARY_DIR}/src/nfa/mcclellan.c"
|
||||
"${LIBRARY_DIR}/src/nfa/mcclellancompile_util.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/mcclellancompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/mcsheng_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/mcsheng_data.c"
|
||||
"${LIBRARY_DIR}/src/nfa/mcsheng.c"
|
||||
"${LIBRARY_DIR}/src/nfa/mpv.c"
|
||||
"${LIBRARY_DIR}/src/nfa/mpvcompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/nfa_api_dispatch.c"
|
||||
"${LIBRARY_DIR}/src/nfa/nfa_build_util.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/rdfa_graph.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/rdfa_merge.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/rdfa.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/repeat.c"
|
||||
"${LIBRARY_DIR}/src/nfa/repeatcompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/sheng.c"
|
||||
"${LIBRARY_DIR}/src/nfa/shengcompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/shufti.c"
|
||||
"${LIBRARY_DIR}/src/nfa/shufticompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/tamarama.c"
|
||||
"${LIBRARY_DIR}/src/nfa/tamaramacompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfa/truffle.c"
|
||||
"${LIBRARY_DIR}/src/nfa/trufflecompile.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_anchored_acyclic.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_anchored_dots.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_asserts.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_builder.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_calc_components.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_cyclic_redundancy.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_depth.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_dominators.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_edge_redundancy.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_equivalence.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_execute.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_expr_info.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_extparam.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_fixed_width.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_fuzzy.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_haig.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_holder.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_is_equal.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_lbr.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_limex_accel.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_limex.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_literal_analysis.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_literal_component.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_literal_decorated.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_mcclellan.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_misc_opt.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_netflow.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_prefilter.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_prune.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_puff.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_redundancy.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_region_redundancy.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_region.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_repeat.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_reports.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_restructuring.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_revacc.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_sep.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_small_literal_set.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_som_add_redundancy.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_som_util.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_som.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_split.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_squash.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_stop.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_uncalc_components.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_utf8.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_util.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_vacuous.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_violet.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng_width.cpp"
|
||||
"${LIBRARY_DIR}/src/nfagraph/ng.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/AsciiComponentClass.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/buildstate.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/check_refs.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/Component.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentAlternation.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentAssertion.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentAtomicGroup.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentBackReference.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentBoundary.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentByte.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentClass.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentCondReference.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentEmpty.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentEUS.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentRepeat.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentSequence.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentVisitor.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ComponentWordBoundary.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ConstComponentVisitor.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/control_verbs.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/logical_combination.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/parse_error.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/parser_util.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/Parser.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/prefilter.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/shortcut_literal.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/ucp_table.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/unsupported.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/utf8_validate.cpp"
|
||||
"${LIBRARY_DIR}/src/parser/Utf8ComponentClass.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/block.c"
|
||||
"${LIBRARY_DIR}/src/rose/catchup.c"
|
||||
"${LIBRARY_DIR}/src/rose/init.c"
|
||||
"${LIBRARY_DIR}/src/rose/match.c"
|
||||
"${LIBRARY_DIR}/src/rose/program_runtime.c"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_add_mask.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_add.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_anchored.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_bytecode.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_castle.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_compile.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_convert.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_dedupe.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_engine_blob.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_exclusive.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_groups.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_infix.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_instructions.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_lit_accel.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_long_lit.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_lookaround.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_matchers.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_merge.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_misc.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_program.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_role_aliasing.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_scatter.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_build_width.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/rose_in_util.cpp"
|
||||
"${LIBRARY_DIR}/src/rose/stream.c"
|
||||
"${LIBRARY_DIR}/src/runtime.c"
|
||||
"${LIBRARY_DIR}/src/scratch.c"
|
||||
"${LIBRARY_DIR}/src/smallwrite/smallwrite_build.cpp"
|
||||
"${LIBRARY_DIR}/src/som/slot_manager.cpp"
|
||||
"${LIBRARY_DIR}/src/som/som_runtime.c"
|
||||
"${LIBRARY_DIR}/src/som/som_stream.c"
|
||||
"${LIBRARY_DIR}/src/stream_compress.c"
|
||||
"${LIBRARY_DIR}/src/util/alloc.cpp"
|
||||
"${LIBRARY_DIR}/src/util/charreach.cpp"
|
||||
"${LIBRARY_DIR}/src/util/clique.cpp"
|
||||
"${LIBRARY_DIR}/src/util/compile_context.cpp"
|
||||
"${LIBRARY_DIR}/src/util/compile_error.cpp"
|
||||
"${LIBRARY_DIR}/src/util/cpuid_flags.c"
|
||||
"${LIBRARY_DIR}/src/util/depth.cpp"
|
||||
"${LIBRARY_DIR}/src/util/fatbit_build.cpp"
|
||||
"${LIBRARY_DIR}/src/util/multibit_build.cpp"
|
||||
"${LIBRARY_DIR}/src/util/multibit.c"
|
||||
"${LIBRARY_DIR}/src/util/report_manager.cpp"
|
||||
"${LIBRARY_DIR}/src/util/simd_utils.c"
|
||||
"${LIBRARY_DIR}/src/util/state_compress.c"
|
||||
"${LIBRARY_DIR}/src/util/target_info.cpp"
|
||||
"${LIBRARY_DIR}/src/util/ue2string.cpp"
|
||||
)
|
||||
|
||||
add_library (hyperscan ${SRCS})
|
||||
@ -259,9 +259,9 @@ if (NOT EXTERNAL_HYPERSCAN_LIBRARY_FOUND)
|
||||
target_include_directories (hyperscan
|
||||
PRIVATE
|
||||
common
|
||||
${LIBRARY_DIR}/include
|
||||
"${LIBRARY_DIR}/include"
|
||||
)
|
||||
target_include_directories (hyperscan SYSTEM PUBLIC ${LIBRARY_DIR}/src)
|
||||
target_include_directories (hyperscan SYSTEM PUBLIC "${LIBRARY_DIR}/src")
|
||||
if (ARCH_AMD64)
|
||||
target_include_directories (hyperscan PRIVATE x86_64)
|
||||
endif ()
|
||||
|
@ -1,447 +1,447 @@
|
||||
set(ICU_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/icu/icu4c/source)
|
||||
set(ICUDATA_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/icudata/)
|
||||
set(ICU_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/icu/icu4c/source")
|
||||
set(ICUDATA_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/icudata/")
|
||||
|
||||
set (CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# These lists of sources were generated from build log of the original ICU build system (configure + make).
|
||||
|
||||
set(ICUUC_SOURCES
|
||||
${ICU_SOURCE_DIR}/common/errorcode.cpp
|
||||
${ICU_SOURCE_DIR}/common/putil.cpp
|
||||
${ICU_SOURCE_DIR}/common/umath.cpp
|
||||
${ICU_SOURCE_DIR}/common/utypes.cpp
|
||||
${ICU_SOURCE_DIR}/common/uinvchar.cpp
|
||||
${ICU_SOURCE_DIR}/common/umutex.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucln_cmn.cpp
|
||||
${ICU_SOURCE_DIR}/common/uinit.cpp
|
||||
${ICU_SOURCE_DIR}/common/uobject.cpp
|
||||
${ICU_SOURCE_DIR}/common/cmemory.cpp
|
||||
${ICU_SOURCE_DIR}/common/charstr.cpp
|
||||
${ICU_SOURCE_DIR}/common/cstr.cpp
|
||||
${ICU_SOURCE_DIR}/common/udata.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucmndata.cpp
|
||||
${ICU_SOURCE_DIR}/common/udatamem.cpp
|
||||
${ICU_SOURCE_DIR}/common/umapfile.cpp
|
||||
${ICU_SOURCE_DIR}/common/udataswp.cpp
|
||||
${ICU_SOURCE_DIR}/common/utrie_swap.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucol_swp.cpp
|
||||
${ICU_SOURCE_DIR}/common/utrace.cpp
|
||||
${ICU_SOURCE_DIR}/common/uhash.cpp
|
||||
${ICU_SOURCE_DIR}/common/uhash_us.cpp
|
||||
${ICU_SOURCE_DIR}/common/uenum.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustrenum.cpp
|
||||
${ICU_SOURCE_DIR}/common/uvector.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustack.cpp
|
||||
${ICU_SOURCE_DIR}/common/uvectr32.cpp
|
||||
${ICU_SOURCE_DIR}/common/uvectr64.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_bld.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_cnv.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_io.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_cb.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_err.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvlat1.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_u7.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_u8.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_u16.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_u32.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvscsu.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvbocu.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_ext.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvmbcs.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv2022.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvhz.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_lmb.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvisci.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvdisp.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_set.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnv_ct.cpp
|
||||
${ICU_SOURCE_DIR}/common/resource.cpp
|
||||
${ICU_SOURCE_DIR}/common/uresbund.cpp
|
||||
${ICU_SOURCE_DIR}/common/ures_cnv.cpp
|
||||
${ICU_SOURCE_DIR}/common/uresdata.cpp
|
||||
${ICU_SOURCE_DIR}/common/resbund.cpp
|
||||
${ICU_SOURCE_DIR}/common/resbund_cnv.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucurr.cpp
|
||||
${ICU_SOURCE_DIR}/common/localebuilder.cpp
|
||||
${ICU_SOURCE_DIR}/common/localeprioritylist.cpp
|
||||
${ICU_SOURCE_DIR}/common/messagepattern.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucat.cpp
|
||||
${ICU_SOURCE_DIR}/common/locmap.cpp
|
||||
${ICU_SOURCE_DIR}/common/uloc.cpp
|
||||
${ICU_SOURCE_DIR}/common/locid.cpp
|
||||
${ICU_SOURCE_DIR}/common/locutil.cpp
|
||||
${ICU_SOURCE_DIR}/common/locavailable.cpp
|
||||
${ICU_SOURCE_DIR}/common/locdispnames.cpp
|
||||
${ICU_SOURCE_DIR}/common/locdspnm.cpp
|
||||
${ICU_SOURCE_DIR}/common/loclikely.cpp
|
||||
${ICU_SOURCE_DIR}/common/locresdata.cpp
|
||||
${ICU_SOURCE_DIR}/common/lsr.cpp
|
||||
${ICU_SOURCE_DIR}/common/loclikelysubtags.cpp
|
||||
${ICU_SOURCE_DIR}/common/locdistance.cpp
|
||||
${ICU_SOURCE_DIR}/common/localematcher.cpp
|
||||
${ICU_SOURCE_DIR}/common/bytestream.cpp
|
||||
${ICU_SOURCE_DIR}/common/stringpiece.cpp
|
||||
${ICU_SOURCE_DIR}/common/bytesinkutil.cpp
|
||||
${ICU_SOURCE_DIR}/common/stringtriebuilder.cpp
|
||||
${ICU_SOURCE_DIR}/common/bytestriebuilder.cpp
|
||||
${ICU_SOURCE_DIR}/common/bytestrie.cpp
|
||||
${ICU_SOURCE_DIR}/common/bytestrieiterator.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucharstrie.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucharstriebuilder.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucharstrieiterator.cpp
|
||||
${ICU_SOURCE_DIR}/common/dictionarydata.cpp
|
||||
${ICU_SOURCE_DIR}/common/edits.cpp
|
||||
${ICU_SOURCE_DIR}/common/appendable.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustr_cnv.cpp
|
||||
${ICU_SOURCE_DIR}/common/unistr_cnv.cpp
|
||||
${ICU_SOURCE_DIR}/common/unistr.cpp
|
||||
${ICU_SOURCE_DIR}/common/unistr_case.cpp
|
||||
${ICU_SOURCE_DIR}/common/unistr_props.cpp
|
||||
${ICU_SOURCE_DIR}/common/utf_impl.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustring.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustrcase.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucasemap.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucasemap_titlecase_brkiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/cstring.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustrfmt.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustrtrns.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustr_wcs.cpp
|
||||
${ICU_SOURCE_DIR}/common/utext.cpp
|
||||
${ICU_SOURCE_DIR}/common/unistr_case_locale.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustrcase_locale.cpp
|
||||
${ICU_SOURCE_DIR}/common/unistr_titlecase_brkiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/ustr_titlecase_brkiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/normalizer2impl.cpp
|
||||
${ICU_SOURCE_DIR}/common/normalizer2.cpp
|
||||
${ICU_SOURCE_DIR}/common/filterednormalizer2.cpp
|
||||
${ICU_SOURCE_DIR}/common/normlzr.cpp
|
||||
${ICU_SOURCE_DIR}/common/unorm.cpp
|
||||
${ICU_SOURCE_DIR}/common/unormcmp.cpp
|
||||
${ICU_SOURCE_DIR}/common/loadednormalizer2impl.cpp
|
||||
${ICU_SOURCE_DIR}/common/chariter.cpp
|
||||
${ICU_SOURCE_DIR}/common/schriter.cpp
|
||||
${ICU_SOURCE_DIR}/common/uchriter.cpp
|
||||
${ICU_SOURCE_DIR}/common/uiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/patternprops.cpp
|
||||
${ICU_SOURCE_DIR}/common/uchar.cpp
|
||||
${ICU_SOURCE_DIR}/common/uprops.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucase.cpp
|
||||
${ICU_SOURCE_DIR}/common/propname.cpp
|
||||
${ICU_SOURCE_DIR}/common/ubidi_props.cpp
|
||||
${ICU_SOURCE_DIR}/common/characterproperties.cpp
|
||||
${ICU_SOURCE_DIR}/common/ubidi.cpp
|
||||
${ICU_SOURCE_DIR}/common/ubidiwrt.cpp
|
||||
${ICU_SOURCE_DIR}/common/ubidiln.cpp
|
||||
${ICU_SOURCE_DIR}/common/ushape.cpp
|
||||
${ICU_SOURCE_DIR}/common/uscript.cpp
|
||||
${ICU_SOURCE_DIR}/common/uscript_props.cpp
|
||||
${ICU_SOURCE_DIR}/common/usc_impl.cpp
|
||||
${ICU_SOURCE_DIR}/common/unames.cpp
|
||||
${ICU_SOURCE_DIR}/common/utrie.cpp
|
||||
${ICU_SOURCE_DIR}/common/utrie2.cpp
|
||||
${ICU_SOURCE_DIR}/common/utrie2_builder.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucptrie.cpp
|
||||
${ICU_SOURCE_DIR}/common/umutablecptrie.cpp
|
||||
${ICU_SOURCE_DIR}/common/bmpset.cpp
|
||||
${ICU_SOURCE_DIR}/common/unisetspan.cpp
|
||||
${ICU_SOURCE_DIR}/common/uset_props.cpp
|
||||
${ICU_SOURCE_DIR}/common/uniset_props.cpp
|
||||
${ICU_SOURCE_DIR}/common/uniset_closure.cpp
|
||||
${ICU_SOURCE_DIR}/common/uset.cpp
|
||||
${ICU_SOURCE_DIR}/common/uniset.cpp
|
||||
${ICU_SOURCE_DIR}/common/usetiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/ruleiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/caniter.cpp
|
||||
${ICU_SOURCE_DIR}/common/unifilt.cpp
|
||||
${ICU_SOURCE_DIR}/common/unifunct.cpp
|
||||
${ICU_SOURCE_DIR}/common/uarrsort.cpp
|
||||
${ICU_SOURCE_DIR}/common/brkiter.cpp
|
||||
${ICU_SOURCE_DIR}/common/ubrk.cpp
|
||||
${ICU_SOURCE_DIR}/common/brkeng.cpp
|
||||
${ICU_SOURCE_DIR}/common/dictbe.cpp
|
||||
${ICU_SOURCE_DIR}/common/filteredbrk.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbi.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbidata.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbinode.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbirb.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbiscan.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbisetb.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbistbl.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbitblb.cpp
|
||||
${ICU_SOURCE_DIR}/common/rbbi_cache.cpp
|
||||
${ICU_SOURCE_DIR}/common/serv.cpp
|
||||
${ICU_SOURCE_DIR}/common/servnotf.cpp
|
||||
${ICU_SOURCE_DIR}/common/servls.cpp
|
||||
${ICU_SOURCE_DIR}/common/servlk.cpp
|
||||
${ICU_SOURCE_DIR}/common/servlkf.cpp
|
||||
${ICU_SOURCE_DIR}/common/servrbf.cpp
|
||||
${ICU_SOURCE_DIR}/common/servslkf.cpp
|
||||
${ICU_SOURCE_DIR}/common/uidna.cpp
|
||||
${ICU_SOURCE_DIR}/common/usprep.cpp
|
||||
${ICU_SOURCE_DIR}/common/uts46.cpp
|
||||
${ICU_SOURCE_DIR}/common/punycode.cpp
|
||||
${ICU_SOURCE_DIR}/common/util.cpp
|
||||
${ICU_SOURCE_DIR}/common/util_props.cpp
|
||||
${ICU_SOURCE_DIR}/common/parsepos.cpp
|
||||
${ICU_SOURCE_DIR}/common/locbased.cpp
|
||||
${ICU_SOURCE_DIR}/common/cwchar.cpp
|
||||
${ICU_SOURCE_DIR}/common/wintz.cpp
|
||||
${ICU_SOURCE_DIR}/common/dtintrv.cpp
|
||||
${ICU_SOURCE_DIR}/common/ucnvsel.cpp
|
||||
${ICU_SOURCE_DIR}/common/propsvec.cpp
|
||||
${ICU_SOURCE_DIR}/common/ulist.cpp
|
||||
${ICU_SOURCE_DIR}/common/uloc_tag.cpp
|
||||
${ICU_SOURCE_DIR}/common/icudataver.cpp
|
||||
${ICU_SOURCE_DIR}/common/icuplug.cpp
|
||||
${ICU_SOURCE_DIR}/common/sharedobject.cpp
|
||||
${ICU_SOURCE_DIR}/common/simpleformatter.cpp
|
||||
${ICU_SOURCE_DIR}/common/unifiedcache.cpp
|
||||
${ICU_SOURCE_DIR}/common/uloc_keytype.cpp
|
||||
${ICU_SOURCE_DIR}/common/ubiditransform.cpp
|
||||
${ICU_SOURCE_DIR}/common/pluralmap.cpp
|
||||
${ICU_SOURCE_DIR}/common/static_unicode_sets.cpp
|
||||
${ICU_SOURCE_DIR}/common/restrace.cpp)
|
||||
"${ICU_SOURCE_DIR}/common/errorcode.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/putil.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/umath.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utypes.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uinvchar.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/umutex.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucln_cmn.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uinit.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uobject.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/cmemory.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/charstr.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/cstr.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/udata.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucmndata.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/udatamem.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/umapfile.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/udataswp.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utrie_swap.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucol_swp.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utrace.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uhash.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uhash_us.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uenum.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustrenum.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uvector.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustack.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uvectr32.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uvectr64.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_bld.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_cnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_io.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_cb.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_err.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvlat1.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_u7.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_u8.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_u16.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_u32.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvscsu.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvbocu.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_ext.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvmbcs.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv2022.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvhz.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_lmb.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvisci.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvdisp.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_set.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnv_ct.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/resource.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uresbund.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ures_cnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uresdata.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/resbund.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/resbund_cnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucurr.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/localebuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/localeprioritylist.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/messagepattern.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucat.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locmap.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uloc.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locid.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locutil.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locavailable.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locdispnames.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locdspnm.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/loclikely.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locresdata.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/lsr.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/loclikelysubtags.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locdistance.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/localematcher.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/bytestream.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/stringpiece.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/bytesinkutil.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/stringtriebuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/bytestriebuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/bytestrie.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/bytestrieiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucharstrie.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucharstriebuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucharstrieiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/dictionarydata.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/edits.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/appendable.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustr_cnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unistr_cnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unistr.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unistr_case.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unistr_props.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utf_impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustring.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustrcase.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucasemap.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucasemap_titlecase_brkiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/cstring.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustrfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustrtrns.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustr_wcs.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utext.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unistr_case_locale.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustrcase_locale.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unistr_titlecase_brkiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ustr_titlecase_brkiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/normalizer2impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/normalizer2.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/filterednormalizer2.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/normlzr.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unorm.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unormcmp.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/loadednormalizer2impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/chariter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/schriter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uchriter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/patternprops.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uchar.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uprops.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucase.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/propname.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ubidi_props.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/characterproperties.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ubidi.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ubidiwrt.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ubidiln.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ushape.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uscript.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uscript_props.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/usc_impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unames.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utrie.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utrie2.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/utrie2_builder.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucptrie.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/umutablecptrie.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/bmpset.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unisetspan.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uset_props.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uniset_props.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uniset_closure.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uset.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uniset.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/usetiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ruleiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/caniter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unifilt.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unifunct.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uarrsort.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/brkiter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ubrk.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/brkeng.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/dictbe.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/filteredbrk.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbi.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbidata.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbinode.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbirb.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbiscan.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbisetb.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbistbl.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbitblb.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/rbbi_cache.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/serv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/servnotf.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/servls.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/servlk.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/servlkf.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/servrbf.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/servslkf.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uidna.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/usprep.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uts46.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/punycode.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/util.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/util_props.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/parsepos.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/locbased.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/cwchar.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/wintz.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/dtintrv.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ucnvsel.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/propsvec.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ulist.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uloc_tag.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/icudataver.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/icuplug.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/sharedobject.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/simpleformatter.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/unifiedcache.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/uloc_keytype.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/ubiditransform.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/pluralmap.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/static_unicode_sets.cpp"
|
||||
"${ICU_SOURCE_DIR}/common/restrace.cpp")
|
||||
|
||||
set(ICUI18N_SOURCES
|
||||
${ICU_SOURCE_DIR}/i18n/ucln_in.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/fmtable.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/format.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/msgfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/umsg.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/unum.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/decimfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dcfmtsym.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/fmtable_cnv.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/choicfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/datefmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/smpdtfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/reldtfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dtfmtsym.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/udat.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dtptngen.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/udatpg.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/nfrs.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/nfrule.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/nfsubs.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbnf.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numsys.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/unumsys.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ucsdet.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ucal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/calendar.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/gregocal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/timezone.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/simpletz.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/olsontz.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/astro.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/taiwncal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/buddhcal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/persncal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/islamcal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/japancal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/gregoimp.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/hebrwcal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/indiancal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/chnsecal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/cecal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/coptccal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dangical.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ethpccal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/coleitr.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/coll.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/sortkey.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/bocsu.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ucoleitr.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ucol.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ucol_res.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ucol_sit.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collation.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationsettings.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationdata.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationtailoring.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationdatareader.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationdatawriter.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationfcd.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationiterator.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/utf16collationiterator.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/utf8collationiterator.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uitercollationiterator.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationsets.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationcompare.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationfastlatin.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationkeys.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rulebasedcollator.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationroot.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationrootelements.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationdatabuilder.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationweights.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationruleparser.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationbuilder.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/collationfastlatinbuilder.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/listformatter.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ulistformatter.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/strmatch.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/usearch.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/search.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/stsearch.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/translit.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/utrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/esctrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/unesctrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/funcrepl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/strrepl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tridpars.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/cpdtrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbt_data.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbt_pars.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbt_rule.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbt_set.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/nultrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/remtrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/casetrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/titletrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tolowtrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/toupptrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/anytrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/name2uni.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uni2name.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/nortrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/quant.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/transreg.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/brktrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/regexcmp.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rematch.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/repattrn.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/regexst.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/regextxt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/regeximp.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uregex.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uregexc.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ulocdata.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/measfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/currfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/curramt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/currunit.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/measure.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/utmscale.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csdetect.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csmatch.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csr2022.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csrecog.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csrmbcs.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csrsbcs.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csrucode.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/csrutf8.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/inputext.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/wintzimpl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/windtfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/winnmfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/basictz.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dtrule.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/rbtz.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tzrule.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tztrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/vtzone.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/zonemeta.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/standardplural.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/upluralrules.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/plurrule.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/plurfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/selfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dtitvfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dtitvinf.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/udateintervalformat.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tmunit.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tmutamt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tmutfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/currpinf.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uspoof.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uspoof_impl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uspoof_build.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uspoof_conf.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/smpdtfst.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ztrans.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/zrule.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/vzone.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/fphdlimp.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/fpositer.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/ufieldpositer.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/decNumber.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/decContext.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/alphaindex.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tznames.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tznames_impl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tzgnames.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/tzfmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/compactdecimalformat.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/gender.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/region.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/scriptset.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/uregion.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/reldatefmt.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/quantityformatter.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/measunit.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/sharedbreakiterator.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/scientificnumberformatter.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/dayperiodrules.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/nounit.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_affixutils.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_compact.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_decimalquantity.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_decimfmtprops.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_fluent.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_formatimpl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_grouping.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_integerwidth.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_longnames.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_modifiers.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_notation.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_output.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_padding.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_patternmodifier.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_patternstring.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_rounding.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_scientific.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_utils.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_asformat.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_mapper.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_multiplier.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_currencysymbols.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_skeletons.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/number_capi.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-string-to-double.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-double-to-string.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-bignum-dtoa.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-bignum.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-cached-powers.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-fast-dtoa.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/double-conversion-strtod.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/string_segment.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_parsednumber.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_impl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_symbols.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_decimal.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_scientific.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_currency.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_affixes.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_compositions.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numparse_validators.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numrange_fluent.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/numrange_impl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/erarules.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/formattedvalue.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/formattedval_iterimpl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/formattedval_sbimpl.cpp
|
||||
${ICU_SOURCE_DIR}/i18n/formatted_string_builder.cpp)
|
||||
"${ICU_SOURCE_DIR}/i18n/ucln_in.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/fmtable.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/format.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/msgfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/umsg.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/unum.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/decimfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dcfmtsym.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/fmtable_cnv.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/choicfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/datefmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/smpdtfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/reldtfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dtfmtsym.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/udat.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dtptngen.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/udatpg.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/nfrs.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/nfrule.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/nfsubs.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbnf.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numsys.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/unumsys.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ucsdet.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ucal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/calendar.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/gregocal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/timezone.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/simpletz.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/olsontz.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/astro.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/taiwncal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/buddhcal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/persncal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/islamcal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/japancal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/gregoimp.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/hebrwcal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/indiancal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/chnsecal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/cecal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/coptccal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dangical.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ethpccal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/coleitr.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/coll.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/sortkey.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/bocsu.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ucoleitr.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ucol.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ucol_res.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ucol_sit.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collation.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationsettings.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationdata.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationtailoring.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationdatareader.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationdatawriter.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationfcd.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/utf16collationiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/utf8collationiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uitercollationiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationsets.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationcompare.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationfastlatin.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationkeys.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rulebasedcollator.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationroot.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationrootelements.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationdatabuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationweights.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationruleparser.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationbuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/collationfastlatinbuilder.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/listformatter.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ulistformatter.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/strmatch.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/usearch.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/search.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/stsearch.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/translit.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/utrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/esctrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/unesctrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/funcrepl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/strrepl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tridpars.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/cpdtrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbt_data.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbt_pars.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbt_rule.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbt_set.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/nultrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/remtrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/casetrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/titletrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tolowtrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/toupptrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/anytrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/name2uni.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uni2name.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/nortrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/quant.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/transreg.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/brktrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/regexcmp.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rematch.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/repattrn.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/regexst.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/regextxt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/regeximp.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uregex.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uregexc.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ulocdata.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/measfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/currfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/curramt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/currunit.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/measure.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/utmscale.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csdetect.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csmatch.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csr2022.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csrecog.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csrmbcs.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csrsbcs.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csrucode.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/csrutf8.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/inputext.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/wintzimpl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/windtfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/winnmfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/basictz.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dtrule.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/rbtz.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tzrule.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tztrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/vtzone.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/zonemeta.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/standardplural.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/upluralrules.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/plurrule.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/plurfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/selfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dtitvfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dtitvinf.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/udateintervalformat.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tmunit.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tmutamt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tmutfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/currpinf.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uspoof.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uspoof_impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uspoof_build.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uspoof_conf.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/smpdtfst.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ztrans.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/zrule.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/vzone.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/fphdlimp.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/fpositer.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/ufieldpositer.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/decNumber.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/decContext.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/alphaindex.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tznames.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tznames_impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tzgnames.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/tzfmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/compactdecimalformat.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/gender.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/region.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/scriptset.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/uregion.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/reldatefmt.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/quantityformatter.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/measunit.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/sharedbreakiterator.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/scientificnumberformatter.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/dayperiodrules.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/nounit.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_affixutils.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_compact.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_decimalquantity.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_decimfmtprops.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_fluent.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_formatimpl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_grouping.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_integerwidth.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_longnames.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_modifiers.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_notation.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_output.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_padding.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_patternmodifier.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_patternstring.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_rounding.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_scientific.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_utils.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_asformat.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_mapper.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_multiplier.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_currencysymbols.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_skeletons.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/number_capi.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-string-to-double.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-double-to-string.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-bignum-dtoa.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-bignum.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-cached-powers.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-fast-dtoa.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/double-conversion-strtod.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/string_segment.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_parsednumber.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_symbols.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_decimal.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_scientific.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_currency.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_affixes.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_compositions.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numparse_validators.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numrange_fluent.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/numrange_impl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/erarules.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/formattedvalue.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/formattedval_iterimpl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/formattedval_sbimpl.cpp"
|
||||
"${ICU_SOURCE_DIR}/i18n/formatted_string_builder.cpp")
|
||||
|
||||
file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/empty.cpp CONTENT " ")
|
||||
file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/empty.cpp" CONTENT " ")
|
||||
enable_language(ASM)
|
||||
set(ICUDATA_SOURCES
|
||||
${ICUDATA_SOURCE_DIR}/icudt66l_dat.S
|
||||
${CMAKE_CURRENT_BINARY_DIR}/empty.cpp # Without this cmake can incorrectly detects library type (OBJECT) instead of SHARED/STATIC
|
||||
"${ICUDATA_SOURCE_DIR}/icudt66l_dat.S"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/empty.cpp" # Without this cmake can incorrectly detects library type (OBJECT) instead of SHARED/STATIC
|
||||
)
|
||||
|
||||
# Note that we don't like any kind of binary plugins (because of runtime dependencies, vulnerabilities, ABI incompatibilities).
|
||||
@ -454,8 +454,8 @@ add_library(icudata ${ICUDATA_SOURCES})
|
||||
target_link_libraries(icuuc PRIVATE icudata)
|
||||
target_link_libraries(icui18n PRIVATE icuuc)
|
||||
|
||||
target_include_directories(icuuc SYSTEM PUBLIC ${ICU_SOURCE_DIR}/common/)
|
||||
target_include_directories(icui18n SYSTEM PUBLIC ${ICU_SOURCE_DIR}/i18n/)
|
||||
target_include_directories(icuuc SYSTEM PUBLIC "${ICU_SOURCE_DIR}/common/")
|
||||
target_include_directories(icui18n SYSTEM PUBLIC "${ICU_SOURCE_DIR}/i18n/")
|
||||
|
||||
target_compile_definitions(icuuc PRIVATE -DU_COMMON_IMPLEMENTATION)
|
||||
target_compile_definitions(icui18n PRIVATE -DU_I18N_IMPLEMENTATION)
|
||||
|
@ -1,10 +1,13 @@
|
||||
if (SANITIZE OR NOT (ARCH_AMD64 OR ARCH_ARM OR ARCH_PPC64LE) OR NOT (OS_LINUX OR OS_FREEBSD OR OS_DARWIN))
|
||||
if (SANITIZE OR NOT (
|
||||
((OS_LINUX OR OS_FREEBSD) AND (ARCH_AMD64 OR ARCH_ARM OR ARCH_PPC64LE)) OR
|
||||
(OS_DARWIN AND CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
))
|
||||
if (ENABLE_JEMALLOC)
|
||||
message (${RECONFIGURE_MESSAGE_LEVEL}
|
||||
"jemalloc is disabled implicitly: it doesn't work with sanitizers and can only be used with x86_64, aarch64 or ppc64le on linux or freebsd.")
|
||||
endif()
|
||||
"jemalloc is disabled implicitly: it doesn't work with sanitizers and can only be used with x86_64, aarch64, or ppc64le Linux or FreeBSD builds and RelWithDebInfo macOS builds.")
|
||||
endif ()
|
||||
set (ENABLE_JEMALLOC OFF)
|
||||
else()
|
||||
else ()
|
||||
option (ENABLE_JEMALLOC "Enable jemalloc allocator" ${ENABLE_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
@ -34,9 +37,9 @@ if (OS_LINUX)
|
||||
# avoid spurious latencies and additional work associated with
|
||||
# MADV_DONTNEED. See
|
||||
# https://github.com/ClickHouse/ClickHouse/issues/11121 for motivation.
|
||||
set (JEMALLOC_CONFIG_MALLOC_CONF "percpu_arena:percpu,oversize_threshold:0,muzzy_decay_ms:10000")
|
||||
set (JEMALLOC_CONFIG_MALLOC_CONF "percpu_arena:percpu,oversize_threshold:0,muzzy_decay_ms:5000,dirty_decay_ms:5000")
|
||||
else()
|
||||
set (JEMALLOC_CONFIG_MALLOC_CONF "oversize_threshold:0,muzzy_decay_ms:10000")
|
||||
set (JEMALLOC_CONFIG_MALLOC_CONF "oversize_threshold:0,muzzy_decay_ms:5000,dirty_decay_ms:5000")
|
||||
endif()
|
||||
# CACHE variable is empty, to allow changing defaults without necessity
|
||||
# to purge cache
|
||||
@ -49,46 +52,46 @@ message (STATUS "jemalloc malloc_conf: ${JEMALLOC_CONFIG_MALLOC_CONF}")
|
||||
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/jemalloc")
|
||||
|
||||
set (SRCS
|
||||
${LIBRARY_DIR}/src/arena.c
|
||||
${LIBRARY_DIR}/src/background_thread.c
|
||||
${LIBRARY_DIR}/src/base.c
|
||||
${LIBRARY_DIR}/src/bin.c
|
||||
${LIBRARY_DIR}/src/bitmap.c
|
||||
${LIBRARY_DIR}/src/ckh.c
|
||||
${LIBRARY_DIR}/src/ctl.c
|
||||
${LIBRARY_DIR}/src/div.c
|
||||
${LIBRARY_DIR}/src/extent.c
|
||||
${LIBRARY_DIR}/src/extent_dss.c
|
||||
${LIBRARY_DIR}/src/extent_mmap.c
|
||||
${LIBRARY_DIR}/src/hash.c
|
||||
${LIBRARY_DIR}/src/hook.c
|
||||
${LIBRARY_DIR}/src/jemalloc.c
|
||||
${LIBRARY_DIR}/src/large.c
|
||||
${LIBRARY_DIR}/src/log.c
|
||||
${LIBRARY_DIR}/src/malloc_io.c
|
||||
${LIBRARY_DIR}/src/mutex.c
|
||||
${LIBRARY_DIR}/src/mutex_pool.c
|
||||
${LIBRARY_DIR}/src/nstime.c
|
||||
${LIBRARY_DIR}/src/pages.c
|
||||
${LIBRARY_DIR}/src/prng.c
|
||||
${LIBRARY_DIR}/src/prof.c
|
||||
${LIBRARY_DIR}/src/rtree.c
|
||||
${LIBRARY_DIR}/src/sc.c
|
||||
${LIBRARY_DIR}/src/stats.c
|
||||
${LIBRARY_DIR}/src/sz.c
|
||||
${LIBRARY_DIR}/src/tcache.c
|
||||
${LIBRARY_DIR}/src/test_hooks.c
|
||||
${LIBRARY_DIR}/src/ticker.c
|
||||
${LIBRARY_DIR}/src/tsd.c
|
||||
${LIBRARY_DIR}/src/witness.c
|
||||
${LIBRARY_DIR}/src/safety_check.c
|
||||
"${LIBRARY_DIR}/src/arena.c"
|
||||
"${LIBRARY_DIR}/src/background_thread.c"
|
||||
"${LIBRARY_DIR}/src/base.c"
|
||||
"${LIBRARY_DIR}/src/bin.c"
|
||||
"${LIBRARY_DIR}/src/bitmap.c"
|
||||
"${LIBRARY_DIR}/src/ckh.c"
|
||||
"${LIBRARY_DIR}/src/ctl.c"
|
||||
"${LIBRARY_DIR}/src/div.c"
|
||||
"${LIBRARY_DIR}/src/extent.c"
|
||||
"${LIBRARY_DIR}/src/extent_dss.c"
|
||||
"${LIBRARY_DIR}/src/extent_mmap.c"
|
||||
"${LIBRARY_DIR}/src/hash.c"
|
||||
"${LIBRARY_DIR}/src/hook.c"
|
||||
"${LIBRARY_DIR}/src/jemalloc.c"
|
||||
"${LIBRARY_DIR}/src/large.c"
|
||||
"${LIBRARY_DIR}/src/log.c"
|
||||
"${LIBRARY_DIR}/src/malloc_io.c"
|
||||
"${LIBRARY_DIR}/src/mutex.c"
|
||||
"${LIBRARY_DIR}/src/mutex_pool.c"
|
||||
"${LIBRARY_DIR}/src/nstime.c"
|
||||
"${LIBRARY_DIR}/src/pages.c"
|
||||
"${LIBRARY_DIR}/src/prng.c"
|
||||
"${LIBRARY_DIR}/src/prof.c"
|
||||
"${LIBRARY_DIR}/src/rtree.c"
|
||||
"${LIBRARY_DIR}/src/sc.c"
|
||||
"${LIBRARY_DIR}/src/stats.c"
|
||||
"${LIBRARY_DIR}/src/sz.c"
|
||||
"${LIBRARY_DIR}/src/tcache.c"
|
||||
"${LIBRARY_DIR}/src/test_hooks.c"
|
||||
"${LIBRARY_DIR}/src/ticker.c"
|
||||
"${LIBRARY_DIR}/src/tsd.c"
|
||||
"${LIBRARY_DIR}/src/witness.c"
|
||||
"${LIBRARY_DIR}/src/safety_check.c"
|
||||
)
|
||||
if (OS_DARWIN)
|
||||
list(APPEND SRCS ${LIBRARY_DIR}/src/zone.c)
|
||||
list(APPEND SRCS "${LIBRARY_DIR}/src/zone.c")
|
||||
endif ()
|
||||
|
||||
add_library(jemalloc ${SRCS})
|
||||
target_include_directories(jemalloc PRIVATE ${LIBRARY_DIR}/include)
|
||||
target_include_directories(jemalloc PRIVATE "${LIBRARY_DIR}/include")
|
||||
target_include_directories(jemalloc SYSTEM PUBLIC include)
|
||||
|
||||
set (JEMALLOC_INCLUDE_PREFIX)
|
||||
@ -116,17 +119,19 @@ endif ()
|
||||
configure_file(${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal/jemalloc_internal_defs.h.in
|
||||
${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal/jemalloc_internal_defs.h)
|
||||
target_include_directories(jemalloc SYSTEM PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal)
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal")
|
||||
|
||||
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_NO_PRIVATE_NAMESPACE)
|
||||
|
||||
if (CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
|
||||
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_DEBUG=1 -DJEMALLOC_PROF=1)
|
||||
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_DEBUG=1)
|
||||
endif ()
|
||||
|
||||
if (USE_UNWIND)
|
||||
target_compile_definitions (jemalloc PRIVATE -DJEMALLOC_PROF_LIBUNWIND=1)
|
||||
target_link_libraries (jemalloc PRIVATE unwind)
|
||||
endif ()
|
||||
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_PROF=1)
|
||||
|
||||
if (USE_UNWIND)
|
||||
target_compile_definitions (jemalloc PRIVATE -DJEMALLOC_PROF_LIBUNWIND=1)
|
||||
target_link_libraries (jemalloc PRIVATE unwind)
|
||||
endif ()
|
||||
|
||||
target_compile_options(jemalloc PRIVATE -Wno-redundant-decls)
|
||||
|
@ -42,7 +42,7 @@
|
||||
* total number of bits in a pointer, e.g. on x64, for which the uppermost 16
|
||||
* bits are the same as bit 47.
|
||||
*/
|
||||
#define LG_VADDR 48
|
||||
#define LG_VADDR 64
|
||||
|
||||
/* Defined if C11 atomics are available. */
|
||||
#define JEMALLOC_C11_ATOMICS 1
|
||||
@ -101,11 +101,6 @@
|
||||
*/
|
||||
#define JEMALLOC_HAVE_MACH_ABSOLUTE_TIME 1
|
||||
|
||||
/*
|
||||
* Defined if clock_gettime(CLOCK_REALTIME, ...) is available.
|
||||
*/
|
||||
#define JEMALLOC_HAVE_CLOCK_REALTIME 1
|
||||
|
||||
/*
|
||||
* Defined if _malloc_thread_cleanup() exists. At least in the case of
|
||||
* FreeBSD, pthread_key_create() allocates, which if used during malloc
|
||||
@ -181,14 +176,14 @@
|
||||
/* #undef LG_QUANTUM */
|
||||
|
||||
/* One page is 2^LG_PAGE bytes. */
|
||||
#define LG_PAGE 16
|
||||
#define LG_PAGE 14
|
||||
|
||||
/*
|
||||
* One huge page is 2^LG_HUGEPAGE bytes. Note that this is defined even if the
|
||||
* system does not explicitly support huge pages; system calls that require
|
||||
* explicit huge page support are separately configured.
|
||||
*/
|
||||
#define LG_HUGEPAGE 29
|
||||
#define LG_HUGEPAGE 21
|
||||
|
||||
/*
|
||||
* If defined, adjacent virtual memory mappings with identical attributes
|
||||
@ -356,7 +351,7 @@
|
||||
/* #undef JEMALLOC_EXPORT */
|
||||
|
||||
/* config.malloc_conf options string. */
|
||||
#define JEMALLOC_CONFIG_MALLOC_CONF "@JEMALLOC_CONFIG_MALLOC_CONF@"
|
||||
#define JEMALLOC_CONFIG_MALLOC_CONF ""
|
||||
|
||||
/* If defined, jemalloc takes the malloc/free/etc. symbol names. */
|
||||
/* #undef JEMALLOC_IS_MALLOC */
|
||||
|
File diff suppressed because it is too large
Load Diff
2
contrib/libcxx
vendored
2
contrib/libcxx
vendored
@ -1 +1 @@
|
||||
Subproject commit 8b80a151d12b98ffe2d0c22f7cec12c3b9ff88d7
|
||||
Subproject commit 2fa892f69acbaa40f8a18c6484854a6183a34482
|
@ -1,49 +1,49 @@
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
set(LIBCXX_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libcxx)
|
||||
set(LIBCXX_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libcxx")
|
||||
|
||||
set(SRCS
|
||||
${LIBCXX_SOURCE_DIR}/src/algorithm.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/any.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/atomic.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/barrier.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/bind.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/charconv.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/chrono.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/condition_variable.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/condition_variable_destructor.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/debug.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/exception.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/experimental/memory_resource.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/filesystem/directory_iterator.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/filesystem/int128_builtins.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/filesystem/operations.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/functional.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/future.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/hash.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/ios.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/ios.instantiations.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/iostream.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/locale.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/memory.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/mutex.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/mutex_destructor.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/new.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/optional.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/random.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/random_shuffle.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/regex.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/shared_mutex.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/stdexcept.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/string.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/strstream.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/system_error.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/thread.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/typeinfo.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/utility.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/valarray.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/variant.cpp
|
||||
${LIBCXX_SOURCE_DIR}/src/vector.cpp
|
||||
"${LIBCXX_SOURCE_DIR}/src/algorithm.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/any.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/atomic.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/barrier.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/bind.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/charconv.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/chrono.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/condition_variable.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/condition_variable_destructor.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/debug.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/exception.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/experimental/memory_resource.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/filesystem/directory_iterator.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/filesystem/int128_builtins.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/filesystem/operations.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/functional.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/future.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/hash.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/ios.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/ios.instantiations.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/iostream.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/locale.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/memory.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/mutex.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/mutex_destructor.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/new.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/optional.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/random.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/random_shuffle.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/regex.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/shared_mutex.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/stdexcept.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/string.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/strstream.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/system_error.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/thread.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/typeinfo.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/utility.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/valarray.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/variant.cpp"
|
||||
"${LIBCXX_SOURCE_DIR}/src/vector.cpp"
|
||||
)
|
||||
|
||||
add_library(cxx ${SRCS})
|
||||
@ -56,6 +56,11 @@ if (USE_UNWIND)
|
||||
target_compile_definitions(cxx PUBLIC -DSTD_EXCEPTION_HAS_STACK_TRACE=1)
|
||||
endif ()
|
||||
|
||||
# Override the deduced attribute support that causes error.
|
||||
if (OS_DARWIN AND COMPILER_GCC)
|
||||
add_compile_definitions(_LIBCPP_INIT_PRIORITY_MAX)
|
||||
endif ()
|
||||
|
||||
target_compile_options(cxx PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-nostdinc++>)
|
||||
|
||||
# Third party library may have substandard code.
|
||||
|
@ -1,24 +1,24 @@
|
||||
set(LIBCXXABI_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libcxxabi)
|
||||
set(LIBCXXABI_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libcxxabi")
|
||||
|
||||
set(SRCS
|
||||
${LIBCXXABI_SOURCE_DIR}/src/stdlib_stdexcept.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_virtual.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_thread_atexit.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/fallback_malloc.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_guard.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_default_handlers.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_personality.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/stdlib_exception.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/abort_message.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_demangle.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_exception.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_handlers.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_exception_storage.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/private_typeinfo.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/stdlib_typeinfo.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_aux_runtime.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/cxa_vector.cpp
|
||||
${LIBCXXABI_SOURCE_DIR}/src/stdlib_new_delete.cpp
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/stdlib_stdexcept.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_virtual.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_thread_atexit.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/fallback_malloc.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_guard.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_default_handlers.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_personality.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/stdlib_exception.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/abort_message.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_demangle.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_exception.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_handlers.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_exception_storage.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/private_typeinfo.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/stdlib_typeinfo.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_aux_runtime.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/cxa_vector.cpp"
|
||||
"${LIBCXXABI_SOURCE_DIR}/src/stdlib_new_delete.cpp"
|
||||
)
|
||||
|
||||
add_library(cxxabi ${SRCS})
|
||||
|
@ -22,7 +22,7 @@ ADD_DEFINITIONS(-D_GLIBCXX_USE_NANOSLEEP)
|
||||
|
||||
TRY_COMPILE(STRERROR_R_RETURN_INT
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${HDFS3_ROOT_DIR}/CMake/CMakeTestCompileStrerror.cpp
|
||||
"${HDFS3_ROOT_DIR}/CMake/CMakeTestCompileStrerror.cpp"
|
||||
CMAKE_FLAGS "-DCMAKE_CXX_LINK_EXECUTABLE='echo not linking now...'"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
|
||||
@ -36,13 +36,13 @@ ENDIF(STRERROR_R_RETURN_INT)
|
||||
|
||||
TRY_COMPILE(HAVE_STEADY_CLOCK
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${HDFS3_ROOT_DIR}/CMake/CMakeTestCompileSteadyClock.cpp
|
||||
"${HDFS3_ROOT_DIR}/CMake/CMakeTestCompileSteadyClock.cpp"
|
||||
CMAKE_FLAGS "-DCMAKE_CXX_LINK_EXECUTABLE='echo not linking now...'"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
|
||||
TRY_COMPILE(HAVE_NESTED_EXCEPTION
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${HDFS3_ROOT_DIR}/CMake/CMakeTestCompileNestedException.cpp
|
||||
"${HDFS3_ROOT_DIR}/CMake/CMakeTestCompileNestedException.cpp"
|
||||
CMAKE_FLAGS "-DCMAKE_CXX_LINK_EXECUTABLE='echo not linking now...'"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
|
||||
|
@ -24,9 +24,9 @@ else()
|
||||
endif()
|
||||
|
||||
# project and source dir
|
||||
set(HDFS3_ROOT_DIR ${ClickHouse_SOURCE_DIR}/contrib/libhdfs3)
|
||||
set(HDFS3_SOURCE_DIR ${HDFS3_ROOT_DIR}/src)
|
||||
set(HDFS3_COMMON_DIR ${HDFS3_SOURCE_DIR}/common)
|
||||
set(HDFS3_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/libhdfs3")
|
||||
set(HDFS3_SOURCE_DIR "${HDFS3_ROOT_DIR}/src")
|
||||
set(HDFS3_COMMON_DIR "${HDFS3_SOURCE_DIR}/common")
|
||||
|
||||
# module
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
|
||||
@ -35,165 +35,165 @@ include(Options)
|
||||
|
||||
# source
|
||||
set(PROTO_FILES
|
||||
#${HDFS3_SOURCE_DIR}/proto/encryption.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/ClientDatanodeProtocol.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/hdfs.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/Security.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/ProtobufRpcEngine.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/ClientNamenodeProtocol.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/IpcConnectionContext.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/RpcHeader.proto
|
||||
${HDFS3_SOURCE_DIR}/proto/datatransfer.proto
|
||||
#"${HDFS3_SOURCE_DIR}/proto/encryption.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/ClientDatanodeProtocol.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/hdfs.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/Security.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/ProtobufRpcEngine.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/ClientNamenodeProtocol.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/IpcConnectionContext.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/RpcHeader.proto"
|
||||
"${HDFS3_SOURCE_DIR}/proto/datatransfer.proto"
|
||||
)
|
||||
|
||||
if(USE_PROTOBUF)
|
||||
PROTOBUF_GENERATE_CPP(PROTO_SOURCES PROTO_HEADERS ${PROTO_FILES})
|
||||
endif()
|
||||
|
||||
configure_file(${HDFS3_SOURCE_DIR}/platform.h.in ${CMAKE_CURRENT_BINARY_DIR}/platform.h)
|
||||
configure_file("${HDFS3_SOURCE_DIR}/platform.h.in" "${CMAKE_CURRENT_BINARY_DIR}/platform.h")
|
||||
|
||||
set(SRCS
|
||||
${HDFS3_SOURCE_DIR}/network/TcpSocket.cpp
|
||||
${HDFS3_SOURCE_DIR}/network/DomainSocket.cpp
|
||||
${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/Pipeline.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/Hdfs.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/Packet.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/KerberosName.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/PacketHeader.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/LocalBlockReader.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/UserInfo.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/Permission.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystemImpl.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/DirectoryIterator.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystemKey.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/LeaseRenewer.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/PeerCache.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/InputStream.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystem.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/InputStreamImpl.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/Token.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/PacketPool.cpp
|
||||
${HDFS3_SOURCE_DIR}/client/OutputStream.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcClient.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcChannel.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcAuth.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcConfig.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.cpp
|
||||
${HDFS3_SOURCE_DIR}/rpc/SaslClient.cpp
|
||||
${HDFS3_SOURCE_DIR}/server/Datanode.cpp
|
||||
${HDFS3_SOURCE_DIR}/server/LocatedBlocks.cpp
|
||||
${HDFS3_SOURCE_DIR}/server/NamenodeProxy.cpp
|
||||
${HDFS3_SOURCE_DIR}/server/NamenodeImpl.cpp
|
||||
${HDFS3_SOURCE_DIR}/server/NamenodeInfo.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/WritableUtils.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/ExceptionInternal.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/SessionConfig.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/StackPrinter.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/Exception.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/Logger.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/CFileWrapper.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/XmlConfig.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/WriteBuffer.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/HWCrc32c.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/MappedFileWrapper.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/Hash.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/SWCrc32c.cpp
|
||||
${HDFS3_SOURCE_DIR}/common/Thread.cpp
|
||||
"${HDFS3_SOURCE_DIR}/network/TcpSocket.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/network/DomainSocket.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/Pipeline.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/Hdfs.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/Packet.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/KerberosName.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/PacketHeader.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/LocalBlockReader.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/UserInfo.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/Permission.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystemImpl.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/DirectoryIterator.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystemKey.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/LeaseRenewer.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/PeerCache.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/InputStream.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystem.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/InputStreamImpl.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/Token.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/PacketPool.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/client/OutputStream.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcClient.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcChannel.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcAuth.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcConfig.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/SaslClient.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/server/Datanode.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/server/LocatedBlocks.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/server/NamenodeProxy.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/server/NamenodeImpl.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/server/NamenodeInfo.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/WritableUtils.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/ExceptionInternal.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/SessionConfig.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/StackPrinter.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/Exception.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/Logger.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/CFileWrapper.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/XmlConfig.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/WriteBuffer.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/HWCrc32c.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/MappedFileWrapper.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/Hash.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/SWCrc32c.cpp"
|
||||
"${HDFS3_SOURCE_DIR}/common/Thread.cpp"
|
||||
|
||||
${HDFS3_SOURCE_DIR}/network/TcpSocket.h
|
||||
${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.h
|
||||
${HDFS3_SOURCE_DIR}/network/Socket.h
|
||||
${HDFS3_SOURCE_DIR}/network/DomainSocket.h
|
||||
${HDFS3_SOURCE_DIR}/network/Syscall.h
|
||||
${HDFS3_SOURCE_DIR}/client/InputStreamImpl.h
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystem.h
|
||||
${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.h
|
||||
${HDFS3_SOURCE_DIR}/client/InputStreamInter.h
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystemImpl.h
|
||||
${HDFS3_SOURCE_DIR}/client/PacketPool.h
|
||||
${HDFS3_SOURCE_DIR}/client/Pipeline.h
|
||||
${HDFS3_SOURCE_DIR}/client/OutputStreamInter.h
|
||||
${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.h
|
||||
${HDFS3_SOURCE_DIR}/client/Token.h
|
||||
${HDFS3_SOURCE_DIR}/client/KerberosName.h
|
||||
${HDFS3_SOURCE_DIR}/client/DirectoryIterator.h
|
||||
${HDFS3_SOURCE_DIR}/client/hdfs.h
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystemStats.h
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystemKey.h
|
||||
${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.h
|
||||
${HDFS3_SOURCE_DIR}/client/Packet.h
|
||||
${HDFS3_SOURCE_DIR}/client/PacketHeader.h
|
||||
${HDFS3_SOURCE_DIR}/client/FileSystemInter.h
|
||||
${HDFS3_SOURCE_DIR}/client/LocalBlockReader.h
|
||||
${HDFS3_SOURCE_DIR}/client/TokenInternal.h
|
||||
${HDFS3_SOURCE_DIR}/client/InputStream.h
|
||||
${HDFS3_SOURCE_DIR}/client/PipelineAck.h
|
||||
${HDFS3_SOURCE_DIR}/client/BlockReader.h
|
||||
${HDFS3_SOURCE_DIR}/client/Permission.h
|
||||
${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.h
|
||||
${HDFS3_SOURCE_DIR}/client/LeaseRenewer.h
|
||||
${HDFS3_SOURCE_DIR}/client/UserInfo.h
|
||||
${HDFS3_SOURCE_DIR}/client/PeerCache.h
|
||||
${HDFS3_SOURCE_DIR}/client/OutputStream.h
|
||||
${HDFS3_SOURCE_DIR}/client/FileStatus.h
|
||||
${HDFS3_SOURCE_DIR}/client/DataTransferProtocol.h
|
||||
${HDFS3_SOURCE_DIR}/client/BlockLocation.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcConfig.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/SaslClient.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcAuth.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcClient.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcCall.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcChannel.h
|
||||
${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.h
|
||||
${HDFS3_SOURCE_DIR}/server/BlockLocalPathInfo.h
|
||||
${HDFS3_SOURCE_DIR}/server/LocatedBlocks.h
|
||||
${HDFS3_SOURCE_DIR}/server/DatanodeInfo.h
|
||||
${HDFS3_SOURCE_DIR}/server/RpcHelper.h
|
||||
${HDFS3_SOURCE_DIR}/server/ExtendedBlock.h
|
||||
${HDFS3_SOURCE_DIR}/server/NamenodeInfo.h
|
||||
${HDFS3_SOURCE_DIR}/server/NamenodeImpl.h
|
||||
${HDFS3_SOURCE_DIR}/server/LocatedBlock.h
|
||||
${HDFS3_SOURCE_DIR}/server/NamenodeProxy.h
|
||||
${HDFS3_SOURCE_DIR}/server/Datanode.h
|
||||
${HDFS3_SOURCE_DIR}/server/Namenode.h
|
||||
${HDFS3_SOURCE_DIR}/common/XmlConfig.h
|
||||
${HDFS3_SOURCE_DIR}/common/Logger.h
|
||||
${HDFS3_SOURCE_DIR}/common/WriteBuffer.h
|
||||
${HDFS3_SOURCE_DIR}/common/HWCrc32c.h
|
||||
${HDFS3_SOURCE_DIR}/common/Checksum.h
|
||||
${HDFS3_SOURCE_DIR}/common/SessionConfig.h
|
||||
${HDFS3_SOURCE_DIR}/common/Unordered.h
|
||||
${HDFS3_SOURCE_DIR}/common/BigEndian.h
|
||||
${HDFS3_SOURCE_DIR}/common/Thread.h
|
||||
${HDFS3_SOURCE_DIR}/common/StackPrinter.h
|
||||
${HDFS3_SOURCE_DIR}/common/Exception.h
|
||||
${HDFS3_SOURCE_DIR}/common/WritableUtils.h
|
||||
${HDFS3_SOURCE_DIR}/common/StringUtil.h
|
||||
${HDFS3_SOURCE_DIR}/common/LruMap.h
|
||||
${HDFS3_SOURCE_DIR}/common/Function.h
|
||||
${HDFS3_SOURCE_DIR}/common/DateTime.h
|
||||
${HDFS3_SOURCE_DIR}/common/Hash.h
|
||||
${HDFS3_SOURCE_DIR}/common/SWCrc32c.h
|
||||
${HDFS3_SOURCE_DIR}/common/ExceptionInternal.h
|
||||
${HDFS3_SOURCE_DIR}/common/Memory.h
|
||||
${HDFS3_SOURCE_DIR}/common/FileWrapper.h
|
||||
"${HDFS3_SOURCE_DIR}/network/TcpSocket.h"
|
||||
"${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.h"
|
||||
"${HDFS3_SOURCE_DIR}/network/Socket.h"
|
||||
"${HDFS3_SOURCE_DIR}/network/DomainSocket.h"
|
||||
"${HDFS3_SOURCE_DIR}/network/Syscall.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/InputStreamImpl.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystem.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/InputStreamInter.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystemImpl.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/PacketPool.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/Pipeline.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/OutputStreamInter.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/Token.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/KerberosName.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/DirectoryIterator.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/hdfs.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystemStats.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystemKey.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/Packet.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/PacketHeader.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileSystemInter.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/LocalBlockReader.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/TokenInternal.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/InputStream.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/PipelineAck.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/BlockReader.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/Permission.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/LeaseRenewer.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/UserInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/PeerCache.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/OutputStream.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/FileStatus.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/DataTransferProtocol.h"
|
||||
"${HDFS3_SOURCE_DIR}/client/BlockLocation.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcConfig.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/SaslClient.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcAuth.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcClient.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcCall.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcChannel.h"
|
||||
"${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/BlockLocalPathInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/LocatedBlocks.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/DatanodeInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/RpcHelper.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/ExtendedBlock.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/NamenodeInfo.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/NamenodeImpl.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/LocatedBlock.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/NamenodeProxy.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/Datanode.h"
|
||||
"${HDFS3_SOURCE_DIR}/server/Namenode.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/XmlConfig.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Logger.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/WriteBuffer.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/HWCrc32c.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Checksum.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/SessionConfig.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Unordered.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/BigEndian.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Thread.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/StackPrinter.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Exception.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/WritableUtils.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/StringUtil.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/LruMap.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Function.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/DateTime.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Hash.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/SWCrc32c.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/ExceptionInternal.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/Memory.h"
|
||||
"${HDFS3_SOURCE_DIR}/common/FileWrapper.h"
|
||||
)
|
||||
|
||||
# old kernels (< 3.17) doesn't have SYS_getrandom. Always use POSIX implementation to have better compatibility
|
||||
set_source_files_properties(${HDFS3_SOURCE_DIR}/rpc/RpcClient.cpp PROPERTIES COMPILE_FLAGS "-DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX=1")
|
||||
set_source_files_properties("${HDFS3_SOURCE_DIR}/rpc/RpcClient.cpp" PROPERTIES COMPILE_FLAGS "-DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX=1")
|
||||
|
||||
# target
|
||||
add_library(hdfs3 ${SRCS} ${PROTO_SOURCES} ${PROTO_HEADERS})
|
||||
|
@ -1,58 +1,58 @@
|
||||
set(LIBPQ_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libpq)
|
||||
set(LIBPQ_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libpq")
|
||||
|
||||
set(SRCS
|
||||
${LIBPQ_SOURCE_DIR}/fe-auth.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-auth-scram.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-connect.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-exec.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-lobj.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-misc.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-print.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-protocol2.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-protocol3.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-secure.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-secure-common.c
|
||||
${LIBPQ_SOURCE_DIR}/fe-secure-openssl.c
|
||||
${LIBPQ_SOURCE_DIR}/legacy-pqsignal.c
|
||||
${LIBPQ_SOURCE_DIR}/libpq-events.c
|
||||
${LIBPQ_SOURCE_DIR}/pqexpbuffer.c
|
||||
"${LIBPQ_SOURCE_DIR}/fe-auth.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-auth-scram.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-connect.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-exec.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-lobj.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-misc.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-print.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-protocol2.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-protocol3.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-secure.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-secure-common.c"
|
||||
"${LIBPQ_SOURCE_DIR}/fe-secure-openssl.c"
|
||||
"${LIBPQ_SOURCE_DIR}/legacy-pqsignal.c"
|
||||
"${LIBPQ_SOURCE_DIR}/libpq-events.c"
|
||||
"${LIBPQ_SOURCE_DIR}/pqexpbuffer.c"
|
||||
|
||||
${LIBPQ_SOURCE_DIR}/common/scram-common.c
|
||||
${LIBPQ_SOURCE_DIR}/common/sha2_openssl.c
|
||||
${LIBPQ_SOURCE_DIR}/common/md5.c
|
||||
${LIBPQ_SOURCE_DIR}/common/saslprep.c
|
||||
${LIBPQ_SOURCE_DIR}/common/unicode_norm.c
|
||||
${LIBPQ_SOURCE_DIR}/common/ip.c
|
||||
${LIBPQ_SOURCE_DIR}/common/jsonapi.c
|
||||
${LIBPQ_SOURCE_DIR}/common/wchar.c
|
||||
${LIBPQ_SOURCE_DIR}/common/base64.c
|
||||
${LIBPQ_SOURCE_DIR}/common/link-canary.c
|
||||
${LIBPQ_SOURCE_DIR}/common/fe_memutils.c
|
||||
${LIBPQ_SOURCE_DIR}/common/string.c
|
||||
${LIBPQ_SOURCE_DIR}/common/pg_get_line.c
|
||||
${LIBPQ_SOURCE_DIR}/common/stringinfo.c
|
||||
${LIBPQ_SOURCE_DIR}/common/psprintf.c
|
||||
${LIBPQ_SOURCE_DIR}/common/encnames.c
|
||||
${LIBPQ_SOURCE_DIR}/common/logging.c
|
||||
"${LIBPQ_SOURCE_DIR}/common/scram-common.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/sha2_openssl.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/md5.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/saslprep.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/unicode_norm.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/ip.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/jsonapi.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/wchar.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/base64.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/link-canary.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/fe_memutils.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/string.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/pg_get_line.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/stringinfo.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/psprintf.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/encnames.c"
|
||||
"${LIBPQ_SOURCE_DIR}/common/logging.c"
|
||||
|
||||
${LIBPQ_SOURCE_DIR}/port/snprintf.c
|
||||
${LIBPQ_SOURCE_DIR}/port/strlcpy.c
|
||||
${LIBPQ_SOURCE_DIR}/port/strerror.c
|
||||
${LIBPQ_SOURCE_DIR}/port/inet_net_ntop.c
|
||||
${LIBPQ_SOURCE_DIR}/port/getpeereid.c
|
||||
${LIBPQ_SOURCE_DIR}/port/chklocale.c
|
||||
${LIBPQ_SOURCE_DIR}/port/noblock.c
|
||||
${LIBPQ_SOURCE_DIR}/port/pg_strong_random.c
|
||||
${LIBPQ_SOURCE_DIR}/port/pgstrcasecmp.c
|
||||
${LIBPQ_SOURCE_DIR}/port/thread.c
|
||||
${LIBPQ_SOURCE_DIR}/port/path.c
|
||||
${LIBPQ_SOURCE_DIR}/port/explicit_bzero.c
|
||||
"${LIBPQ_SOURCE_DIR}/port/snprintf.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/strlcpy.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/strerror.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/inet_net_ntop.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/getpeereid.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/chklocale.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/noblock.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/pg_strong_random.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/pgstrcasecmp.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/thread.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/path.c"
|
||||
"${LIBPQ_SOURCE_DIR}/port/explicit_bzero.c"
|
||||
)
|
||||
|
||||
add_library(libpq ${SRCS})
|
||||
|
||||
target_include_directories (libpq PUBLIC ${LIBPQ_SOURCE_DIR})
|
||||
target_include_directories (libpq PUBLIC ${LIBPQ_SOURCE_DIR}/include)
|
||||
target_include_directories (libpq PRIVATE ${LIBPQ_SOURCE_DIR}/configs)
|
||||
target_include_directories (libpq PUBLIC "${LIBPQ_SOURCE_DIR}/include")
|
||||
target_include_directories (libpq PRIVATE "${LIBPQ_SOURCE_DIR}/configs")
|
||||
|
||||
target_link_libraries (libpq PRIVATE ssl)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user