Merge branch 'nikvas0/simple_optimizations' into nikvas0/replace_min_sum

This commit is contained in:
Nikita Vasilev 2021-04-28 21:24:37 +03:00
commit 80f333b34f
3211 changed files with 69023 additions and 108396 deletions

8
.gitmodules vendored
View File

@ -133,7 +133,7 @@
url = https://github.com/unicode-org/icu.git url = https://github.com/unicode-org/icu.git
[submodule "contrib/flatbuffers"] [submodule "contrib/flatbuffers"]
path = contrib/flatbuffers path = contrib/flatbuffers
url = https://github.com/google/flatbuffers.git url = https://github.com/ClickHouse-Extras/flatbuffers.git
[submodule "contrib/libc-headers"] [submodule "contrib/libc-headers"]
path = contrib/libc-headers path = contrib/libc-headers
url = https://github.com/ClickHouse-Extras/libc-headers.git url = https://github.com/ClickHouse-Extras/libc-headers.git
@ -221,3 +221,9 @@
[submodule "contrib/NuRaft"] [submodule "contrib/NuRaft"]
path = contrib/NuRaft path = contrib/NuRaft
url = https://github.com/ClickHouse-Extras/NuRaft.git url = https://github.com/ClickHouse-Extras/NuRaft.git
[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

View File

@ -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 21.3 (LTS)
### ClickHouse release v21.3, 2021-03-12 ### ClickHouse release v21.3, 2021-03-12
@ -26,7 +179,7 @@
#### Experimental feature #### Experimental feature
* Add experimental `Replicated` database engine. It replicates DDL queries across multiple hosts. [#16193](https://github.com/ClickHouse/ClickHouse/pull/16193) ([tavplubix](https://github.com/tavplubix)). * Add experimental `Replicated` database engine. It replicates DDL queries across multiple hosts. [#16193](https://github.com/ClickHouse/ClickHouse/pull/16193) ([tavplubix](https://github.com/tavplubix)).
* Introduce experimental support for window functions, enabled with `allow_experimental_functions = 1`. This is a preliminary, alpha-quality implementation that is not suitable for production use and will change in backward-incompatible ways in future releases. Please see [the documentation](https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/sql-reference/window-functions/index.md#experimental-window-functions) for the list of supported features. [#20337](https://github.com/ClickHouse/ClickHouse/pull/20337) ([Alexander Kuzmenkov](https://github.com/akuzm)). * Introduce experimental support for window functions, enabled with `allow_experimental_window_functions = 1`. This is a preliminary, alpha-quality implementation that is not suitable for production use and will change in backward-incompatible ways in future releases. Please see [the documentation](https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/sql-reference/window-functions/index.md#experimental-window-functions) for the list of supported features. [#20337](https://github.com/ClickHouse/ClickHouse/pull/20337) ([Alexander Kuzmenkov](https://github.com/akuzm)).
* Add the ability to backup/restore metadata files for DiskS3. [#18377](https://github.com/ClickHouse/ClickHouse/pull/18377) ([Pavel Kovalenko](https://github.com/Jokser)). * Add the ability to backup/restore metadata files for DiskS3. [#18377](https://github.com/ClickHouse/ClickHouse/pull/18377) ([Pavel Kovalenko](https://github.com/Jokser)).
#### Performance Improvement #### Performance Improvement

View File

@ -39,6 +39,8 @@ else()
set(RECONFIGURE_MESSAGE_LEVEL STATUS) set(RECONFIGURE_MESSAGE_LEVEL STATUS)
endif() endif()
enable_language(C CXX ASM)
include (cmake/arch.cmake) include (cmake/arch.cmake)
include (cmake/target.cmake) include (cmake/target.cmake)
include (cmake/tools.cmake) include (cmake/tools.cmake)
@ -66,17 +68,30 @@ endif ()
include (cmake/find/ccache.cmake) 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) if (ENABLE_CHECK_HEAVY_BUILDS)
# set DATA (since RSS does not work since 2.6.x+) to 2G # set DATA (since RSS does not work since 2.6.x+) to 2G
set (RLIMIT_DATA 5000000000) set (RLIMIT_DATA 5000000000)
# set VIRT (RLIMIT_AS) to 10G (DATA*10) # set VIRT (RLIMIT_AS) to 10G (DATA*10)
set (RLIMIT_AS 10000000000) set (RLIMIT_AS 10000000000)
# set CPU time limit to 600 seconds
set (RLIMIT_CPU 600)
# gcc10/gcc10/clang -fsanitize=memory is too heavy # gcc10/gcc10/clang -fsanitize=memory is too heavy
if (SANITIZE STREQUAL "memory" OR COMPILER_GCC) if (SANITIZE STREQUAL "memory" OR COMPILER_GCC)
set (RLIMIT_DATA 10000000000) set (RLIMIT_DATA 10000000000)
endif() 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 () endif ()
if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "None") if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "None")
@ -242,31 +257,50 @@ endif()
include(cmake/cpu_features.cmake) 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) if (ARCH_NATIVE)
set (COMPILER_FLAGS "${COMPILER_FLAGS} -march=native") set (COMPILER_FLAGS "${COMPILER_FLAGS} -march=native")
endif () endif ()
if (COMPILER_GCC OR COMPILER_CLANG) # Asynchronous unwind tables are needed for Query Profiler.
# to make numeric_limits<__int128> works with GCC # They are already by default on some platforms but possibly not on all platforms.
set (_CXX_STANDARD "gnu++2a") # Enable it explicitly.
else() set (COMPILER_FLAGS "${COMPILER_FLAGS} -fasynchronous-unwind-tables")
set (_CXX_STANDARD "c++2a")
endif()
# cmake < 3.12 doesn't support 20. We'll set CMAKE_CXX_FLAGS for now if (${CMAKE_VERSION} VERSION_LESS "3.12.4")
# set (CMAKE_CXX_STANDARD 20) # CMake < 3.12 doesn't support setting 20 as a C++ standard version.
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${_CXX_STANDARD}") # We will add C++ standard controlling flag in CMAKE_CXX_FLAGS manually for now.
set (CMAKE_CXX_EXTENSIONS 0) # https://cmake.org/cmake/help/latest/prop_tgt/CXX_EXTENSIONS.html#prop_tgt:CXX_EXTENSIONS if (COMPILER_GCC OR COMPILER_CLANG)
set (CMAKE_CXX_STANDARD_REQUIRED ON) # to make numeric_limits<__int128> works with GCC
set (_CXX_STANDARD "gnu++2a")
else ()
set (_CXX_STANDARD "c++2a")
endif ()
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${_CXX_STANDARD}")
else ()
set (CMAKE_CXX_STANDARD 20)
set (CMAKE_CXX_EXTENSIONS ON) # Same as gnu++2a (ON) vs c++2a (OFF): https://cmake.org/cmake/help/latest/prop_tgt/CXX_EXTENSIONS.html
set (CMAKE_CXX_STANDARD_REQUIRED ON)
endif ()
set (CMAKE_C_STANDARD 11)
set (CMAKE_C_EXTENSIONS ON)
set (CMAKE_C_STANDARD_REQUIRED ON)
if (COMPILER_GCC OR COMPILER_CLANG) if (COMPILER_GCC OR COMPILER_CLANG)
# Enable C++14 sized global deallocation functions. It should be enabled by setting -std=c++14 but I'm not sure. # Enable C++14 sized global deallocation functions. It should be enabled by setting -std=c++14 but I'm not sure.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsized-deallocation") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsized-deallocation")
endif () 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 # Compiler-specific coverage flags e.g. -fcoverage-mapping for gcc
option(WITH_COVERAGE "Profile the resulting binary/binaries" OFF) option(WITH_COVERAGE "Profile the resulting binary/binaries" OFF)
@ -454,6 +488,7 @@ find_contrib_lib(double-conversion) # Must be before parquet
include (cmake/find/ssl.cmake) include (cmake/find/ssl.cmake)
include (cmake/find/ldap.cmake) # after ssl include (cmake/find/ldap.cmake) # after ssl
include (cmake/find/icu.cmake) include (cmake/find/icu.cmake)
include (cmake/find/xz.cmake)
include (cmake/find/zlib.cmake) include (cmake/find/zlib.cmake)
include (cmake/find/zstd.cmake) include (cmake/find/zstd.cmake)
include (cmake/find/ltdl.cmake) # for odbc include (cmake/find/ltdl.cmake) # for odbc
@ -464,6 +499,7 @@ include (cmake/find/krb5.cmake)
include (cmake/find/libgsasl.cmake) include (cmake/find/libgsasl.cmake)
include (cmake/find/cyrus-sasl.cmake) include (cmake/find/cyrus-sasl.cmake)
include (cmake/find/rdkafka.cmake) include (cmake/find/rdkafka.cmake)
include (cmake/find/libuv.cmake) # for amqpcpp and cassandra
include (cmake/find/amqpcpp.cmake) include (cmake/find/amqpcpp.cmake)
include (cmake/find/capnp.cmake) include (cmake/find/capnp.cmake)
include (cmake/find/llvm.cmake) include (cmake/find/llvm.cmake)
@ -486,6 +522,7 @@ include (cmake/find/fast_float.cmake)
include (cmake/find/rapidjson.cmake) include (cmake/find/rapidjson.cmake)
include (cmake/find/fastops.cmake) include (cmake/find/fastops.cmake)
include (cmake/find/odbc.cmake) include (cmake/find/odbc.cmake)
include (cmake/find/nanodbc.cmake)
include (cmake/find/rocksdb.cmake) include (cmake/find/rocksdb.cmake)
include (cmake/find/libpqxx.cmake) include (cmake/find/libpqxx.cmake)
include (cmake/find/nuraft.cmake) include (cmake/find/nuraft.cmake)
@ -501,6 +538,7 @@ include (cmake/find/msgpack.cmake)
include (cmake/find/cassandra.cmake) include (cmake/find/cassandra.cmake)
include (cmake/find/sentry.cmake) include (cmake/find/sentry.cmake)
include (cmake/find/stats.cmake) include (cmake/find/stats.cmake)
include (cmake/find/datasketches.cmake)
set (USE_INTERNAL_CITYHASH_LIBRARY ON CACHE INTERNAL "") set (USE_INTERNAL_CITYHASH_LIBRARY ON CACHE INTERNAL "")
find_contrib_lib(cityhash) find_contrib_lib(cityhash)

View File

@ -8,6 +8,7 @@ add_subdirectory (loggers)
add_subdirectory (pcg-random) add_subdirectory (pcg-random)
add_subdirectory (widechar_width) add_subdirectory (widechar_width)
add_subdirectory (readpassphrase) add_subdirectory (readpassphrase)
add_subdirectory (bridge)
if (USE_MYSQL) if (USE_MYSQL)
add_subdirectory (mysqlxx) add_subdirectory (mysqlxx)

View File

@ -0,0 +1,7 @@
add_library (bridge
IBridge.cpp
)
target_include_directories (daemon PUBLIC ..)
target_link_libraries (bridge PRIVATE daemon dbms Poco::Data Poco::Data::ODBC)

238
base/bridge/IBridge.cpp Normal file
View File

@ -0,0 +1,238 @@
#include "IBridge.h"
#include <IO/ReadHelpers.h>
#include <boost/program_options.hpp>
#include <Poco/Net/NetException.h>
#include <Poco/Util/HelpFormatter.h>
#include <Common/StringUtils/StringUtils.h>
#include <Formats/registerFormats.h>
#include <common/logger_useful.h>
#include <Common/SensitiveDataMasker.h>
#include <Server/HTTP/HTTPServer.h>
#if USE_ODBC
# include <Poco/Data/ODBC/Connector.h>
#endif
namespace DB
{
namespace ErrorCodes
{
extern const int ARGUMENT_OUT_OF_BOUND;
}
namespace
{
Poco::Net::SocketAddress makeSocketAddress(const std::string & host, UInt16 port, Poco::Logger * log)
{
Poco::Net::SocketAddress socket_address;
try
{
socket_address = Poco::Net::SocketAddress(host, port);
}
catch (const Poco::Net::DNSException & e)
{
const auto code = e.code();
if (code == EAI_FAMILY
#if defined(EAI_ADDRFAMILY)
|| code == EAI_ADDRFAMILY
#endif
)
{
LOG_ERROR(log, "Cannot resolve listen_host ({}), error {}: {}. If it is an IPv6 address and your host has disabled IPv6, then consider to specify IPv4 address to listen in <listen_host> element of configuration file. Example: <listen_host>0.0.0.0</listen_host>", host, e.code(), e.message());
}
throw;
}
return socket_address;
}
Poco::Net::SocketAddress socketBindListen(Poco::Net::ServerSocket & socket, const std::string & host, UInt16 port, Poco::Logger * log)
{
auto address = makeSocketAddress(host, port, log);
#if POCO_VERSION < 0x01080000
socket.bind(address, /* reuseAddress = */ true);
#else
socket.bind(address, /* reuseAddress = */ true, /* reusePort = */ false);
#endif
socket.listen(/* backlog = */ 64);
return address;
}
}
void IBridge::handleHelp(const std::string &, const std::string &)
{
Poco::Util::HelpFormatter help_formatter(options());
help_formatter.setCommand(commandName());
help_formatter.setHeader("HTTP-proxy for odbc requests");
help_formatter.setUsage("--http-port <port>");
help_formatter.format(std::cerr);
stopOptionsProcessing();
}
void IBridge::defineOptions(Poco::Util::OptionSet & options)
{
options.addOption(
Poco::Util::Option("http-port", "", "port to listen").argument("http-port", true) .binding("http-port"));
options.addOption(
Poco::Util::Option("listen-host", "", "hostname or address to listen, default 127.0.0.1").argument("listen-host").binding("listen-host"));
options.addOption(
Poco::Util::Option("http-timeout", "", "http timeout for socket, default 1800").argument("http-timeout").binding("http-timeout"));
options.addOption(
Poco::Util::Option("max-server-connections", "", "max connections to server, default 1024").argument("max-server-connections").binding("max-server-connections"));
options.addOption(
Poco::Util::Option("keep-alive-timeout", "", "keepalive timeout, default 10").argument("keep-alive-timeout").binding("keep-alive-timeout"));
options.addOption(
Poco::Util::Option("log-level", "", "sets log level, default info") .argument("log-level").binding("logger.level"));
options.addOption(
Poco::Util::Option("log-path", "", "log path for all logs, default console").argument("log-path").binding("logger.log"));
options.addOption(
Poco::Util::Option("err-log-path", "", "err log path for all logs, default no").argument("err-log-path").binding("logger.errorlog"));
options.addOption(
Poco::Util::Option("stdout-path", "", "stdout log path, default console").argument("stdout-path").binding("logger.stdout"));
options.addOption(
Poco::Util::Option("stderr-path", "", "stderr log path, default console").argument("stderr-path").binding("logger.stderr"));
using Me = std::decay_t<decltype(*this)>;
options.addOption(
Poco::Util::Option("help", "", "produce this help message").binding("help").callback(Poco::Util::OptionCallback<Me>(this, &Me::handleHelp)));
ServerApplication::defineOptions(options); // NOLINT Don't need complex BaseDaemon's .xml config
}
void IBridge::initialize(Application & self)
{
BaseDaemon::closeFDs();
is_help = config().has("help");
if (is_help)
return;
config().setString("logger", bridgeName());
/// Redirect stdout, stderr to specified files.
/// Some libraries and sanitizers write to stderr in case of errors.
const auto stdout_path = config().getString("logger.stdout", "");
if (!stdout_path.empty())
{
if (!freopen(stdout_path.c_str(), "a+", stdout))
throw Poco::OpenFileException("Cannot attach stdout to " + stdout_path);
/// Disable buffering for stdout.
setbuf(stdout, nullptr);
}
const auto stderr_path = config().getString("logger.stderr", "");
if (!stderr_path.empty())
{
if (!freopen(stderr_path.c_str(), "a+", stderr))
throw Poco::OpenFileException("Cannot attach stderr to " + stderr_path);
/// Disable buffering for stderr.
setbuf(stderr, nullptr);
}
buildLoggers(config(), logger(), self.commandName());
BaseDaemon::logRevision();
log = &logger();
hostname = config().getString("listen-host", "127.0.0.1");
port = config().getUInt("http-port");
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);
max_server_connections = config().getUInt("max-server-connections", 1024);
keep_alive_timeout = config().getUInt("keep-alive-timeout", 10);
initializeTerminationAndSignalProcessing();
#if USE_ODBC
if (bridgeName() == "ODBCBridge")
Poco::Data::ODBC::Connector::registerConnector();
#endif
ServerApplication::initialize(self); // NOLINT
}
void IBridge::uninitialize()
{
BaseDaemon::uninitialize();
}
int IBridge::main(const std::vector<std::string> & /*args*/)
{
if (is_help)
return Application::EXIT_OK;
registerFormats();
LOG_INFO(log, "Starting up {} on host: {}, port: {}", bridgeName(), hostname, port);
Poco::Net::ServerSocket socket;
auto address = socketBindListen(socket, hostname, port, log);
socket.setReceiveTimeout(http_timeout);
socket.setSendTimeout(http_timeout);
Poco::ThreadPool server_pool(3, max_server_connections);
Poco::Net::HTTPServerParams::Ptr http_params = new Poco::Net::HTTPServerParams;
http_params->setTimeout(http_timeout);
http_params->setKeepAliveTimeout(keep_alive_timeout);
auto shared_context = Context::createShared();
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"));
auto server = HTTPServer(
context,
getHandlerFactoryPtr(context),
server_pool,
socket,
http_params);
SCOPE_EXIT({
LOG_DEBUG(log, "Received termination signal.");
LOG_DEBUG(log, "Waiting for current connections to close.");
server.stop();
for (size_t count : ext::range(1, 6))
{
if (server.currentConnections() == 0)
break;
LOG_DEBUG(log, "Waiting for {} connections, try {}", server.currentConnections(), count);
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}
});
server.start();
LOG_INFO(log, "Listening http://{}", address.toString());
waitForTerminationRequest();
return Application::EXIT_OK;
}
}

51
base/bridge/IBridge.h Normal file
View File

@ -0,0 +1,51 @@
#pragma once
#include <Interpreters/Context.h>
#include <Server/HTTP/HTTPRequestHandlerFactory.h>
#include <daemon/BaseDaemon.h>
#include <Poco/Logger.h>
#include <Poco/Util/ServerApplication.h>
namespace DB
{
/// Class represents base for clickhouse-odbc-bridge and clickhouse-library-bridge servers.
/// Listens to incoming HTTP POST and GET requests on specified port and host.
/// Has two handlers '/' for all incoming POST requests and /ping for GET request about service status.
class IBridge : public BaseDaemon
{
public:
/// Define command line arguments
void defineOptions(Poco::Util::OptionSet & options) override;
protected:
using HandlerFactoryPtr = std::shared_ptr<HTTPRequestHandlerFactory>;
void initialize(Application & self) override;
void uninitialize() override;
int main(const std::vector<std::string> & args) override;
virtual std::string bridgeName() const = 0;
virtual HandlerFactoryPtr getHandlerFactoryPtr(ContextPtr context) const = 0;
size_t keep_alive_timeout;
private:
void handleHelp(const std::string &, const std::string &);
bool is_help;
std::string hostname;
size_t port;
std::string log_level;
size_t max_server_connections;
size_t http_timeout;
Poco::Logger * log;
};
}

View File

@ -7,8 +7,7 @@
#include <condition_variable> #include <condition_variable>
#include <common/defines.h> #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. /** 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 * The main use case is to have fixed size of objects that can be reused in difference threads during their lifetime

View File

@ -29,7 +29,7 @@ elseif (ENABLE_READLINE)
endif () endif ()
if (USE_DEBUG_HELPERS) 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}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${INCLUDE_DEBUG_HELPERS}")
endif () endif ()
@ -45,7 +45,11 @@ if (USE_INTERNAL_CCTZ)
set_source_files_properties(DateLUTImpl.cpp PROPERTIES COMPILE_DEFINITIONS USE_INTERNAL_CCTZ) set_source_files_properties(DateLUTImpl.cpp PROPERTIES COMPILE_DEFINITIONS USE_INTERNAL_CCTZ)
endif() 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)
endif()
# Allow explicit fallback to readline # Allow explicit fallback to readline
if (NOT ENABLE_REPLXX AND ENABLE_READLINE) if (NOT ENABLE_REPLXX AND ENABLE_READLINE)

View File

@ -25,7 +25,7 @@
#if defined(__PPC__) #if defined(__PPC__)
#if !__clang__ #if !defined(__clang__)
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif #endif
#endif #endif
@ -853,15 +853,43 @@ public:
{ {
if (hours == 1) if (hours == 1)
return toStartOfHour(t); return toStartOfHour(t);
/** We will round the hour number since the midnight.
* It may split the day into non-equal intervals.
* For example, if we will round to 11-hour interval,
* the day will be split to the intervals 00:00:00..10:59:59, 11:00:00..21:59:59, 22:00:00..23:59:59.
* In case of daylight saving time or other transitions,
* the intervals can be shortened or prolonged to the amount of transition.
*/
UInt64 seconds = hours * 3600; UInt64 seconds = hours * 3600;
t = roundDown(t, seconds); const LUTIndex index = findIndex(t);
const Values & values = lut[index];
if (t >= 0 && offset_is_whole_number_of_hours_during_epoch) time_t time = t - values.date;
return t; if (time >= values.time_at_offset_change())
{
/// Align to new hour numbers before rounding.
time += values.amount_of_offset_change();
time = time / seconds * seconds;
/// TODO check if it's correct. /// Should subtract the shift back but only if rounded time is not before shift.
return toStartOfHour(t); if (time >= values.time_at_offset_change())
{
time -= values.amount_of_offset_change();
/// With cutoff at the time of the shift. Otherwise we may end up with something like 23:00 previous day.
if (time < values.time_at_offset_change())
time = values.time_at_offset_change();
}
}
else
{
time = time / seconds * seconds;
}
return values.date + time;
} }
inline time_t toStartOfMinuteInterval(time_t t, UInt64 minutes) const inline time_t toStartOfMinuteInterval(time_t t, UInt64 minutes) const
@ -869,6 +897,14 @@ public:
if (minutes == 1) if (minutes == 1)
return toStartOfMinute(t); return toStartOfMinute(t);
/** In contrast to "toStartOfHourInterval" function above,
* the minute intervals are not aligned to the midnight.
* You will get unexpected results if for example, you round down to 60 minute interval
* and there was a time shift to 30 minutes.
*
* But this is not specified in docs and can be changed in future.
*/
UInt64 seconds = 60 * minutes; UInt64 seconds = 60 * minutes;
return roundDown(t, seconds); return roundDown(t, seconds);
} }
@ -1230,7 +1266,7 @@ public:
}; };
#if defined(__PPC__) #if defined(__PPC__)
#if !__clang__ #if !defined(__clang__)
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif
#endif #endif

View File

@ -25,6 +25,12 @@ namespace common
return x - y; return x - y;
} }
template <typename T>
inline auto NO_SANITIZE_UNDEFINED negateIgnoreOverflow(T x)
{
return -x;
}
template <typename T> template <typename T>
inline bool addOverflow(T x, T y, T & res) inline bool addOverflow(T x, T y, T & res)
{ {

View File

@ -1,45 +1,28 @@
// https://stackoverflow.com/questions/1413445/reading-a-password-from-stdcin
#include <common/setTerminalEcho.h> #include <common/setTerminalEcho.h>
#include <common/errnoToString.h> #include <common/errnoToString.h>
#include <stdexcept> #include <stdexcept>
#include <cstring> #include <cstring>
#include <string> #include <string>
#ifdef WIN32
#include <windows.h>
#else
#include <termios.h> #include <termios.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h>
#endif
void setTerminalEcho(bool enable) void setTerminalEcho(bool enable)
{ {
#ifdef WIN32 /// Obtain terminal attributes,
auto handle = GetStdHandle(STD_INPUT_HANDLE); /// toggle the ECHO flag
DWORD mode; /// and set them back.
if (!GetConsoleMode(handle, &mode))
throw std::runtime_error(std::string("setTerminalEcho failed get: ") + std::to_string(GetLastError()));
if (!enable) struct termios tty{};
mode &= ~ENABLE_ECHO_INPUT;
else
mode |= ENABLE_ECHO_INPUT;
if (!SetConsoleMode(handle, mode)) if (0 != tcgetattr(STDIN_FILENO, &tty))
throw std::runtime_error(std::string("setTerminalEcho failed set: ") + std::to_string(GetLastError()));
#else
struct termios tty;
if (tcgetattr(STDIN_FILENO, &tty))
throw std::runtime_error(std::string("setTerminalEcho failed get: ") + errnoToString(errno)); throw std::runtime_error(std::string("setTerminalEcho failed get: ") + errnoToString(errno));
if (!enable)
tty.c_lflag &= ~ECHO;
else
tty.c_lflag |= ECHO;
auto ret = tcsetattr(STDIN_FILENO, TCSANOW, &tty); if (enable)
if (ret) tty.c_lflag |= ECHO;
else
tty.c_lflag &= ~ECHO;
if (0 != tcsetattr(STDIN_FILENO, TCSANOW, &tty))
throw std::runtime_error(std::string("setTerminalEcho failed set: ") + errnoToString(errno)); throw std::runtime_error(std::string("setTerminalEcho failed set: ") + errnoToString(errno));
#endif
} }

View File

@ -271,9 +271,13 @@ struct integer<Bits, Signed>::_impl
/// As to_Integral does a static_cast to int64_t, it may result in UB. /// 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 /// The necessary check here is that long double has enough significant (mantissa) bits to store the
/// int64_t max value precisely. /// int64_t max value precisely.
//TODO Be compatible with Apple aarch64
#if not (defined(__APPLE__) && defined(__aarch64__))
static_assert(LDBL_MANT_DIG >= 64, static_assert(LDBL_MANT_DIG >= 64,
"On your system long double has less than 64 precision bits," "On your system long double has less than 64 precision bits,"
"which may result in UB when initializing double from int64_t"); "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))) if ((rhs > 0 && rhs < static_cast<long double>(max_int)) || (rhs < 0 && rhs > static_cast<long double>(min_int)))
{ {

View File

@ -5,6 +5,11 @@ add_library (daemon
) )
target_include_directories (daemon PUBLIC ..) target_include_directories (daemon PUBLIC ..)
if (OS_DARWIN AND NOT MAKE_STATIC_LIBRARIES)
target_link_libraries (daemon PUBLIC -Wl,-undefined,dynamic_lookup)
endif()
target_link_libraries (daemon PUBLIC loggers PRIVATE clickhouse_common_io clickhouse_common_config common ${EXECINFO_LIBRARIES}) target_link_libraries (daemon PUBLIC loggers PRIVATE clickhouse_common_io clickhouse_common_config common ${EXECINFO_LIBRARIES})
if (USE_SENTRY) if (USE_SENTRY)

View File

@ -9,6 +9,7 @@
#include <common/getMemoryAmount.h> #include <common/getMemoryAmount.h>
#include <common/logger_useful.h> #include <common/logger_useful.h>
#include <Common/formatReadable.h>
#include <Common/SymbolIndex.h> #include <Common/SymbolIndex.h>
#include <Common/StackTrace.h> #include <Common/StackTrace.h>
#include <Common/getNumberOfPhysicalCPUCores.h> #include <Common/getNumberOfPhysicalCPUCores.h>

View 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__); \
} \
)

View File

@ -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_headers_and_sources(loggers .)
add_library(loggers ${loggers_sources} ${loggers_headers}) add_library(loggers ${loggers_sources} ${loggers_headers})
target_link_libraries(loggers PRIVATE dbms clickhouse_common_io) target_link_libraries(loggers PRIVATE dbms clickhouse_common_io)

View File

@ -14,8 +14,8 @@ add_library (mysqlxx
target_include_directories (mysqlxx PUBLIC ..) target_include_directories (mysqlxx PUBLIC ..)
if (USE_INTERNAL_MYSQL_LIBRARY) if (USE_INTERNAL_MYSQL_LIBRARY)
target_include_directories (mysqlxx PUBLIC ${ClickHouse_SOURCE_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) target_include_directories (mysqlxx PUBLIC "${ClickHouse_BINARY_DIR}/contrib/mariadb-connector-c/include")
else () else ()
set(PLATFORM_LIBRARIES ${CMAKE_DL_LIBS}) set(PLATFORM_LIBRARIES ${CMAKE_DL_LIBS})

View File

@ -159,9 +159,9 @@ public:
*/ */
Pool(const std::string & db_, Pool(const std::string & db_,
const std::string & server_, const std::string & server_,
const std::string & user_ = "", const std::string & user_,
const std::string & password_ = "", const std::string & password_,
unsigned port_ = 0, unsigned port_,
const std::string & socket_ = "", const std::string & socket_ = "",
unsigned connect_timeout_ = MYSQLXX_DEFAULT_TIMEOUT, unsigned connect_timeout_ = MYSQLXX_DEFAULT_TIMEOUT,
unsigned rw_timeout_ = MYSQLXX_DEFAULT_RW_TIMEOUT, unsigned rw_timeout_ = MYSQLXX_DEFAULT_RW_TIMEOUT,

View File

@ -2,7 +2,6 @@
#include <ctime> #include <ctime>
#include <random> #include <random>
#include <thread> #include <thread>
#include <mysqlxx/PoolWithFailover.h> #include <mysqlxx/PoolWithFailover.h>
@ -15,9 +14,12 @@ static bool startsWith(const std::string & s, const char * prefix)
using namespace mysqlxx; using namespace mysqlxx;
PoolWithFailover::PoolWithFailover(const Poco::Util::AbstractConfiguration & config_, PoolWithFailover::PoolWithFailover(
const std::string & config_name_, const unsigned default_connections_, const Poco::Util::AbstractConfiguration & config_,
const unsigned max_connections_, const size_t max_tries_) const std::string & config_name_,
const unsigned default_connections_,
const unsigned max_connections_,
const size_t max_tries_)
: max_tries(max_tries_) : max_tries(max_tries_)
{ {
shareable = config_.getBool(config_name_ + ".share_connection", false); shareable = config_.getBool(config_name_ + ".share_connection", false);
@ -59,16 +61,38 @@ PoolWithFailover::PoolWithFailover(const Poco::Util::AbstractConfiguration & con
} }
} }
PoolWithFailover::PoolWithFailover(const std::string & config_name_, const unsigned default_connections_,
const unsigned max_connections_, const size_t max_tries_) PoolWithFailover::PoolWithFailover(
: PoolWithFailover{ const std::string & config_name_,
Poco::Util::Application::instance().config(), config_name_, const unsigned default_connections_,
default_connections_, max_connections_, max_tries_} const unsigned max_connections_,
const size_t max_tries_)
: PoolWithFailover{Poco::Util::Application::instance().config(),
config_name_, default_connections_, max_connections_, max_tries_}
{ {
} }
PoolWithFailover::PoolWithFailover(
const std::string & database,
const RemoteDescription & addresses,
const std::string & user,
const std::string & password,
size_t max_tries_)
: max_tries(max_tries_)
, shareable(false)
{
/// Replicas have the same priority, but traversed replicas are moved to the end of the queue.
for (const auto & [host, port] : addresses)
{
replicas_by_priority[0].emplace_back(std::make_shared<Pool>(database, host, user, password, port));
}
}
PoolWithFailover::PoolWithFailover(const PoolWithFailover & other) PoolWithFailover::PoolWithFailover(const PoolWithFailover & other)
: max_tries{other.max_tries}, shareable{other.shareable} : max_tries{other.max_tries}
, shareable{other.shareable}
{ {
if (shareable) if (shareable)
{ {

View File

@ -11,6 +11,8 @@
namespace mysqlxx namespace mysqlxx
{ {
/** MySQL connection pool with support of failover. /** MySQL connection pool with support of failover.
*
* For dictionary source:
* Have information about replicas and their priorities. * Have information about replicas and their priorities.
* Tries to connect to replica in an order of priority. When equal priority, choose replica with maximum time without connections. * Tries to connect to replica in an order of priority. When equal priority, choose replica with maximum time without connections.
* *
@ -68,42 +70,58 @@ namespace mysqlxx
using PoolPtr = std::shared_ptr<Pool>; using PoolPtr = std::shared_ptr<Pool>;
using Replicas = std::vector<PoolPtr>; using Replicas = std::vector<PoolPtr>;
/// [priority][index] -> replica. /// [priority][index] -> replica. Highest priority is 0.
using ReplicasByPriority = std::map<int, Replicas>; using ReplicasByPriority = std::map<int, Replicas>;
ReplicasByPriority replicas_by_priority; ReplicasByPriority replicas_by_priority;
/// Number of connection tries. /// Number of connection tries.
size_t max_tries; size_t max_tries;
/// Mutex for set of replicas. /// Mutex for set of replicas.
std::mutex mutex; std::mutex mutex;
/// Can the Pool be shared /// Can the Pool be shared
bool shareable; bool shareable;
public: public:
using Entry = Pool::Entry; using Entry = Pool::Entry;
using RemoteDescription = std::vector<std::pair<std::string, uint16_t>>;
/** /**
* config_name Name of parameter in configuration file. * * Mysql dictionary sourse related params:
* config_name Name of parameter in configuration file for dictionary source.
*
* * Mysql storage related parameters:
* replicas_description
*
* * Mutual parameters:
* default_connections Number of connection in pool to each replica at start. * default_connections Number of connection in pool to each replica at start.
* max_connections Maximum number of connections in pool to each replica. * max_connections Maximum number of connections in pool to each replica.
* max_tries_ Max number of connection tries. * max_tries_ Max number of connection tries.
*/ */
PoolWithFailover(const std::string & config_name_, PoolWithFailover(
const std::string & config_name_,
unsigned default_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_START_CONNECTIONS, unsigned default_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_START_CONNECTIONS,
unsigned max_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_CONNECTIONS, unsigned max_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_CONNECTIONS,
size_t max_tries_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES); size_t max_tries_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES);
PoolWithFailover(const Poco::Util::AbstractConfiguration & config_, PoolWithFailover(
const Poco::Util::AbstractConfiguration & config_,
const std::string & config_name_, const std::string & config_name_,
unsigned default_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_START_CONNECTIONS, unsigned default_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_START_CONNECTIONS,
unsigned max_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_CONNECTIONS, unsigned max_connections_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_CONNECTIONS,
size_t max_tries_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES); size_t max_tries_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES);
PoolWithFailover(
const std::string & database,
const RemoteDescription & addresses,
const std::string & user,
const std::string & password,
size_t max_tries_ = MYSQLXX_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES);
PoolWithFailover(const PoolWithFailover & other); PoolWithFailover(const PoolWithFailover & other);
/** Allocates a connection to use. */ /** Allocates a connection to use. */
Entry get(); Entry get();
}; };
using PoolWithFailoverPtr = std::shared_ptr<PoolWithFailover>;
} }

View File

@ -1,7 +1,7 @@
if (CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64") if (CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64")
set (ARCH_AMD64 1) set (ARCH_AMD64 1)
endif () endif ()
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*|ARM64.*)")
set (ARCH_AARCH64 1) set (ARCH_AARCH64 1)
endif () endif ()
if (ARCH_AARCH64 OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm") if (ARCH_AARCH64 OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm")

View File

@ -1,9 +1,9 @@
# This strings autochanged from release_lib.sh: # This strings autochanged from release_lib.sh:
SET(VERSION_REVISION 54449) SET(VERSION_REVISION 54451)
SET(VERSION_MAJOR 21) SET(VERSION_MAJOR 21)
SET(VERSION_MINOR 4) SET(VERSION_MINOR 6)
SET(VERSION_PATCH 1) SET(VERSION_PATCH 1)
SET(VERSION_GITHASH af2135ef9dc72f16fa4f229b731262c3f0a8bbdc) SET(VERSION_GITHASH 96fced4c3cf432fb0b401d2ab01f0c56e5f74a96)
SET(VERSION_DESCRIBE v21.4.1.1-prestable) SET(VERSION_DESCRIBE v21.6.1.1-prestable)
SET(VERSION_STRING 21.4.1.1) SET(VERSION_STRING 21.6.1.1)
# end of autochange # end of autochange

View File

@ -1,11 +1,14 @@
set (DEFAULT_LIBS "-nodefaultlibs") 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") 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}") message(STATUS "Default libraries: ${DEFAULT_LIBS}")
set(CMAKE_CXX_STANDARD_LIBRARIES ${DEFAULT_LIBS}) set(CMAKE_CXX_STANDARD_LIBRARIES ${DEFAULT_LIBS})

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

View File

@ -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}) option(ENABLE_AMQPCPP "Enalbe AMQP-CPP" ${ENABLE_LIBRARIES})
if (NOT ENABLE_AMQPCPP) if (NOT ENABLE_AMQPCPP)
@ -12,11 +17,13 @@ if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/CMakeLists.txt")
endif () endif ()
set (USE_AMQPCPP 1) 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") set (AMQPCPP_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/include")
list (APPEND AMQPCPP_INCLUDE_DIR list (APPEND AMQPCPP_INCLUDE_DIR
"${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP/include" "${LIBUV_INCLUDE_DIR}"
"${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP") "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP")
list (APPEND AMQPCPP_LIBRARY "${LIBUV_LIBRARY}")
message (STATUS "Using AMQP-CPP=${USE_AMQPCPP}: ${AMQPCPP_INCLUDE_DIR} : ${AMQPCPP_LIBRARY}") message (STATUS "Using AMQP-CPP=${USE_AMQPCPP}: ${AMQPCPP_INCLUDE_DIR} : ${AMQPCPP_LIBRARY}")

View File

@ -1,4 +1,8 @@
option (ENABLE_BASE64 "Enable base64" ${ENABLE_LIBRARIES}) if(ARCH_AMD64 OR ARCH_ARM)
option (ENABLE_BASE64 "Enable base64" ${ENABLE_LIBRARIES})
elseif(ENABLE_BASE64)
message (${RECONFIGURE_MESSAGE_LEVEL} "base64 library is only supported on x86_64 and aarch64")
endif()
if (NOT ENABLE_BASE64) if (NOT ENABLE_BASE64)
return() return()

View File

@ -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}) option(ENABLE_CASSANDRA "Enable Cassandra" ${ENABLE_LIBRARIES})
if (NOT ENABLE_CASSANDRA) if (NOT ENABLE_CASSANDRA)
@ -8,27 +13,22 @@ if (APPLE)
set(CMAKE_MACOSX_RPATH ON) set(CMAKE_MACOSX_RPATH ON)
endif() endif()
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/libuv") if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/cassandra")
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")
message (ERROR "submodule contrib/cassandra is missing. to fix try run: \n git submodule update --init --recursive") message (ERROR "submodule contrib/cassandra is missing. to fix try run: \n git submodule update --init --recursive")
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal Cassandra") message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal Cassandra")
else() set (USE_CASSANDRA 0)
set (LIBUV_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/libuv") return()
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")
endif() 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 cassandra=${USE_CASSANDRA}: ${CASSANDRA_INCLUDE_DIR} : ${CASSANDRA_LIBRARY}")
message (STATUS "Using libuv: ${LIBUV_ROOT_DIR} : ${LIBUV_LIBRARY}")

View File

@ -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") if (CCACHE_VERSION VERSION_GREATER "3.2.0" OR NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
message(STATUS "Using ${CCACHE_FOUND} ${CCACHE_VERSION}") 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}) set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_FOUND})
# debian (debhelpers) set SOURCE_DATE_EPOCH environment variable, that is # debian (debhelpers) set SOURCE_DATE_EPOCH environment variable, that is

View File

@ -0,0 +1,29 @@
option (ENABLE_DATASKETCHES "Enable DataSketches" ${ENABLE_LIBRARIES})
if (ENABLE_DATASKETCHES)
option (USE_INTERNAL_DATASKETCHES_LIBRARY "Set to FALSE to use system DataSketches library instead of bundled" ${NOT_UNBUNDLED})
if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/datasketches-cpp/theta/CMakeLists.txt")
if (USE_INTERNAL_DATASKETCHES_LIBRARY)
message(WARNING "submodule contrib/datasketches-cpp is missing. to fix try run: \n git submodule update --init --recursive")
endif()
set(MISSING_INTERNAL_DATASKETCHES_LIBRARY 1)
set(USE_INTERNAL_DATASKETCHES_LIBRARY 0)
endif()
if (USE_INTERNAL_DATASKETCHES_LIBRARY)
set(DATASKETCHES_LIBRARY theta)
set(DATASKETCHES_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/datasketches-cpp/common/include" "${ClickHouse_SOURCE_DIR}/contrib/datasketches-cpp/theta/include")
elseif (NOT MISSING_INTERNAL_DATASKETCHES_LIBRARY)
find_library(DATASKETCHES_LIBRARY theta)
find_path(DATASKETCHES_INCLUDE_DIR NAMES theta_sketch.hpp PATHS ${DATASKETCHES_INCLUDE_PATHS})
endif()
if (DATASKETCHES_LIBRARY AND DATASKETCHES_INCLUDE_DIR)
set(USE_DATASKETCHES 1)
endif()
endif()
message (STATUS "Using datasketches=${USE_DATASKETCHES}: ${DATASKETCHES_INCLUDE_DIR} : ${DATASKETCHES_LIBRARY}")

View File

@ -1,7 +1,7 @@
if(NOT ARCH_ARM AND NOT OS_FREEBSD AND NOT OS_DARWIN) if(ARCH_AMD64 AND NOT OS_FREEBSD AND NOT OS_DARWIN)
option(ENABLE_FASTOPS "Enable fast vectorized mathematical functions library by Mikhail Parakhin" ${ENABLE_LIBRARIES}) option(ENABLE_FASTOPS "Enable fast vectorized mathematical functions library by Mikhail Parakhin" ${ENABLE_LIBRARIES})
elseif(ENABLE_FASTOPS) elseif(ENABLE_FASTOPS)
message (${RECONFIGURE_MESSAGE_LEVEL} "Fastops library is not supported on ARM, FreeBSD and Darwin") message (${RECONFIGURE_MESSAGE_LEVEL} "Fastops library is supported on x86_64 only, and not FreeBSD or Darwin")
endif() endif()
if(NOT ENABLE_FASTOPS) if(NOT ENABLE_FASTOPS)

View File

@ -1,4 +1,4 @@
if(NOT ARCH_ARM AND NOT OS_FREEBSD AND NOT APPLE AND USE_PROTOBUF) if(NOT ARCH_ARM AND NOT OS_FREEBSD AND NOT APPLE AND USE_PROTOBUF AND NOT ARCH_PPC64LE)
option(ENABLE_HDFS "Enable HDFS" ${ENABLE_LIBRARIES}) option(ENABLE_HDFS "Enable HDFS" ${ENABLE_LIBRARIES})
elseif(ENABLE_HDFS OR USE_INTERNAL_HDFS3_LIBRARY) elseif(ENABLE_HDFS OR USE_INTERNAL_HDFS3_LIBRARY)
message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use HDFS3 with current configuration") message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use HDFS3 with current configuration")

View File

@ -62,8 +62,10 @@ if (NOT OPENLDAP_FOUND AND NOT MISSING_INTERNAL_LDAP_LIBRARY)
if ( if (
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "x86_64" ) OR ( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "x86_64" ) OR
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "aarch64" ) OR ( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "aarch64" ) OR
( "${_system_name}" STREQUAL "linux" AND "${_system_processor}" STREQUAL "ppc64le" ) OR
( "${_system_name}" STREQUAL "freebsd" AND "${_system_processor}" STREQUAL "x86_64" ) 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) set (_ldap_supported_platform TRUE)
endif () endif ()

22
cmake/find/libuv.cmake Normal file
View 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}")

16
cmake/find/nanodbc.cmake Normal file
View 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}")

View File

@ -11,7 +11,7 @@ if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/NuRaft/CMakeLists.txt")
return() return()
endif () endif ()
if (NOT OS_FREEBSD AND NOT OS_DARWIN) if (NOT OS_FREEBSD)
set (USE_NURAFT 1) set (USE_NURAFT 1)
set (NURAFT_LIBRARY nuraft) set (NURAFT_LIBRARY nuraft)

View File

@ -50,4 +50,6 @@ if (NOT EXTERNAL_ODBC_LIBRARY_FOUND)
set (USE_INTERNAL_ODBC_LIBRARY 1) set (USE_INTERNAL_ODBC_LIBRARY 1)
endif () endif ()
set (USE_INTERNAL_NANODBC_LIBRARY 1)
message (STATUS "Using unixodbc") message (STATUS "Using unixodbc")

View File

@ -1,3 +1,7 @@
if (OS_DARWIN AND ARCH_AARCH64)
set (ENABLE_ROCKSDB OFF CACHE INTERNAL "")
endif()
option(ENABLE_ROCKSDB "Enable ROCKSDB" ${ENABLE_LIBRARIES}) option(ENABLE_ROCKSDB "Enable ROCKSDB" ${ENABLE_LIBRARIES})
if (NOT ENABLE_ROCKSDB) if (NOT ENABLE_ROCKSDB)

View File

@ -1,7 +1,7 @@
if(NOT OS_FREEBSD AND NOT APPLE AND NOT ARCH_ARM) if(NOT OS_FREEBSD AND NOT APPLE)
option(ENABLE_S3 "Enable S3" ${ENABLE_LIBRARIES}) option(ENABLE_S3 "Enable S3" ${ENABLE_LIBRARIES})
elseif(ENABLE_S3 OR USE_INTERNAL_AWS_S3_LIBRARY) elseif(ENABLE_S3 OR USE_INTERNAL_AWS_S3_LIBRARY)
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use S3 on ARM, Apple or FreeBSD") message (${RECONFIGURE_MESSAGE_LEVEL} "Can't use S3 on Apple or FreeBSD")
endif() endif()
if(NOT ENABLE_S3) if(NOT ENABLE_S3)

27
cmake/find/xz.cmake Normal file
View File

@ -0,0 +1,27 @@
option (USE_INTERNAL_XZ_LIBRARY "Set to OFF to use system xz (lzma) library instead of bundled" ${NOT_UNBUNDLED})
if(NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/xz/src/liblzma/api/lzma.h")
if(USE_INTERNAL_XZ_LIBRARY)
message(WARNING "submodule contrib/xz is missing. to fix try run: \n git submodule update --init --recursive")
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal xz (lzma) library")
set(USE_INTERNAL_XZ_LIBRARY 0)
endif()
set(MISSING_INTERNAL_XZ_LIBRARY 1)
endif()
if (NOT USE_INTERNAL_XZ_LIBRARY)
find_library (XZ_LIBRARY lzma)
find_path (XZ_INCLUDE_DIR NAMES lzma.h PATHS ${XZ_INCLUDE_PATHS})
if (NOT XZ_LIBRARY OR NOT XZ_INCLUDE_DIR)
message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find system xz (lzma) library")
endif ()
endif ()
if (XZ_LIBRARY AND XZ_INCLUDE_DIR)
elseif (NOT MISSING_INTERNAL_XZ_LIBRARY)
set (USE_INTERNAL_XZ_LIBRARY 1)
set (XZ_LIBRARY liblzma)
set (XZ_INCLUDE_DIR ${ClickHouse_SOURCE_DIR}/contrib/xz/src/liblzma/api)
endif ()
message (STATUS "Using xz (lzma): ${XZ_INCLUDE_DIR} : ${XZ_LIBRARY}")

View File

@ -6,7 +6,7 @@ set (DEFAULT_LIBS "-nodefaultlibs")
# We need builtins from Clang's RT even without libcxx - for ubsan+int128. # We need builtins from Clang's RT even without libcxx - for ubsan+int128.
# See https://bugs.llvm.org/show_bug.cgi?id=16404 # See https://bugs.llvm.org/show_bug.cgi?id=16404
if (COMPILER_CLANG AND NOT (CMAKE_CROSSCOMPILING AND ARCH_AARCH64)) if (COMPILER_CLANG AND NOT (CMAKE_CROSSCOMPILING AND ARCH_AARCH64))
execute_process (COMMAND ${CMAKE_CXX_COMPILER} --print-file-name=libclang_rt.builtins-${CMAKE_SYSTEM_PROCESSOR}.a OUTPUT_VARIABLE BUILTINS_LIBRARY OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process (COMMAND ${CMAKE_CXX_COMPILER} --print-libgcc-file-name --rtlib=compiler-rt OUTPUT_VARIABLE BUILTINS_LIBRARY OUTPUT_STRIP_TRAILING_WHITESPACE)
else () else ()
set (BUILTINS_LIBRARY "-lgcc") set (BUILTINS_LIBRARY "-lgcc")
endif () endif ()

View File

@ -8,10 +8,13 @@ endif ()
if (COMPILER_GCC) if (COMPILER_GCC)
# Require minimum version of 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) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${GCC_MINIMUM_VERSION} AND NOT CMAKE_VERSION VERSION_LESS 2.8.9)
message (FATAL_ERROR "GCC version must be at least ${GCC_MINIMUM_VERSION}. For example, if GCC ${GCC_MINIMUM_VERSION} is available under gcc-${GCC_MINIMUM_VERSION}, g++-${GCC_MINIMUM_VERSION} names, do the following: export CC=gcc-${GCC_MINIMUM_VERSION} CXX=g++-${GCC_MINIMUM_VERSION}; rm -rf CMakeCache.txt CMakeFiles; and re run cmake or ./release.") message (FATAL_ERROR "GCC version must be at least ${GCC_MINIMUM_VERSION}. For example, if GCC ${GCC_MINIMUM_VERSION} is available under gcc-${GCC_MINIMUM_VERSION}, g++-${GCC_MINIMUM_VERSION} names, do the following: export CC=gcc-${GCC_MINIMUM_VERSION} CXX=g++-${GCC_MINIMUM_VERSION}; rm -rf CMakeCache.txt CMakeFiles; and re run cmake or ./release.")
endif () endif ()
message (WARNING "GCC compiler is not officially supported for ClickHouse. You should migrate to clang.")
elseif (COMPILER_CLANG) elseif (COMPILER_CLANG)
# Require minimum version of clang/apple-clang # Require minimum version of clang/apple-clang
if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
@ -86,8 +89,3 @@ if (LINKER_NAME)
message(STATUS "Using custom linker by name: ${LINKER_NAME}") message(STATUS "Using custom linker by name: ${LINKER_NAME}")
endif () endif ()
if (ARCH_PPC64LE)
if (COMPILER_CLANG OR (COMPILER_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8))
message(FATAL_ERROR "Only gcc-8 or higher is supported for powerpc architecture")
endif ()
endif ()

View File

@ -11,11 +11,6 @@ if (NOT MSVC)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
endif () endif ()
if (USE_DEBUG_HELPERS)
set (INCLUDE_DEBUG_HELPERS "-I${ClickHouse_SOURCE_DIR}/base -include ${ClickHouse_SOURCE_DIR}/src/Core/iostream_debug_helpers.h")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${INCLUDE_DEBUG_HELPERS}")
endif ()
# Add some warnings that are not available even with -Wall -Wextra -Wpedantic. # Add some warnings that are not available even with -Wall -Wextra -Wpedantic.
# Intended for exploration of new compiler warnings that may be found useful. # Intended for exploration of new compiler warnings that may be found useful.
# Applies to clang only # Applies to clang only
@ -176,6 +171,7 @@ elseif (COMPILER_GCC)
add_cxx_compile_options(-Wtrampolines) add_cxx_compile_options(-Wtrampolines)
# Obvious # Obvious
add_cxx_compile_options(-Wunused) add_cxx_compile_options(-Wunused)
add_cxx_compile_options(-Wundef)
# Warn if vector operation is not implemented via SIMD capabilities of the architecture # Warn if vector operation is not implemented via SIMD capabilities of the architecture
add_cxx_compile_options(-Wvector-operation-performance) add_cxx_compile_options(-Wvector-operation-performance)
# XXX: libstdc++ has some of these for 3way compare # XXX: libstdc++ has some of these for 3way compare

View File

@ -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. # 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 # Some of third-party projects may override CMAKE_FOLDER or FOLDER property of their targets, so they will
@ -11,8 +10,10 @@ else ()
endif () endif ()
unset (_current_dir_name) unset (_current_dir_name)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w") # Third-party libraries may have substandard code.
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") # 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) if (WITH_COVERAGE)
set (WITHOUT_COVERAGE_LIST ${WITHOUT_COVERAGE}) set (WITHOUT_COVERAGE_LIST ${WITHOUT_COVERAGE})
@ -47,7 +48,11 @@ add_subdirectory (lz4-cmake)
add_subdirectory (murmurhash) add_subdirectory (murmurhash)
add_subdirectory (replxx-cmake) add_subdirectory (replxx-cmake)
add_subdirectory (unixodbc-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 (poco-cmake)
add_subdirectory (croaring-cmake) add_subdirectory (croaring-cmake)
@ -93,14 +98,8 @@ if (USE_INTERNAL_ZLIB_LIBRARY)
add_subdirectory (${INTERNAL_ZLIB_NAME}) add_subdirectory (${INTERNAL_ZLIB_NAME})
# We should use same defines when including zlib.h as used when zlib compiled # We should use same defines when including zlib.h as used when zlib compiled
target_compile_definitions (zlib PUBLIC ZLIB_COMPAT WITH_GZFILEOP) 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) if (ARCH_AMD64 OR ARCH_AARCH64)
target_compile_definitions (zlib PUBLIC X86_64 UNALIGNED_OK) target_compile_definitions (zlib PUBLIC X86_64 UNALIGNED_OK)
if (TARGET zlibstatic)
target_compile_definitions (zlibstatic PUBLIC X86_64 UNALIGNED_OK)
endif ()
endif () endif ()
endif () endif ()
@ -215,15 +214,17 @@ if (USE_EMBEDDED_COMPILER AND USE_INTERNAL_LLVM_LIBRARY)
set (LLVM_ENABLE_RTTI 1 CACHE INTERNAL "") set (LLVM_ENABLE_RTTI 1 CACHE INTERNAL "")
set (LLVM_ENABLE_PIC 0 CACHE INTERNAL "") set (LLVM_ENABLE_PIC 0 CACHE INTERNAL "")
set (LLVM_TARGETS_TO_BUILD "X86;AArch64" CACHE STRING "") set (LLVM_TARGETS_TO_BUILD "X86;AArch64" CACHE STRING "")
# Yes it is set globally, but this is not enough, since llvm will add -std=c++11 after default
# And c++2a cannot be used, due to ambiguous operator != # Need to use C++17 since the compilation is not possible with C++20 currently, due to ambiguous operator != etc.
if (COMPILER_GCC OR COMPILER_CLANG) # LLVM project will set its default value for the -std=... but our global setting from CMake will override it.
set (_CXX_STANDARD "gnu++17") set (CMAKE_CXX_STANDARD_bak ${CMAKE_CXX_STANDARD})
else() set (CMAKE_CXX_STANDARD 17)
set (_CXX_STANDARD "c++17")
endif()
set (LLVM_CXX_STD ${_CXX_STANDARD} CACHE STRING "" FORCE)
add_subdirectory (llvm/llvm) add_subdirectory (llvm/llvm)
set (CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD_bak})
unset (CMAKE_CXX_STANDARD_bak)
target_include_directories(LLVMSupport SYSTEM BEFORE PRIVATE ${ZLIB_INCLUDE_DIR}) target_include_directories(LLVMSupport SYSTEM BEFORE PRIVATE ${ZLIB_INCLUDE_DIR})
endif () endif ()
@ -280,7 +281,14 @@ if (USE_AMQPCPP)
add_subdirectory (amqpcpp-cmake) add_subdirectory (amqpcpp-cmake)
endif() endif()
if (USE_CASSANDRA) if (USE_CASSANDRA)
# Need to use C++17 since the compilation is not possible with C++20 currently.
set (CMAKE_CXX_STANDARD_bak ${CMAKE_CXX_STANDARD})
set (CMAKE_CXX_STANDARD 17)
add_subdirectory (cassandra) add_subdirectory (cassandra)
set (CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD_bak})
unset (CMAKE_CXX_STANDARD_bak)
endif() endif()
# Should go before: # Should go before:

2
contrib/NuRaft vendored

@ -1 +1 @@
Subproject commit 70468326ad5d72e9497944838484c591dae054ea Subproject commit 377f8e77491d9f66ce8e32e88aae19dffe8dc4d7

View File

@ -1,25 +1,25 @@
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP) set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/AMQP-CPP")
set (SRCS set (SRCS
${LIBRARY_DIR}/src/array.cpp "${LIBRARY_DIR}/src/array.cpp"
${LIBRARY_DIR}/src/channel.cpp "${LIBRARY_DIR}/src/channel.cpp"
${LIBRARY_DIR}/src/channelimpl.cpp "${LIBRARY_DIR}/src/channelimpl.cpp"
${LIBRARY_DIR}/src/connectionimpl.cpp "${LIBRARY_DIR}/src/connectionimpl.cpp"
${LIBRARY_DIR}/src/deferredcancel.cpp "${LIBRARY_DIR}/src/deferredcancel.cpp"
${LIBRARY_DIR}/src/deferredconfirm.cpp "${LIBRARY_DIR}/src/deferredconfirm.cpp"
${LIBRARY_DIR}/src/deferredconsumer.cpp "${LIBRARY_DIR}/src/deferredconsumer.cpp"
${LIBRARY_DIR}/src/deferredextreceiver.cpp "${LIBRARY_DIR}/src/deferredextreceiver.cpp"
${LIBRARY_DIR}/src/deferredget.cpp "${LIBRARY_DIR}/src/deferredget.cpp"
${LIBRARY_DIR}/src/deferredpublisher.cpp "${LIBRARY_DIR}/src/deferredpublisher.cpp"
${LIBRARY_DIR}/src/deferredreceiver.cpp "${LIBRARY_DIR}/src/deferredreceiver.cpp"
${LIBRARY_DIR}/src/field.cpp "${LIBRARY_DIR}/src/field.cpp"
${LIBRARY_DIR}/src/flags.cpp "${LIBRARY_DIR}/src/flags.cpp"
${LIBRARY_DIR}/src/linux_tcp/openssl.cpp "${LIBRARY_DIR}/src/linux_tcp/openssl.cpp"
${LIBRARY_DIR}/src/linux_tcp/tcpconnection.cpp "${LIBRARY_DIR}/src/linux_tcp/tcpconnection.cpp"
${LIBRARY_DIR}/src/inbuffer.cpp "${LIBRARY_DIR}/src/inbuffer.cpp"
${LIBRARY_DIR}/src/receivedframe.cpp "${LIBRARY_DIR}/src/receivedframe.cpp"
${LIBRARY_DIR}/src/table.cpp "${LIBRARY_DIR}/src/table.cpp"
${LIBRARY_DIR}/src/watchable.cpp "${LIBRARY_DIR}/src/watchable.cpp"
) )
add_library(amqp-cpp ${SRCS}) add_library(amqp-cpp ${SRCS})
@ -39,7 +39,7 @@ target_compile_options (amqp-cpp
-w -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) target_link_libraries (amqp-cpp PUBLIC ssl)

@ -1 +1 @@
Subproject commit a2fa7b76e2ee16d2ad955e9214a90bbf79da66fc Subproject commit 672643e9a427ef803abf13bc8cb4989606553d64

View File

@ -1,154 +1,154 @@
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/antlr4-runtime) set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/antlr4-runtime")
set (SRCS set (SRCS
${LIBRARY_DIR}/ANTLRErrorListener.cpp "${LIBRARY_DIR}/ANTLRErrorListener.cpp"
${LIBRARY_DIR}/ANTLRErrorStrategy.cpp "${LIBRARY_DIR}/ANTLRErrorStrategy.cpp"
${LIBRARY_DIR}/ANTLRFileStream.cpp "${LIBRARY_DIR}/ANTLRFileStream.cpp"
${LIBRARY_DIR}/ANTLRInputStream.cpp "${LIBRARY_DIR}/ANTLRInputStream.cpp"
${LIBRARY_DIR}/atn/AbstractPredicateTransition.cpp "${LIBRARY_DIR}/atn/AbstractPredicateTransition.cpp"
${LIBRARY_DIR}/atn/ActionTransition.cpp "${LIBRARY_DIR}/atn/ActionTransition.cpp"
${LIBRARY_DIR}/atn/AmbiguityInfo.cpp "${LIBRARY_DIR}/atn/AmbiguityInfo.cpp"
${LIBRARY_DIR}/atn/ArrayPredictionContext.cpp "${LIBRARY_DIR}/atn/ArrayPredictionContext.cpp"
${LIBRARY_DIR}/atn/ATN.cpp "${LIBRARY_DIR}/atn/ATN.cpp"
${LIBRARY_DIR}/atn/ATNConfig.cpp "${LIBRARY_DIR}/atn/ATNConfig.cpp"
${LIBRARY_DIR}/atn/ATNConfigSet.cpp "${LIBRARY_DIR}/atn/ATNConfigSet.cpp"
${LIBRARY_DIR}/atn/ATNDeserializationOptions.cpp "${LIBRARY_DIR}/atn/ATNDeserializationOptions.cpp"
${LIBRARY_DIR}/atn/ATNDeserializer.cpp "${LIBRARY_DIR}/atn/ATNDeserializer.cpp"
${LIBRARY_DIR}/atn/ATNSerializer.cpp "${LIBRARY_DIR}/atn/ATNSerializer.cpp"
${LIBRARY_DIR}/atn/ATNSimulator.cpp "${LIBRARY_DIR}/atn/ATNSimulator.cpp"
${LIBRARY_DIR}/atn/ATNState.cpp "${LIBRARY_DIR}/atn/ATNState.cpp"
${LIBRARY_DIR}/atn/AtomTransition.cpp "${LIBRARY_DIR}/atn/AtomTransition.cpp"
${LIBRARY_DIR}/atn/BasicBlockStartState.cpp "${LIBRARY_DIR}/atn/BasicBlockStartState.cpp"
${LIBRARY_DIR}/atn/BasicState.cpp "${LIBRARY_DIR}/atn/BasicState.cpp"
${LIBRARY_DIR}/atn/BlockEndState.cpp "${LIBRARY_DIR}/atn/BlockEndState.cpp"
${LIBRARY_DIR}/atn/BlockStartState.cpp "${LIBRARY_DIR}/atn/BlockStartState.cpp"
${LIBRARY_DIR}/atn/ContextSensitivityInfo.cpp "${LIBRARY_DIR}/atn/ContextSensitivityInfo.cpp"
${LIBRARY_DIR}/atn/DecisionEventInfo.cpp "${LIBRARY_DIR}/atn/DecisionEventInfo.cpp"
${LIBRARY_DIR}/atn/DecisionInfo.cpp "${LIBRARY_DIR}/atn/DecisionInfo.cpp"
${LIBRARY_DIR}/atn/DecisionState.cpp "${LIBRARY_DIR}/atn/DecisionState.cpp"
${LIBRARY_DIR}/atn/EmptyPredictionContext.cpp "${LIBRARY_DIR}/atn/EmptyPredictionContext.cpp"
${LIBRARY_DIR}/atn/EpsilonTransition.cpp "${LIBRARY_DIR}/atn/EpsilonTransition.cpp"
${LIBRARY_DIR}/atn/ErrorInfo.cpp "${LIBRARY_DIR}/atn/ErrorInfo.cpp"
${LIBRARY_DIR}/atn/LexerAction.cpp "${LIBRARY_DIR}/atn/LexerAction.cpp"
${LIBRARY_DIR}/atn/LexerActionExecutor.cpp "${LIBRARY_DIR}/atn/LexerActionExecutor.cpp"
${LIBRARY_DIR}/atn/LexerATNConfig.cpp "${LIBRARY_DIR}/atn/LexerATNConfig.cpp"
${LIBRARY_DIR}/atn/LexerATNSimulator.cpp "${LIBRARY_DIR}/atn/LexerATNSimulator.cpp"
${LIBRARY_DIR}/atn/LexerChannelAction.cpp "${LIBRARY_DIR}/atn/LexerChannelAction.cpp"
${LIBRARY_DIR}/atn/LexerCustomAction.cpp "${LIBRARY_DIR}/atn/LexerCustomAction.cpp"
${LIBRARY_DIR}/atn/LexerIndexedCustomAction.cpp "${LIBRARY_DIR}/atn/LexerIndexedCustomAction.cpp"
${LIBRARY_DIR}/atn/LexerModeAction.cpp "${LIBRARY_DIR}/atn/LexerModeAction.cpp"
${LIBRARY_DIR}/atn/LexerMoreAction.cpp "${LIBRARY_DIR}/atn/LexerMoreAction.cpp"
${LIBRARY_DIR}/atn/LexerPopModeAction.cpp "${LIBRARY_DIR}/atn/LexerPopModeAction.cpp"
${LIBRARY_DIR}/atn/LexerPushModeAction.cpp "${LIBRARY_DIR}/atn/LexerPushModeAction.cpp"
${LIBRARY_DIR}/atn/LexerSkipAction.cpp "${LIBRARY_DIR}/atn/LexerSkipAction.cpp"
${LIBRARY_DIR}/atn/LexerTypeAction.cpp "${LIBRARY_DIR}/atn/LexerTypeAction.cpp"
${LIBRARY_DIR}/atn/LL1Analyzer.cpp "${LIBRARY_DIR}/atn/LL1Analyzer.cpp"
${LIBRARY_DIR}/atn/LookaheadEventInfo.cpp "${LIBRARY_DIR}/atn/LookaheadEventInfo.cpp"
${LIBRARY_DIR}/atn/LoopEndState.cpp "${LIBRARY_DIR}/atn/LoopEndState.cpp"
${LIBRARY_DIR}/atn/NotSetTransition.cpp "${LIBRARY_DIR}/atn/NotSetTransition.cpp"
${LIBRARY_DIR}/atn/OrderedATNConfigSet.cpp "${LIBRARY_DIR}/atn/OrderedATNConfigSet.cpp"
${LIBRARY_DIR}/atn/ParseInfo.cpp "${LIBRARY_DIR}/atn/ParseInfo.cpp"
${LIBRARY_DIR}/atn/ParserATNSimulator.cpp "${LIBRARY_DIR}/atn/ParserATNSimulator.cpp"
${LIBRARY_DIR}/atn/PlusBlockStartState.cpp "${LIBRARY_DIR}/atn/PlusBlockStartState.cpp"
${LIBRARY_DIR}/atn/PlusLoopbackState.cpp "${LIBRARY_DIR}/atn/PlusLoopbackState.cpp"
${LIBRARY_DIR}/atn/PrecedencePredicateTransition.cpp "${LIBRARY_DIR}/atn/PrecedencePredicateTransition.cpp"
${LIBRARY_DIR}/atn/PredicateEvalInfo.cpp "${LIBRARY_DIR}/atn/PredicateEvalInfo.cpp"
${LIBRARY_DIR}/atn/PredicateTransition.cpp "${LIBRARY_DIR}/atn/PredicateTransition.cpp"
${LIBRARY_DIR}/atn/PredictionContext.cpp "${LIBRARY_DIR}/atn/PredictionContext.cpp"
${LIBRARY_DIR}/atn/PredictionMode.cpp "${LIBRARY_DIR}/atn/PredictionMode.cpp"
${LIBRARY_DIR}/atn/ProfilingATNSimulator.cpp "${LIBRARY_DIR}/atn/ProfilingATNSimulator.cpp"
${LIBRARY_DIR}/atn/RangeTransition.cpp "${LIBRARY_DIR}/atn/RangeTransition.cpp"
${LIBRARY_DIR}/atn/RuleStartState.cpp "${LIBRARY_DIR}/atn/RuleStartState.cpp"
${LIBRARY_DIR}/atn/RuleStopState.cpp "${LIBRARY_DIR}/atn/RuleStopState.cpp"
${LIBRARY_DIR}/atn/RuleTransition.cpp "${LIBRARY_DIR}/atn/RuleTransition.cpp"
${LIBRARY_DIR}/atn/SemanticContext.cpp "${LIBRARY_DIR}/atn/SemanticContext.cpp"
${LIBRARY_DIR}/atn/SetTransition.cpp "${LIBRARY_DIR}/atn/SetTransition.cpp"
${LIBRARY_DIR}/atn/SingletonPredictionContext.cpp "${LIBRARY_DIR}/atn/SingletonPredictionContext.cpp"
${LIBRARY_DIR}/atn/StarBlockStartState.cpp "${LIBRARY_DIR}/atn/StarBlockStartState.cpp"
${LIBRARY_DIR}/atn/StarLoopbackState.cpp "${LIBRARY_DIR}/atn/StarLoopbackState.cpp"
${LIBRARY_DIR}/atn/StarLoopEntryState.cpp "${LIBRARY_DIR}/atn/StarLoopEntryState.cpp"
${LIBRARY_DIR}/atn/TokensStartState.cpp "${LIBRARY_DIR}/atn/TokensStartState.cpp"
${LIBRARY_DIR}/atn/Transition.cpp "${LIBRARY_DIR}/atn/Transition.cpp"
${LIBRARY_DIR}/atn/WildcardTransition.cpp "${LIBRARY_DIR}/atn/WildcardTransition.cpp"
${LIBRARY_DIR}/BailErrorStrategy.cpp "${LIBRARY_DIR}/BailErrorStrategy.cpp"
${LIBRARY_DIR}/BaseErrorListener.cpp "${LIBRARY_DIR}/BaseErrorListener.cpp"
${LIBRARY_DIR}/BufferedTokenStream.cpp "${LIBRARY_DIR}/BufferedTokenStream.cpp"
${LIBRARY_DIR}/CharStream.cpp "${LIBRARY_DIR}/CharStream.cpp"
${LIBRARY_DIR}/CommonToken.cpp "${LIBRARY_DIR}/CommonToken.cpp"
${LIBRARY_DIR}/CommonTokenFactory.cpp "${LIBRARY_DIR}/CommonTokenFactory.cpp"
${LIBRARY_DIR}/CommonTokenStream.cpp "${LIBRARY_DIR}/CommonTokenStream.cpp"
${LIBRARY_DIR}/ConsoleErrorListener.cpp "${LIBRARY_DIR}/ConsoleErrorListener.cpp"
${LIBRARY_DIR}/DefaultErrorStrategy.cpp "${LIBRARY_DIR}/DefaultErrorStrategy.cpp"
${LIBRARY_DIR}/dfa/DFA.cpp "${LIBRARY_DIR}/dfa/DFA.cpp"
${LIBRARY_DIR}/dfa/DFASerializer.cpp "${LIBRARY_DIR}/dfa/DFASerializer.cpp"
${LIBRARY_DIR}/dfa/DFAState.cpp "${LIBRARY_DIR}/dfa/DFAState.cpp"
${LIBRARY_DIR}/dfa/LexerDFASerializer.cpp "${LIBRARY_DIR}/dfa/LexerDFASerializer.cpp"
${LIBRARY_DIR}/DiagnosticErrorListener.cpp "${LIBRARY_DIR}/DiagnosticErrorListener.cpp"
${LIBRARY_DIR}/Exceptions.cpp "${LIBRARY_DIR}/Exceptions.cpp"
${LIBRARY_DIR}/FailedPredicateException.cpp "${LIBRARY_DIR}/FailedPredicateException.cpp"
${LIBRARY_DIR}/InputMismatchException.cpp "${LIBRARY_DIR}/InputMismatchException.cpp"
${LIBRARY_DIR}/InterpreterRuleContext.cpp "${LIBRARY_DIR}/InterpreterRuleContext.cpp"
${LIBRARY_DIR}/IntStream.cpp "${LIBRARY_DIR}/IntStream.cpp"
${LIBRARY_DIR}/Lexer.cpp "${LIBRARY_DIR}/Lexer.cpp"
${LIBRARY_DIR}/LexerInterpreter.cpp "${LIBRARY_DIR}/LexerInterpreter.cpp"
${LIBRARY_DIR}/LexerNoViableAltException.cpp "${LIBRARY_DIR}/LexerNoViableAltException.cpp"
${LIBRARY_DIR}/ListTokenSource.cpp "${LIBRARY_DIR}/ListTokenSource.cpp"
${LIBRARY_DIR}/misc/InterpreterDataReader.cpp "${LIBRARY_DIR}/misc/InterpreterDataReader.cpp"
${LIBRARY_DIR}/misc/Interval.cpp "${LIBRARY_DIR}/misc/Interval.cpp"
${LIBRARY_DIR}/misc/IntervalSet.cpp "${LIBRARY_DIR}/misc/IntervalSet.cpp"
${LIBRARY_DIR}/misc/MurmurHash.cpp "${LIBRARY_DIR}/misc/MurmurHash.cpp"
${LIBRARY_DIR}/misc/Predicate.cpp "${LIBRARY_DIR}/misc/Predicate.cpp"
${LIBRARY_DIR}/NoViableAltException.cpp "${LIBRARY_DIR}/NoViableAltException.cpp"
${LIBRARY_DIR}/Parser.cpp "${LIBRARY_DIR}/Parser.cpp"
${LIBRARY_DIR}/ParserInterpreter.cpp "${LIBRARY_DIR}/ParserInterpreter.cpp"
${LIBRARY_DIR}/ParserRuleContext.cpp "${LIBRARY_DIR}/ParserRuleContext.cpp"
${LIBRARY_DIR}/ProxyErrorListener.cpp "${LIBRARY_DIR}/ProxyErrorListener.cpp"
${LIBRARY_DIR}/RecognitionException.cpp "${LIBRARY_DIR}/RecognitionException.cpp"
${LIBRARY_DIR}/Recognizer.cpp "${LIBRARY_DIR}/Recognizer.cpp"
${LIBRARY_DIR}/RuleContext.cpp "${LIBRARY_DIR}/RuleContext.cpp"
${LIBRARY_DIR}/RuleContextWithAltNum.cpp "${LIBRARY_DIR}/RuleContextWithAltNum.cpp"
${LIBRARY_DIR}/RuntimeMetaData.cpp "${LIBRARY_DIR}/RuntimeMetaData.cpp"
${LIBRARY_DIR}/support/Any.cpp "${LIBRARY_DIR}/support/Any.cpp"
${LIBRARY_DIR}/support/Arrays.cpp "${LIBRARY_DIR}/support/Arrays.cpp"
${LIBRARY_DIR}/support/CPPUtils.cpp "${LIBRARY_DIR}/support/CPPUtils.cpp"
${LIBRARY_DIR}/support/guid.cpp "${LIBRARY_DIR}/support/guid.cpp"
${LIBRARY_DIR}/support/StringUtils.cpp "${LIBRARY_DIR}/support/StringUtils.cpp"
${LIBRARY_DIR}/Token.cpp "${LIBRARY_DIR}/Token.cpp"
${LIBRARY_DIR}/TokenSource.cpp "${LIBRARY_DIR}/TokenSource.cpp"
${LIBRARY_DIR}/TokenStream.cpp "${LIBRARY_DIR}/TokenStream.cpp"
${LIBRARY_DIR}/TokenStreamRewriter.cpp "${LIBRARY_DIR}/TokenStreamRewriter.cpp"
${LIBRARY_DIR}/tree/ErrorNode.cpp "${LIBRARY_DIR}/tree/ErrorNode.cpp"
${LIBRARY_DIR}/tree/ErrorNodeImpl.cpp "${LIBRARY_DIR}/tree/ErrorNodeImpl.cpp"
${LIBRARY_DIR}/tree/IterativeParseTreeWalker.cpp "${LIBRARY_DIR}/tree/IterativeParseTreeWalker.cpp"
${LIBRARY_DIR}/tree/ParseTree.cpp "${LIBRARY_DIR}/tree/ParseTree.cpp"
${LIBRARY_DIR}/tree/ParseTreeListener.cpp "${LIBRARY_DIR}/tree/ParseTreeListener.cpp"
${LIBRARY_DIR}/tree/ParseTreeVisitor.cpp "${LIBRARY_DIR}/tree/ParseTreeVisitor.cpp"
${LIBRARY_DIR}/tree/ParseTreeWalker.cpp "${LIBRARY_DIR}/tree/ParseTreeWalker.cpp"
${LIBRARY_DIR}/tree/pattern/Chunk.cpp "${LIBRARY_DIR}/tree/pattern/Chunk.cpp"
${LIBRARY_DIR}/tree/pattern/ParseTreeMatch.cpp "${LIBRARY_DIR}/tree/pattern/ParseTreeMatch.cpp"
${LIBRARY_DIR}/tree/pattern/ParseTreePattern.cpp "${LIBRARY_DIR}/tree/pattern/ParseTreePattern.cpp"
${LIBRARY_DIR}/tree/pattern/ParseTreePatternMatcher.cpp "${LIBRARY_DIR}/tree/pattern/ParseTreePatternMatcher.cpp"
${LIBRARY_DIR}/tree/pattern/RuleTagToken.cpp "${LIBRARY_DIR}/tree/pattern/RuleTagToken.cpp"
${LIBRARY_DIR}/tree/pattern/TagChunk.cpp "${LIBRARY_DIR}/tree/pattern/TagChunk.cpp"
${LIBRARY_DIR}/tree/pattern/TextChunk.cpp "${LIBRARY_DIR}/tree/pattern/TextChunk.cpp"
${LIBRARY_DIR}/tree/pattern/TokenTagToken.cpp "${LIBRARY_DIR}/tree/pattern/TokenTagToken.cpp"
${LIBRARY_DIR}/tree/TerminalNode.cpp "${LIBRARY_DIR}/tree/TerminalNode.cpp"
${LIBRARY_DIR}/tree/TerminalNodeImpl.cpp "${LIBRARY_DIR}/tree/TerminalNodeImpl.cpp"
${LIBRARY_DIR}/tree/Trees.cpp "${LIBRARY_DIR}/tree/Trees.cpp"
${LIBRARY_DIR}/tree/xpath/XPath.cpp "${LIBRARY_DIR}/tree/xpath/XPath.cpp"
${LIBRARY_DIR}/tree/xpath/XPathElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathElement.cpp"
${LIBRARY_DIR}/tree/xpath/XPathLexer.cpp "${LIBRARY_DIR}/tree/xpath/XPathLexer.cpp"
${LIBRARY_DIR}/tree/xpath/XPathLexerErrorListener.cpp "${LIBRARY_DIR}/tree/xpath/XPathLexerErrorListener.cpp"
${LIBRARY_DIR}/tree/xpath/XPathRuleAnywhereElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathRuleAnywhereElement.cpp"
${LIBRARY_DIR}/tree/xpath/XPathRuleElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathRuleElement.cpp"
${LIBRARY_DIR}/tree/xpath/XPathTokenAnywhereElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathTokenAnywhereElement.cpp"
${LIBRARY_DIR}/tree/xpath/XPathTokenElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathTokenElement.cpp"
${LIBRARY_DIR}/tree/xpath/XPathWildcardAnywhereElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathWildcardAnywhereElement.cpp"
${LIBRARY_DIR}/tree/xpath/XPathWildcardElement.cpp "${LIBRARY_DIR}/tree/xpath/XPathWildcardElement.cpp"
${LIBRARY_DIR}/UnbufferedCharStream.cpp "${LIBRARY_DIR}/UnbufferedCharStream.cpp"
${LIBRARY_DIR}/UnbufferedTokenStream.cpp "${LIBRARY_DIR}/UnbufferedTokenStream.cpp"
${LIBRARY_DIR}/Vocabulary.cpp "${LIBRARY_DIR}/Vocabulary.cpp"
${LIBRARY_DIR}/WritableToken.cpp "${LIBRARY_DIR}/WritableToken.cpp"
) )
add_library (antlr4-runtime ${SRCS}) add_library (antlr4-runtime ${SRCS})

2
contrib/arrow vendored

@ -1 +1 @@
Subproject commit 744bdfe188f018e5e05f5deebd4e9ee0a7706cf4 Subproject commit 616b3dc76a0c8450b4027ded8a78e9619d7c845f

View File

@ -2,69 +2,69 @@ set (CMAKE_CXX_STANDARD 17)
# === thrift # === 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 # contrib/thrift/lib/cpp/CMakeLists.txt
set(thriftcpp_SOURCES set(thriftcpp_SOURCES
${LIBRARY_DIR}/src/thrift/TApplicationException.cpp "${LIBRARY_DIR}/src/thrift/TApplicationException.cpp"
${LIBRARY_DIR}/src/thrift/TOutput.cpp "${LIBRARY_DIR}/src/thrift/TOutput.cpp"
${LIBRARY_DIR}/src/thrift/async/TAsyncChannel.cpp "${LIBRARY_DIR}/src/thrift/async/TAsyncChannel.cpp"
${LIBRARY_DIR}/src/thrift/async/TAsyncProtocolProcessor.cpp "${LIBRARY_DIR}/src/thrift/async/TAsyncProtocolProcessor.cpp"
${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.h "${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.h"
${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.cpp "${LIBRARY_DIR}/src/thrift/async/TConcurrentClientSyncInfo.cpp"
${LIBRARY_DIR}/src/thrift/concurrency/ThreadManager.cpp "${LIBRARY_DIR}/src/thrift/concurrency/ThreadManager.cpp"
${LIBRARY_DIR}/src/thrift/concurrency/TimerManager.cpp "${LIBRARY_DIR}/src/thrift/concurrency/TimerManager.cpp"
${LIBRARY_DIR}/src/thrift/concurrency/Util.cpp "${LIBRARY_DIR}/src/thrift/concurrency/Util.cpp"
${LIBRARY_DIR}/src/thrift/processor/PeekProcessor.cpp "${LIBRARY_DIR}/src/thrift/processor/PeekProcessor.cpp"
${LIBRARY_DIR}/src/thrift/protocol/TBase64Utils.cpp "${LIBRARY_DIR}/src/thrift/protocol/TBase64Utils.cpp"
${LIBRARY_DIR}/src/thrift/protocol/TDebugProtocol.cpp "${LIBRARY_DIR}/src/thrift/protocol/TDebugProtocol.cpp"
${LIBRARY_DIR}/src/thrift/protocol/TJSONProtocol.cpp "${LIBRARY_DIR}/src/thrift/protocol/TJSONProtocol.cpp"
${LIBRARY_DIR}/src/thrift/protocol/TMultiplexedProtocol.cpp "${LIBRARY_DIR}/src/thrift/protocol/TMultiplexedProtocol.cpp"
${LIBRARY_DIR}/src/thrift/protocol/TProtocol.cpp "${LIBRARY_DIR}/src/thrift/protocol/TProtocol.cpp"
${LIBRARY_DIR}/src/thrift/transport/TTransportException.cpp "${LIBRARY_DIR}/src/thrift/transport/TTransportException.cpp"
${LIBRARY_DIR}/src/thrift/transport/TFDTransport.cpp "${LIBRARY_DIR}/src/thrift/transport/TFDTransport.cpp"
${LIBRARY_DIR}/src/thrift/transport/TSimpleFileTransport.cpp "${LIBRARY_DIR}/src/thrift/transport/TSimpleFileTransport.cpp"
${LIBRARY_DIR}/src/thrift/transport/THttpTransport.cpp "${LIBRARY_DIR}/src/thrift/transport/THttpTransport.cpp"
${LIBRARY_DIR}/src/thrift/transport/THttpClient.cpp "${LIBRARY_DIR}/src/thrift/transport/THttpClient.cpp"
${LIBRARY_DIR}/src/thrift/transport/THttpServer.cpp "${LIBRARY_DIR}/src/thrift/transport/THttpServer.cpp"
${LIBRARY_DIR}/src/thrift/transport/TSocket.cpp "${LIBRARY_DIR}/src/thrift/transport/TSocket.cpp"
${LIBRARY_DIR}/src/thrift/transport/TSocketPool.cpp "${LIBRARY_DIR}/src/thrift/transport/TSocketPool.cpp"
${LIBRARY_DIR}/src/thrift/transport/TServerSocket.cpp "${LIBRARY_DIR}/src/thrift/transport/TServerSocket.cpp"
${LIBRARY_DIR}/src/thrift/transport/TTransportUtils.cpp "${LIBRARY_DIR}/src/thrift/transport/TTransportUtils.cpp"
${LIBRARY_DIR}/src/thrift/transport/TBufferTransports.cpp "${LIBRARY_DIR}/src/thrift/transport/TBufferTransports.cpp"
${LIBRARY_DIR}/src/thrift/server/TConnectedClient.cpp "${LIBRARY_DIR}/src/thrift/server/TConnectedClient.cpp"
${LIBRARY_DIR}/src/thrift/server/TServerFramework.cpp "${LIBRARY_DIR}/src/thrift/server/TServerFramework.cpp"
${LIBRARY_DIR}/src/thrift/server/TSimpleServer.cpp "${LIBRARY_DIR}/src/thrift/server/TSimpleServer.cpp"
${LIBRARY_DIR}/src/thrift/server/TThreadPoolServer.cpp "${LIBRARY_DIR}/src/thrift/server/TThreadPoolServer.cpp"
${LIBRARY_DIR}/src/thrift/server/TThreadedServer.cpp "${LIBRARY_DIR}/src/thrift/server/TThreadedServer.cpp"
) )
set(thriftcpp_threads_SOURCES set(thriftcpp_threads_SOURCES
${LIBRARY_DIR}/src/thrift/concurrency/ThreadFactory.cpp "${LIBRARY_DIR}/src/thrift/concurrency/ThreadFactory.cpp"
${LIBRARY_DIR}/src/thrift/concurrency/Thread.cpp "${LIBRARY_DIR}/src/thrift/concurrency/Thread.cpp"
${LIBRARY_DIR}/src/thrift/concurrency/Monitor.cpp "${LIBRARY_DIR}/src/thrift/concurrency/Monitor.cpp"
${LIBRARY_DIR}/src/thrift/concurrency/Mutex.cpp "${LIBRARY_DIR}/src/thrift/concurrency/Mutex.cpp"
) )
add_library(${THRIFT_LIBRARY} ${thriftcpp_SOURCES} ${thriftcpp_threads_SOURCES}) 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 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) target_link_libraries (${THRIFT_LIBRARY} PRIVATE boost::headers_only)
# === orc # === orc
set(ORC_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/orc/c++) set(ORC_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/orc/c++")
set(ORC_INCLUDE_DIR ${ORC_SOURCE_DIR}/include) set(ORC_INCLUDE_DIR "${ORC_SOURCE_DIR}/include")
set(ORC_SOURCE_SRC_DIR ${ORC_SOURCE_DIR}/src) set(ORC_SOURCE_SRC_DIR "${ORC_SOURCE_DIR}/src")
set(ORC_SOURCE_WRAP_DIR ${ORC_SOURCE_DIR}/wrap) set(ORC_SOURCE_WRAP_DIR "${ORC_SOURCE_DIR}/wrap")
set(ORC_BUILD_SRC_DIR ${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/src) set(ORC_BUILD_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/src")
set(ORC_BUILD_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/include) set(ORC_BUILD_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../orc/c++/include")
set(GOOGLE_PROTOBUF_DIR ${Protobuf_INCLUDE_DIR}/) set(GOOGLE_PROTOBUF_DIR "${Protobuf_INCLUDE_DIR}/")
set(ORC_ADDITION_SOURCE_DIR ${CMAKE_CURRENT_BINARY_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(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 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 # === flatbuffers
set(FLATBUFFERS_SRC_DIR ${ClickHouse_SOURCE_DIR}/contrib/flatbuffers) set(FLATBUFFERS_SRC_DIR "${ClickHouse_SOURCE_DIR}/contrib/flatbuffers")
set(FLATBUFFERS_BINARY_DIR ${ClickHouse_BINARY_DIR}/contrib/flatbuffers) set(FLATBUFFERS_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/flatbuffers")
set(FLATBUFFERS_INCLUDE_DIR ${FLATBUFFERS_SRC_DIR}/include) set(FLATBUFFERS_INCLUDE_DIR "${FLATBUFFERS_SRC_DIR}/include")
# set flatbuffers CMake options # set flatbuffers CMake options
if (MAKE_STATIC_LIBRARIES) if (MAKE_STATIC_LIBRARIES)
@ -101,187 +101,187 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set(CXX11_FLAGS "-std=c++0x") set(CXX11_FLAGS "-std=c++0x")
endif () endif ()
include(${ClickHouse_SOURCE_DIR}/contrib/orc/cmake_modules/CheckSourceCompiles.cmake) include("${ClickHouse_SOURCE_DIR}/contrib/orc/cmake_modules/CheckSourceCompiles.cmake")
include(orc_check.cmake) include(orc_check.cmake)
configure_file("${ORC_INCLUDE_DIR}/orc/orc-config.hh.in" "${ORC_BUILD_INCLUDE_DIR}/orc/orc-config.hh") configure_file("${ORC_INCLUDE_DIR}/orc/orc-config.hh.in" "${ORC_BUILD_INCLUDE_DIR}/orc/orc-config.hh")
configure_file("${ORC_SOURCE_SRC_DIR}/Adaptor.hh.in" "${ORC_BUILD_INCLUDE_DIR}/Adaptor.hh") configure_file("${ORC_SOURCE_SRC_DIR}/Adaptor.hh.in" "${ORC_BUILD_INCLUDE_DIR}/Adaptor.hh")
set(ORC_SRCS set(ORC_SRCS
${ARROW_SRC_DIR}/arrow/adapters/orc/adapter.cc "${ARROW_SRC_DIR}/arrow/adapters/orc/adapter.cc"
${ARROW_SRC_DIR}/arrow/adapters/orc/adapter_util.cc "${ARROW_SRC_DIR}/arrow/adapters/orc/adapter_util.cc"
${ORC_SOURCE_SRC_DIR}/Exceptions.cc "${ORC_SOURCE_SRC_DIR}/Exceptions.cc"
${ORC_SOURCE_SRC_DIR}/OrcFile.cc "${ORC_SOURCE_SRC_DIR}/OrcFile.cc"
${ORC_SOURCE_SRC_DIR}/Reader.cc "${ORC_SOURCE_SRC_DIR}/Reader.cc"
${ORC_SOURCE_SRC_DIR}/ByteRLE.cc "${ORC_SOURCE_SRC_DIR}/ByteRLE.cc"
${ORC_SOURCE_SRC_DIR}/ColumnPrinter.cc "${ORC_SOURCE_SRC_DIR}/ColumnPrinter.cc"
${ORC_SOURCE_SRC_DIR}/ColumnReader.cc "${ORC_SOURCE_SRC_DIR}/ColumnReader.cc"
${ORC_SOURCE_SRC_DIR}/ColumnWriter.cc "${ORC_SOURCE_SRC_DIR}/ColumnWriter.cc"
${ORC_SOURCE_SRC_DIR}/Common.cc "${ORC_SOURCE_SRC_DIR}/Common.cc"
${ORC_SOURCE_SRC_DIR}/Compression.cc "${ORC_SOURCE_SRC_DIR}/Compression.cc"
${ORC_SOURCE_SRC_DIR}/Exceptions.cc "${ORC_SOURCE_SRC_DIR}/Exceptions.cc"
${ORC_SOURCE_SRC_DIR}/Int128.cc "${ORC_SOURCE_SRC_DIR}/Int128.cc"
${ORC_SOURCE_SRC_DIR}/LzoDecompressor.cc "${ORC_SOURCE_SRC_DIR}/LzoDecompressor.cc"
${ORC_SOURCE_SRC_DIR}/MemoryPool.cc "${ORC_SOURCE_SRC_DIR}/MemoryPool.cc"
${ORC_SOURCE_SRC_DIR}/OrcFile.cc "${ORC_SOURCE_SRC_DIR}/OrcFile.cc"
${ORC_SOURCE_SRC_DIR}/Reader.cc "${ORC_SOURCE_SRC_DIR}/Reader.cc"
${ORC_SOURCE_SRC_DIR}/RLE.cc "${ORC_SOURCE_SRC_DIR}/RLE.cc"
${ORC_SOURCE_SRC_DIR}/RLEv1.cc "${ORC_SOURCE_SRC_DIR}/RLEv1.cc"
${ORC_SOURCE_SRC_DIR}/RLEv2.cc "${ORC_SOURCE_SRC_DIR}/RLEv2.cc"
${ORC_SOURCE_SRC_DIR}/Statistics.cc "${ORC_SOURCE_SRC_DIR}/Statistics.cc"
${ORC_SOURCE_SRC_DIR}/StripeStream.cc "${ORC_SOURCE_SRC_DIR}/StripeStream.cc"
${ORC_SOURCE_SRC_DIR}/Timezone.cc "${ORC_SOURCE_SRC_DIR}/Timezone.cc"
${ORC_SOURCE_SRC_DIR}/TypeImpl.cc "${ORC_SOURCE_SRC_DIR}/TypeImpl.cc"
${ORC_SOURCE_SRC_DIR}/Vector.cc "${ORC_SOURCE_SRC_DIR}/Vector.cc"
${ORC_SOURCE_SRC_DIR}/Writer.cc "${ORC_SOURCE_SRC_DIR}/Writer.cc"
${ORC_SOURCE_SRC_DIR}/io/InputStream.cc "${ORC_SOURCE_SRC_DIR}/io/InputStream.cc"
${ORC_SOURCE_SRC_DIR}/io/OutputStream.cc "${ORC_SOURCE_SRC_DIR}/io/OutputStream.cc"
${ORC_ADDITION_SOURCE_DIR}/orc_proto.pb.cc "${ORC_ADDITION_SOURCE_DIR}/orc_proto.pb.cc"
) )
# === arrow # === 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") configure_file("${LIBRARY_DIR}/util/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cpp/src/arrow/util/config.h")
# arrow/cpp/src/arrow/CMakeLists.txt # arrow/cpp/src/arrow/CMakeLists.txt
set(ARROW_SRCS set(ARROW_SRCS
${LIBRARY_DIR}/buffer.cc "${LIBRARY_DIR}/buffer.cc"
${LIBRARY_DIR}/builder.cc "${LIBRARY_DIR}/builder.cc"
${LIBRARY_DIR}/chunked_array.cc "${LIBRARY_DIR}/chunked_array.cc"
${LIBRARY_DIR}/compare.cc "${LIBRARY_DIR}/compare.cc"
${LIBRARY_DIR}/datum.cc "${LIBRARY_DIR}/datum.cc"
${LIBRARY_DIR}/device.cc "${LIBRARY_DIR}/device.cc"
${LIBRARY_DIR}/extension_type.cc "${LIBRARY_DIR}/extension_type.cc"
${LIBRARY_DIR}/memory_pool.cc "${LIBRARY_DIR}/memory_pool.cc"
${LIBRARY_DIR}/pretty_print.cc "${LIBRARY_DIR}/pretty_print.cc"
${LIBRARY_DIR}/record_batch.cc "${LIBRARY_DIR}/record_batch.cc"
${LIBRARY_DIR}/result.cc "${LIBRARY_DIR}/result.cc"
${LIBRARY_DIR}/scalar.cc "${LIBRARY_DIR}/scalar.cc"
${LIBRARY_DIR}/sparse_tensor.cc "${LIBRARY_DIR}/sparse_tensor.cc"
${LIBRARY_DIR}/status.cc "${LIBRARY_DIR}/status.cc"
${LIBRARY_DIR}/table_builder.cc "${LIBRARY_DIR}/table_builder.cc"
${LIBRARY_DIR}/table.cc "${LIBRARY_DIR}/table.cc"
${LIBRARY_DIR}/tensor.cc "${LIBRARY_DIR}/tensor.cc"
${LIBRARY_DIR}/type.cc "${LIBRARY_DIR}/type.cc"
${LIBRARY_DIR}/visitor.cc "${LIBRARY_DIR}/visitor.cc"
${LIBRARY_DIR}/array/array_base.cc "${LIBRARY_DIR}/array/array_base.cc"
${LIBRARY_DIR}/array/array_binary.cc "${LIBRARY_DIR}/array/array_binary.cc"
${LIBRARY_DIR}/array/array_decimal.cc "${LIBRARY_DIR}/array/array_decimal.cc"
${LIBRARY_DIR}/array/array_dict.cc "${LIBRARY_DIR}/array/array_dict.cc"
${LIBRARY_DIR}/array/array_nested.cc "${LIBRARY_DIR}/array/array_nested.cc"
${LIBRARY_DIR}/array/array_primitive.cc "${LIBRARY_DIR}/array/array_primitive.cc"
${LIBRARY_DIR}/array/builder_adaptive.cc "${LIBRARY_DIR}/array/builder_adaptive.cc"
${LIBRARY_DIR}/array/builder_base.cc "${LIBRARY_DIR}/array/builder_base.cc"
${LIBRARY_DIR}/array/builder_binary.cc "${LIBRARY_DIR}/array/builder_binary.cc"
${LIBRARY_DIR}/array/builder_decimal.cc "${LIBRARY_DIR}/array/builder_decimal.cc"
${LIBRARY_DIR}/array/builder_dict.cc "${LIBRARY_DIR}/array/builder_dict.cc"
${LIBRARY_DIR}/array/builder_nested.cc "${LIBRARY_DIR}/array/builder_nested.cc"
${LIBRARY_DIR}/array/builder_primitive.cc "${LIBRARY_DIR}/array/builder_primitive.cc"
${LIBRARY_DIR}/array/builder_union.cc "${LIBRARY_DIR}/array/builder_union.cc"
${LIBRARY_DIR}/array/concatenate.cc "${LIBRARY_DIR}/array/concatenate.cc"
${LIBRARY_DIR}/array/data.cc "${LIBRARY_DIR}/array/data.cc"
${LIBRARY_DIR}/array/diff.cc "${LIBRARY_DIR}/array/diff.cc"
${LIBRARY_DIR}/array/util.cc "${LIBRARY_DIR}/array/util.cc"
${LIBRARY_DIR}/array/validate.cc "${LIBRARY_DIR}/array/validate.cc"
${LIBRARY_DIR}/compute/api_scalar.cc "${LIBRARY_DIR}/compute/api_scalar.cc"
${LIBRARY_DIR}/compute/api_vector.cc "${LIBRARY_DIR}/compute/api_vector.cc"
${LIBRARY_DIR}/compute/cast.cc "${LIBRARY_DIR}/compute/cast.cc"
${LIBRARY_DIR}/compute/exec.cc "${LIBRARY_DIR}/compute/exec.cc"
${LIBRARY_DIR}/compute/function.cc "${LIBRARY_DIR}/compute/function.cc"
${LIBRARY_DIR}/compute/kernel.cc "${LIBRARY_DIR}/compute/kernel.cc"
${LIBRARY_DIR}/compute/registry.cc "${LIBRARY_DIR}/compute/registry.cc"
${LIBRARY_DIR}/compute/kernels/aggregate_basic.cc "${LIBRARY_DIR}/compute/kernels/aggregate_basic.cc"
${LIBRARY_DIR}/compute/kernels/aggregate_mode.cc "${LIBRARY_DIR}/compute/kernels/aggregate_mode.cc"
${LIBRARY_DIR}/compute/kernels/aggregate_var_std.cc "${LIBRARY_DIR}/compute/kernels/aggregate_var_std.cc"
${LIBRARY_DIR}/compute/kernels/codegen_internal.cc "${LIBRARY_DIR}/compute/kernels/codegen_internal.cc"
${LIBRARY_DIR}/compute/kernels/scalar_arithmetic.cc "${LIBRARY_DIR}/compute/kernels/scalar_arithmetic.cc"
${LIBRARY_DIR}/compute/kernels/scalar_boolean.cc "${LIBRARY_DIR}/compute/kernels/scalar_boolean.cc"
${LIBRARY_DIR}/compute/kernels/scalar_cast_boolean.cc "${LIBRARY_DIR}/compute/kernels/scalar_cast_boolean.cc"
${LIBRARY_DIR}/compute/kernels/scalar_cast_internal.cc "${LIBRARY_DIR}/compute/kernels/scalar_cast_internal.cc"
${LIBRARY_DIR}/compute/kernels/scalar_cast_nested.cc "${LIBRARY_DIR}/compute/kernels/scalar_cast_nested.cc"
${LIBRARY_DIR}/compute/kernels/scalar_cast_numeric.cc "${LIBRARY_DIR}/compute/kernels/scalar_cast_numeric.cc"
${LIBRARY_DIR}/compute/kernels/scalar_cast_string.cc "${LIBRARY_DIR}/compute/kernels/scalar_cast_string.cc"
${LIBRARY_DIR}/compute/kernels/scalar_cast_temporal.cc "${LIBRARY_DIR}/compute/kernels/scalar_cast_temporal.cc"
${LIBRARY_DIR}/compute/kernels/scalar_compare.cc "${LIBRARY_DIR}/compute/kernels/scalar_compare.cc"
${LIBRARY_DIR}/compute/kernels/scalar_fill_null.cc "${LIBRARY_DIR}/compute/kernels/scalar_fill_null.cc"
${LIBRARY_DIR}/compute/kernels/scalar_nested.cc "${LIBRARY_DIR}/compute/kernels/scalar_nested.cc"
${LIBRARY_DIR}/compute/kernels/scalar_set_lookup.cc "${LIBRARY_DIR}/compute/kernels/scalar_set_lookup.cc"
${LIBRARY_DIR}/compute/kernels/scalar_string.cc "${LIBRARY_DIR}/compute/kernels/scalar_string.cc"
${LIBRARY_DIR}/compute/kernels/scalar_validity.cc "${LIBRARY_DIR}/compute/kernels/scalar_validity.cc"
${LIBRARY_DIR}/compute/kernels/vector_hash.cc "${LIBRARY_DIR}/compute/kernels/vector_hash.cc"
${LIBRARY_DIR}/compute/kernels/vector_nested.cc "${LIBRARY_DIR}/compute/kernels/vector_nested.cc"
${LIBRARY_DIR}/compute/kernels/vector_selection.cc "${LIBRARY_DIR}/compute/kernels/vector_selection.cc"
${LIBRARY_DIR}/compute/kernels/vector_sort.cc "${LIBRARY_DIR}/compute/kernels/vector_sort.cc"
${LIBRARY_DIR}/compute/kernels/util_internal.cc "${LIBRARY_DIR}/compute/kernels/util_internal.cc"
${LIBRARY_DIR}/csv/chunker.cc "${LIBRARY_DIR}/csv/chunker.cc"
${LIBRARY_DIR}/csv/column_builder.cc "${LIBRARY_DIR}/csv/column_builder.cc"
${LIBRARY_DIR}/csv/column_decoder.cc "${LIBRARY_DIR}/csv/column_decoder.cc"
${LIBRARY_DIR}/csv/converter.cc "${LIBRARY_DIR}/csv/converter.cc"
${LIBRARY_DIR}/csv/options.cc "${LIBRARY_DIR}/csv/options.cc"
${LIBRARY_DIR}/csv/parser.cc "${LIBRARY_DIR}/csv/parser.cc"
${LIBRARY_DIR}/csv/reader.cc "${LIBRARY_DIR}/csv/reader.cc"
${LIBRARY_DIR}/ipc/dictionary.cc "${LIBRARY_DIR}/ipc/dictionary.cc"
${LIBRARY_DIR}/ipc/feather.cc "${LIBRARY_DIR}/ipc/feather.cc"
${LIBRARY_DIR}/ipc/message.cc "${LIBRARY_DIR}/ipc/message.cc"
${LIBRARY_DIR}/ipc/metadata_internal.cc "${LIBRARY_DIR}/ipc/metadata_internal.cc"
${LIBRARY_DIR}/ipc/options.cc "${LIBRARY_DIR}/ipc/options.cc"
${LIBRARY_DIR}/ipc/reader.cc "${LIBRARY_DIR}/ipc/reader.cc"
${LIBRARY_DIR}/ipc/writer.cc "${LIBRARY_DIR}/ipc/writer.cc"
${LIBRARY_DIR}/io/buffered.cc "${LIBRARY_DIR}/io/buffered.cc"
${LIBRARY_DIR}/io/caching.cc "${LIBRARY_DIR}/io/caching.cc"
${LIBRARY_DIR}/io/compressed.cc "${LIBRARY_DIR}/io/compressed.cc"
${LIBRARY_DIR}/io/file.cc "${LIBRARY_DIR}/io/file.cc"
${LIBRARY_DIR}/io/interfaces.cc "${LIBRARY_DIR}/io/interfaces.cc"
${LIBRARY_DIR}/io/memory.cc "${LIBRARY_DIR}/io/memory.cc"
${LIBRARY_DIR}/io/slow.cc "${LIBRARY_DIR}/io/slow.cc"
${LIBRARY_DIR}/tensor/coo_converter.cc "${LIBRARY_DIR}/tensor/coo_converter.cc"
${LIBRARY_DIR}/tensor/csf_converter.cc "${LIBRARY_DIR}/tensor/csf_converter.cc"
${LIBRARY_DIR}/tensor/csx_converter.cc "${LIBRARY_DIR}/tensor/csx_converter.cc"
${LIBRARY_DIR}/util/basic_decimal.cc "${LIBRARY_DIR}/util/basic_decimal.cc"
${LIBRARY_DIR}/util/bit_block_counter.cc "${LIBRARY_DIR}/util/bit_block_counter.cc"
${LIBRARY_DIR}/util/bit_run_reader.cc "${LIBRARY_DIR}/util/bit_run_reader.cc"
${LIBRARY_DIR}/util/bit_util.cc "${LIBRARY_DIR}/util/bit_util.cc"
${LIBRARY_DIR}/util/bitmap.cc "${LIBRARY_DIR}/util/bitmap.cc"
${LIBRARY_DIR}/util/bitmap_builders.cc "${LIBRARY_DIR}/util/bitmap_builders.cc"
${LIBRARY_DIR}/util/bitmap_ops.cc "${LIBRARY_DIR}/util/bitmap_ops.cc"
${LIBRARY_DIR}/util/bpacking.cc "${LIBRARY_DIR}/util/bpacking.cc"
${LIBRARY_DIR}/util/compression.cc "${LIBRARY_DIR}/util/compression.cc"
${LIBRARY_DIR}/util/compression_lz4.cc "${LIBRARY_DIR}/util/compression_lz4.cc"
${LIBRARY_DIR}/util/compression_snappy.cc "${LIBRARY_DIR}/util/compression_snappy.cc"
${LIBRARY_DIR}/util/compression_zlib.cc "${LIBRARY_DIR}/util/compression_zlib.cc"
${LIBRARY_DIR}/util/compression_zstd.cc "${LIBRARY_DIR}/util/compression_zstd.cc"
${LIBRARY_DIR}/util/cpu_info.cc "${LIBRARY_DIR}/util/cpu_info.cc"
${LIBRARY_DIR}/util/decimal.cc "${LIBRARY_DIR}/util/decimal.cc"
${LIBRARY_DIR}/util/delimiting.cc "${LIBRARY_DIR}/util/delimiting.cc"
${LIBRARY_DIR}/util/formatting.cc "${LIBRARY_DIR}/util/formatting.cc"
${LIBRARY_DIR}/util/future.cc "${LIBRARY_DIR}/util/future.cc"
${LIBRARY_DIR}/util/int_util.cc "${LIBRARY_DIR}/util/int_util.cc"
${LIBRARY_DIR}/util/io_util.cc "${LIBRARY_DIR}/util/io_util.cc"
${LIBRARY_DIR}/util/iterator.cc "${LIBRARY_DIR}/util/iterator.cc"
${LIBRARY_DIR}/util/key_value_metadata.cc "${LIBRARY_DIR}/util/key_value_metadata.cc"
${LIBRARY_DIR}/util/logging.cc "${LIBRARY_DIR}/util/logging.cc"
${LIBRARY_DIR}/util/memory.cc "${LIBRARY_DIR}/util/memory.cc"
${LIBRARY_DIR}/util/string_builder.cc "${LIBRARY_DIR}/util/string_builder.cc"
${LIBRARY_DIR}/util/string.cc "${LIBRARY_DIR}/util/string.cc"
${LIBRARY_DIR}/util/task_group.cc "${LIBRARY_DIR}/util/task_group.cc"
${LIBRARY_DIR}/util/thread_pool.cc "${LIBRARY_DIR}/util/thread_pool.cc"
${LIBRARY_DIR}/util/time.cc "${LIBRARY_DIR}/util/time.cc"
${LIBRARY_DIR}/util/trie.cc "${LIBRARY_DIR}/util/trie.cc"
${LIBRARY_DIR}/util/utf8.cc "${LIBRARY_DIR}/util/utf8.cc"
${LIBRARY_DIR}/util/value_parsing.cc "${LIBRARY_DIR}/util/value_parsing.cc"
${LIBRARY_DIR}/vendored/base64.cpp "${LIBRARY_DIR}/vendored/base64.cpp"
${ORC_SRCS} ${ORC_SRCS}
) )
@ -298,21 +298,21 @@ if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY)
endif () endif ()
add_definitions(-DARROW_WITH_LZ4) 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) if (ARROW_WITH_SNAPPY)
add_definitions(-DARROW_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 () endif ()
if (ARROW_WITH_ZLIB) if (ARROW_WITH_ZLIB)
add_definitions(-DARROW_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 () endif ()
if (ARROW_WITH_ZSTD) if (ARROW_WITH_ZSTD)
add_definitions(-DARROW_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 () endif ()
@ -327,8 +327,8 @@ if (USE_INTERNAL_PROTOBUF_LIBRARY)
add_dependencies(${ARROW_LIBRARY} protoc) add_dependencies(${ARROW_LIBRARY} protoc)
endif () endif ()
target_include_directories(${ARROW_LIBRARY} SYSTEM PUBLIC ${ClickHouse_SOURCE_DIR}/contrib/arrow/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_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 ${DOUBLE_CONVERSION_LIBRARIES} ${Protobuf_LIBRARY})
target_link_libraries(${ARROW_LIBRARY} PRIVATE lz4) target_link_libraries(${ARROW_LIBRARY} PRIVATE lz4)
if (ARROW_WITH_SNAPPY) if (ARROW_WITH_SNAPPY)
@ -354,46 +354,46 @@ target_include_directories(${ARROW_LIBRARY} PRIVATE SYSTEM ${FLATBUFFERS_INCLUDE
# === parquet # === parquet
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/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(GEN_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src/generated")
# arrow/cpp/src/parquet/CMakeLists.txt # arrow/cpp/src/parquet/CMakeLists.txt
set(PARQUET_SRCS set(PARQUET_SRCS
${LIBRARY_DIR}/arrow/path_internal.cc "${LIBRARY_DIR}/arrow/path_internal.cc"
${LIBRARY_DIR}/arrow/reader.cc "${LIBRARY_DIR}/arrow/reader.cc"
${LIBRARY_DIR}/arrow/reader_internal.cc "${LIBRARY_DIR}/arrow/reader_internal.cc"
${LIBRARY_DIR}/arrow/schema.cc "${LIBRARY_DIR}/arrow/schema.cc"
${LIBRARY_DIR}/arrow/schema_internal.cc "${LIBRARY_DIR}/arrow/schema_internal.cc"
${LIBRARY_DIR}/arrow/writer.cc "${LIBRARY_DIR}/arrow/writer.cc"
${LIBRARY_DIR}/bloom_filter.cc "${LIBRARY_DIR}/bloom_filter.cc"
${LIBRARY_DIR}/column_reader.cc "${LIBRARY_DIR}/column_reader.cc"
${LIBRARY_DIR}/column_scanner.cc "${LIBRARY_DIR}/column_scanner.cc"
${LIBRARY_DIR}/column_writer.cc "${LIBRARY_DIR}/column_writer.cc"
${LIBRARY_DIR}/deprecated_io.cc "${LIBRARY_DIR}/deprecated_io.cc"
${LIBRARY_DIR}/encoding.cc "${LIBRARY_DIR}/encoding.cc"
${LIBRARY_DIR}/encryption.cc "${LIBRARY_DIR}/encryption.cc"
${LIBRARY_DIR}/encryption_internal.cc "${LIBRARY_DIR}/encryption_internal.cc"
${LIBRARY_DIR}/file_reader.cc "${LIBRARY_DIR}/file_reader.cc"
${LIBRARY_DIR}/file_writer.cc "${LIBRARY_DIR}/file_writer.cc"
${LIBRARY_DIR}/internal_file_decryptor.cc "${LIBRARY_DIR}/internal_file_decryptor.cc"
${LIBRARY_DIR}/internal_file_encryptor.cc "${LIBRARY_DIR}/internal_file_encryptor.cc"
${LIBRARY_DIR}/level_conversion.cc "${LIBRARY_DIR}/level_conversion.cc"
${LIBRARY_DIR}/level_comparison.cc "${LIBRARY_DIR}/level_comparison.cc"
${LIBRARY_DIR}/metadata.cc "${LIBRARY_DIR}/metadata.cc"
${LIBRARY_DIR}/murmur3.cc "${LIBRARY_DIR}/murmur3.cc"
${LIBRARY_DIR}/platform.cc "${LIBRARY_DIR}/platform.cc"
${LIBRARY_DIR}/printer.cc "${LIBRARY_DIR}/printer.cc"
${LIBRARY_DIR}/properties.cc "${LIBRARY_DIR}/properties.cc"
${LIBRARY_DIR}/schema.cc "${LIBRARY_DIR}/schema.cc"
${LIBRARY_DIR}/statistics.cc "${LIBRARY_DIR}/statistics.cc"
${LIBRARY_DIR}/types.cc "${LIBRARY_DIR}/types.cc"
${GEN_LIBRARY_DIR}/parquet_constants.cpp "${GEN_LIBRARY_DIR}/parquet_constants.cpp"
${GEN_LIBRARY_DIR}/parquet_types.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}) 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}) 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 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}) target_link_libraries(${PARQUET_LIBRARY} PUBLIC ${ARROW_LIBRARY} PRIVATE ${THRIFT_LIBRARY} boost::headers_only boost::regex ${OPENSSL_LIBRARIES})
if (SANITIZE STREQUAL "undefined") if (SANITIZE STREQUAL "undefined")
@ -403,9 +403,9 @@ endif ()
# === tools # === 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) set(PARQUET_TOOLS parquet_dump_schema parquet_reader parquet_scan)
foreach (TOOL ${PARQUET_TOOLS}) 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}) target_link_libraries(${TOOL} PRIVATE ${PARQUET_LIBRARY})
endforeach () endforeach ()

View File

@ -1,10 +1,10 @@
set(AVROCPP_ROOT_DIR ${CMAKE_SOURCE_DIR}/contrib/avro/lang/c++) set(AVROCPP_ROOT_DIR "${CMAKE_SOURCE_DIR}/contrib/avro/lang/c++")
set(AVROCPP_INCLUDE_DIR ${AVROCPP_ROOT_DIR}/api) set(AVROCPP_INCLUDE_DIR "${AVROCPP_ROOT_DIR}/api")
set(AVROCPP_SOURCE_DIR ${AVROCPP_ROOT_DIR}/impl) set(AVROCPP_SOURCE_DIR "${AVROCPP_ROOT_DIR}/impl")
set (CMAKE_CXX_STANDARD 17) 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" file(READ "${AVROCPP_ROOT_DIR}/../../share/VERSION.txt"
AVRO_VERSION) AVRO_VERSION)
endif() endif()
@ -14,30 +14,30 @@ set (AVRO_VERSION_MAJOR ${AVRO_VERSION})
set (AVRO_VERSION_MINOR "0") set (AVRO_VERSION_MINOR "0")
set (AVROCPP_SOURCE_FILES set (AVROCPP_SOURCE_FILES
${AVROCPP_SOURCE_DIR}/Compiler.cc "${AVROCPP_SOURCE_DIR}/Compiler.cc"
${AVROCPP_SOURCE_DIR}/Node.cc "${AVROCPP_SOURCE_DIR}/Node.cc"
${AVROCPP_SOURCE_DIR}/LogicalType.cc "${AVROCPP_SOURCE_DIR}/LogicalType.cc"
${AVROCPP_SOURCE_DIR}/NodeImpl.cc "${AVROCPP_SOURCE_DIR}/NodeImpl.cc"
${AVROCPP_SOURCE_DIR}/ResolverSchema.cc "${AVROCPP_SOURCE_DIR}/ResolverSchema.cc"
${AVROCPP_SOURCE_DIR}/Schema.cc "${AVROCPP_SOURCE_DIR}/Schema.cc"
${AVROCPP_SOURCE_DIR}/Types.cc "${AVROCPP_SOURCE_DIR}/Types.cc"
${AVROCPP_SOURCE_DIR}/ValidSchema.cc "${AVROCPP_SOURCE_DIR}/ValidSchema.cc"
${AVROCPP_SOURCE_DIR}/Zigzag.cc "${AVROCPP_SOURCE_DIR}/Zigzag.cc"
${AVROCPP_SOURCE_DIR}/BinaryEncoder.cc "${AVROCPP_SOURCE_DIR}/BinaryEncoder.cc"
${AVROCPP_SOURCE_DIR}/BinaryDecoder.cc "${AVROCPP_SOURCE_DIR}/BinaryDecoder.cc"
${AVROCPP_SOURCE_DIR}/Stream.cc "${AVROCPP_SOURCE_DIR}/Stream.cc"
${AVROCPP_SOURCE_DIR}/FileStream.cc "${AVROCPP_SOURCE_DIR}/FileStream.cc"
${AVROCPP_SOURCE_DIR}/Generic.cc "${AVROCPP_SOURCE_DIR}/Generic.cc"
${AVROCPP_SOURCE_DIR}/GenericDatum.cc "${AVROCPP_SOURCE_DIR}/GenericDatum.cc"
${AVROCPP_SOURCE_DIR}/DataFile.cc "${AVROCPP_SOURCE_DIR}/DataFile.cc"
${AVROCPP_SOURCE_DIR}/parsing/Symbol.cc "${AVROCPP_SOURCE_DIR}/parsing/Symbol.cc"
${AVROCPP_SOURCE_DIR}/parsing/ValidatingCodec.cc "${AVROCPP_SOURCE_DIR}/parsing/ValidatingCodec.cc"
${AVROCPP_SOURCE_DIR}/parsing/JsonCodec.cc "${AVROCPP_SOURCE_DIR}/parsing/JsonCodec.cc"
${AVROCPP_SOURCE_DIR}/parsing/ResolvingDecoder.cc "${AVROCPP_SOURCE_DIR}/parsing/ResolvingDecoder.cc"
${AVROCPP_SOURCE_DIR}/json/JsonIO.cc "${AVROCPP_SOURCE_DIR}/json/JsonIO.cc"
${AVROCPP_SOURCE_DIR}/json/JsonDom.cc "${AVROCPP_SOURCE_DIR}/json/JsonDom.cc"
${AVROCPP_SOURCE_DIR}/Resolver.cc "${AVROCPP_SOURCE_DIR}/Resolver.cc"
${AVROCPP_SOURCE_DIR}/Validator.cc "${AVROCPP_SOURCE_DIR}/Validator.cc"
) )
add_library (avrocpp ${AVROCPP_SOURCE_FILES}) 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/...> # create a symlink to include headers with <avro/...>
ADD_CUSTOM_TARGET(avro_symlink_headers ALL ADD_CUSTOM_TARGET(avro_symlink_headers ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${AVROCPP_ROOT_DIR}/include 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 create_symlink "${AVROCPP_ROOT_DIR}/api" "${AVROCPP_ROOT_DIR}/include/avro"
) )
add_dependencies(avrocpp avro_symlink_headers) add_dependencies(avrocpp avro_symlink_headers)

View File

@ -1,8 +1,8 @@
SET(AWS_S3_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws/aws-cpp-sdk-s3) 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_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_CHECKSUMS_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-checksums")
SET(AWS_COMMON_LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/aws-c-common) 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_EVENT_STREAM_LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/aws-c-event-stream")
OPTION(USE_AWS_MEMORY_MANAGEMENT "Aws memory management" OFF) OPTION(USE_AWS_MEMORY_MANAGEMENT "Aws memory management" OFF)
configure_file("${AWS_CORE_LIBRARY_DIR}/include/aws/core/SDKConfig.h.in" configure_file("${AWS_CORE_LIBRARY_DIR}/include/aws/core/SDKConfig.h.in"

View File

@ -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_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_ssse3 OBJECT "${LIBRARY_DIR}/turbob64sse.c") # This file also contains code for ARM NEON
if (ARCH_AMD64) 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_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_avx2 OBJECT "${LIBRARY_DIR}/turbob64avx2.c")
endif () endif ()
target_compile_options(base64_scalar PRIVATE -falign-loops) target_compile_options(base64_scalar PRIVATE -falign-loops)

2
contrib/boost vendored

@ -1 +1 @@
Subproject commit ee24fa55bc46e4d2ce7d0d052cc5a0d9b1be8c36 Subproject commit a8d43d3142cc6b26fc55bec33f7f6edb1156ab7a

View File

@ -56,19 +56,19 @@ endif()
if (NOT EXTERNAL_BOOST_FOUND) if (NOT EXTERNAL_BOOST_FOUND)
set (USE_INTERNAL_BOOST_LIBRARY 1) set (USE_INTERNAL_BOOST_LIBRARY 1)
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/boost) set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/boost")
# filesystem # filesystem
set (SRCS_FILESYSTEM set (SRCS_FILESYSTEM
${LIBRARY_DIR}/libs/filesystem/src/codecvt_error_category.cpp "${LIBRARY_DIR}/libs/filesystem/src/codecvt_error_category.cpp"
${LIBRARY_DIR}/libs/filesystem/src/operations.cpp "${LIBRARY_DIR}/libs/filesystem/src/operations.cpp"
${LIBRARY_DIR}/libs/filesystem/src/path_traits.cpp "${LIBRARY_DIR}/libs/filesystem/src/path_traits.cpp"
${LIBRARY_DIR}/libs/filesystem/src/path.cpp "${LIBRARY_DIR}/libs/filesystem/src/path.cpp"
${LIBRARY_DIR}/libs/filesystem/src/portability.cpp "${LIBRARY_DIR}/libs/filesystem/src/portability.cpp"
${LIBRARY_DIR}/libs/filesystem/src/unique_path.cpp "${LIBRARY_DIR}/libs/filesystem/src/unique_path.cpp"
${LIBRARY_DIR}/libs/filesystem/src/utf8_codecvt_facet.cpp "${LIBRARY_DIR}/libs/filesystem/src/utf8_codecvt_facet.cpp"
${LIBRARY_DIR}/libs/filesystem/src/windows_file_codecvt.cpp "${LIBRARY_DIR}/libs/filesystem/src/windows_file_codecvt.cpp"
) )
add_library (_boost_filesystem ${SRCS_FILESYSTEM}) add_library (_boost_filesystem ${SRCS_FILESYSTEM})
@ -88,10 +88,10 @@ if (NOT EXTERNAL_BOOST_FOUND)
# iostreams # iostreams
set (SRCS_IOSTREAMS set (SRCS_IOSTREAMS
${LIBRARY_DIR}/libs/iostreams/src/file_descriptor.cpp "${LIBRARY_DIR}/libs/iostreams/src/file_descriptor.cpp"
${LIBRARY_DIR}/libs/iostreams/src/gzip.cpp "${LIBRARY_DIR}/libs/iostreams/src/gzip.cpp"
${LIBRARY_DIR}/libs/iostreams/src/mapped_file.cpp "${LIBRARY_DIR}/libs/iostreams/src/mapped_file.cpp"
${LIBRARY_DIR}/libs/iostreams/src/zlib.cpp "${LIBRARY_DIR}/libs/iostreams/src/zlib.cpp"
) )
add_library (_boost_iostreams ${SRCS_IOSTREAMS}) add_library (_boost_iostreams ${SRCS_IOSTREAMS})
@ -102,17 +102,17 @@ if (NOT EXTERNAL_BOOST_FOUND)
# program_options # program_options
set (SRCS_PROGRAM_OPTIONS set (SRCS_PROGRAM_OPTIONS
${LIBRARY_DIR}/libs/program_options/src/cmdline.cpp "${LIBRARY_DIR}/libs/program_options/src/cmdline.cpp"
${LIBRARY_DIR}/libs/program_options/src/config_file.cpp "${LIBRARY_DIR}/libs/program_options/src/config_file.cpp"
${LIBRARY_DIR}/libs/program_options/src/convert.cpp "${LIBRARY_DIR}/libs/program_options/src/convert.cpp"
${LIBRARY_DIR}/libs/program_options/src/options_description.cpp "${LIBRARY_DIR}/libs/program_options/src/options_description.cpp"
${LIBRARY_DIR}/libs/program_options/src/parsers.cpp "${LIBRARY_DIR}/libs/program_options/src/parsers.cpp"
${LIBRARY_DIR}/libs/program_options/src/positional_options.cpp "${LIBRARY_DIR}/libs/program_options/src/positional_options.cpp"
${LIBRARY_DIR}/libs/program_options/src/split.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/utf8_codecvt_facet.cpp"
${LIBRARY_DIR}/libs/program_options/src/value_semantic.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/variables_map.cpp"
${LIBRARY_DIR}/libs/program_options/src/winmain.cpp "${LIBRARY_DIR}/libs/program_options/src/winmain.cpp"
) )
add_library (_boost_program_options ${SRCS_PROGRAM_OPTIONS}) add_library (_boost_program_options ${SRCS_PROGRAM_OPTIONS})
@ -122,24 +122,24 @@ if (NOT EXTERNAL_BOOST_FOUND)
# regex # regex
set (SRCS_REGEX set (SRCS_REGEX
${LIBRARY_DIR}/libs/regex/src/c_regex_traits.cpp "${LIBRARY_DIR}/libs/regex/src/c_regex_traits.cpp"
${LIBRARY_DIR}/libs/regex/src/cpp_regex_traits.cpp "${LIBRARY_DIR}/libs/regex/src/cpp_regex_traits.cpp"
${LIBRARY_DIR}/libs/regex/src/cregex.cpp "${LIBRARY_DIR}/libs/regex/src/cregex.cpp"
${LIBRARY_DIR}/libs/regex/src/fileiter.cpp "${LIBRARY_DIR}/libs/regex/src/fileiter.cpp"
${LIBRARY_DIR}/libs/regex/src/icu.cpp "${LIBRARY_DIR}/libs/regex/src/icu.cpp"
${LIBRARY_DIR}/libs/regex/src/instances.cpp "${LIBRARY_DIR}/libs/regex/src/instances.cpp"
${LIBRARY_DIR}/libs/regex/src/internals.hpp "${LIBRARY_DIR}/libs/regex/src/internals.hpp"
${LIBRARY_DIR}/libs/regex/src/posix_api.cpp "${LIBRARY_DIR}/libs/regex/src/posix_api.cpp"
${LIBRARY_DIR}/libs/regex/src/regex_debug.cpp "${LIBRARY_DIR}/libs/regex/src/regex_debug.cpp"
${LIBRARY_DIR}/libs/regex/src/regex_raw_buffer.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_traits_defaults.cpp"
${LIBRARY_DIR}/libs/regex/src/regex.cpp "${LIBRARY_DIR}/libs/regex/src/regex.cpp"
${LIBRARY_DIR}/libs/regex/src/static_mutex.cpp "${LIBRARY_DIR}/libs/regex/src/static_mutex.cpp"
${LIBRARY_DIR}/libs/regex/src/usinstances.cpp "${LIBRARY_DIR}/libs/regex/src/usinstances.cpp"
${LIBRARY_DIR}/libs/regex/src/w32_regex_traits.cpp "${LIBRARY_DIR}/libs/regex/src/w32_regex_traits.cpp"
${LIBRARY_DIR}/libs/regex/src/wc_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/wide_posix_api.cpp"
${LIBRARY_DIR}/libs/regex/src/winstances.cpp "${LIBRARY_DIR}/libs/regex/src/winstances.cpp"
) )
add_library (_boost_regex ${SRCS_REGEX}) add_library (_boost_regex ${SRCS_REGEX})
@ -149,7 +149,7 @@ if (NOT EXTERNAL_BOOST_FOUND)
# system # system
set (SRCS_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}) add_library (_boost_system ${SRCS_SYSTEM})
@ -160,6 +160,12 @@ if (NOT EXTERNAL_BOOST_FOUND)
enable_language(ASM) enable_language(ASM)
SET(ASM_OPTIONS "-x assembler-with-cpp") 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"
)
if (SANITIZE AND (SANITIZE STREQUAL "address" OR SANITIZE STREQUAL "thread")) if (SANITIZE AND (SANITIZE STREQUAL "address" OR SANITIZE STREQUAL "thread"))
add_compile_definitions(BOOST_USE_UCONTEXT) add_compile_definitions(BOOST_USE_UCONTEXT)
@ -169,39 +175,34 @@ if (NOT EXTERNAL_BOOST_FOUND)
add_compile_definitions(BOOST_USE_TSAN) add_compile_definitions(BOOST_USE_TSAN)
endif() endif()
set (SRCS_CONTEXT set (SRCS_CONTEXT ${SRCS_CONTEXT}
${LIBRARY_DIR}/libs/context/src/fiber.cpp "${LIBRARY_DIR}/libs/context/src/fiber.cpp"
${LIBRARY_DIR}/libs/context/src/continuation.cpp "${LIBRARY_DIR}/libs/context/src/continuation.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
) )
elseif (ARCH_ARM) endif()
set (SRCS_CONTEXT if (ARCH_ARM)
${LIBRARY_DIR}/libs/context/src/asm/jump_arm64_aapcs_elf_gas.S set (SRCS_CONTEXT ${SRCS_CONTEXT}
${LIBRARY_DIR}/libs/context/src/asm/make_arm64_aapcs_elf_gas.S "${LIBRARY_DIR}/libs/context/src/asm/jump_arm64_aapcs_elf_gas.S"
${LIBRARY_DIR}/libs/context/src/asm/ontop_arm64_aapcs_elf_gas.S "${LIBRARY_DIR}/libs/context/src/asm/make_arm64_aapcs_elf_gas.S"
${LIBRARY_DIR}/libs/context/src/dummy.cpp "${LIBRARY_DIR}/libs/context/src/asm/ontop_arm64_aapcs_elf_gas.S"
${LIBRARY_DIR}/libs/context/src/execution_context.cpp )
${LIBRARY_DIR}/libs/context/src/posix/stack_traits.cpp 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"
) )
elseif(OS_DARWIN) elseif(OS_DARWIN)
set (SRCS_CONTEXT set (SRCS_CONTEXT ${SRCS_CONTEXT}
${LIBRARY_DIR}/libs/context/src/asm/jump_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/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/ontop_x86_64_sysv_macho_gas.S"
${LIBRARY_DIR}/libs/context/src/dummy.cpp
${LIBRARY_DIR}/libs/context/src/execution_context.cpp
${LIBRARY_DIR}/libs/context/src/posix/stack_traits.cpp
) )
else() else()
set (SRCS_CONTEXT set (SRCS_CONTEXT ${SRCS_CONTEXT}
${LIBRARY_DIR}/libs/context/src/asm/jump_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/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/ontop_x86_64_sysv_elf_gas.S"
${LIBRARY_DIR}/libs/context/src/dummy.cpp
${LIBRARY_DIR}/libs/context/src/execution_context.cpp
${LIBRARY_DIR}/libs/context/src/posix/stack_traits.cpp
) )
endif() endif()
@ -212,9 +213,9 @@ if (NOT EXTERNAL_BOOST_FOUND)
# coroutine # coroutine
set (SRCS_COROUTINE set (SRCS_COROUTINE
${LIBRARY_DIR}/libs/coroutine/detail/coroutine_context.cpp "${LIBRARY_DIR}/libs/coroutine/detail/coroutine_context.cpp"
${LIBRARY_DIR}/libs/coroutine/exceptions.cpp "${LIBRARY_DIR}/libs/coroutine/exceptions.cpp"
${LIBRARY_DIR}/libs/coroutine/posix/stack_traits.cpp "${LIBRARY_DIR}/libs/coroutine/posix/stack_traits.cpp"
) )
add_library (_boost_coroutine ${SRCS_COROUTINE}) add_library (_boost_coroutine ${SRCS_COROUTINE})
add_library (boost::coroutine ALIAS _boost_coroutine) add_library (boost::coroutine ALIAS _boost_coroutine)

2
contrib/boringssl vendored

@ -1 +1 @@
Subproject commit fd9ce1a0406f571507068b9555d0b545b8a18332 Subproject commit 83c1cda8a0224dc817cbad2966c7ed4acc35f02a

View File

@ -8,7 +8,7 @@ cmake_minimum_required(VERSION 3.0)
project(BoringSSL LANGUAGES C CXX) 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") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CLANG 1) set(CLANG 1)
@ -16,7 +16,7 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CLANG) 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") 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++") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif() endif()
@ -130,7 +130,7 @@ if(BUILD_SHARED_LIBS)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
endif() endif()
include_directories(${BORINGSSL_SOURCE_DIR}/include) include_directories("${BORINGSSL_SOURCE_DIR}/include")
set( set(
CRYPTO_ios_aarch64_SOURCES CRYPTO_ios_aarch64_SOURCES
@ -192,8 +192,8 @@ set(
linux-arm/crypto/fipsmodule/sha512-armv4.S linux-arm/crypto/fipsmodule/sha512-armv4.S
linux-arm/crypto/fipsmodule/vpaes-armv7.S linux-arm/crypto/fipsmodule/vpaes-armv7.S
linux-arm/crypto/test/trampoline-armv4.S linux-arm/crypto/test/trampoline-armv4.S
${BORINGSSL_SOURCE_DIR}/crypto/curve25519/asm/x25519-asm-arm.S "${BORINGSSL_SOURCE_DIR}/crypto/curve25519/asm/x25519-asm-arm.S"
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm_asm.S "${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm_asm.S"
) )
set( set(
@ -244,7 +244,7 @@ set(
linux-x86_64/crypto/fipsmodule/x86_64-mont.S linux-x86_64/crypto/fipsmodule/x86_64-mont.S
linux-x86_64/crypto/fipsmodule/x86_64-mont5.S linux-x86_64/crypto/fipsmodule/x86_64-mont5.S
linux-x86_64/crypto/test/trampoline-x86_64.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( set(
@ -348,300 +348,300 @@ add_library(
${CRYPTO_ARCH_SOURCES} ${CRYPTO_ARCH_SOURCES}
err_data.c err_data.c
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bitstr.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bitstr.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bool.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_bool.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_d2i_fp.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_d2i_fp.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_dup.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_dup.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_enum.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_enum.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_gentm.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_gentm.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_i2d_fp.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_i2d_fp.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_int.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_int.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_mbstr.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_mbstr.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_object.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_octet.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_print.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_strnid.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_time.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_type.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utctm.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utctm.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utf8.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/a_utf8.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_lib.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_lib.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_par.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn1_par.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn_pack.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/asn_pack.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_enum.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_enum.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_int.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_int.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_string.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/f_string.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_dec.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_dec.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_enc.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_enc.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_fre.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_fre.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_new.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_new.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_typ.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_typ.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_utl.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/tasn_utl.c"
${BORINGSSL_SOURCE_DIR}/crypto/asn1/time_support.c "${BORINGSSL_SOURCE_DIR}/crypto/asn1/time_support.c"
${BORINGSSL_SOURCE_DIR}/crypto/base64/base64.c "${BORINGSSL_SOURCE_DIR}/crypto/base64/base64.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/bio.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/bio.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/bio_mem.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/bio_mem.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/connect.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/connect.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/fd.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/fd.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/file.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/file.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/hexdump.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/hexdump.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/pair.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/pair.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/printf.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/socket.c"
${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c "${BORINGSSL_SOURCE_DIR}/crypto/bio/socket_helper.c"
${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c "${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/bn_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c "${BORINGSSL_SOURCE_DIR}/crypto/bn_extra/convert.c"
${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c "${BORINGSSL_SOURCE_DIR}/crypto/buf/buf.c"
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/asn1_compat.c "${BORINGSSL_SOURCE_DIR}/crypto/bytestring/asn1_compat.c"
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/ber.c "${BORINGSSL_SOURCE_DIR}/crypto/bytestring/ber.c"
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbb.c "${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbb.c"
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbs.c "${BORINGSSL_SOURCE_DIR}/crypto/bytestring/cbs.c"
${BORINGSSL_SOURCE_DIR}/crypto/bytestring/unicode.c "${BORINGSSL_SOURCE_DIR}/crypto/bytestring/unicode.c"
${BORINGSSL_SOURCE_DIR}/crypto/chacha/chacha.c "${BORINGSSL_SOURCE_DIR}/crypto/chacha/chacha.c"
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/cipher_extra.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/derive_key.c"
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesccm.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_aesctrhmac.c"
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_aesgcmsiv.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_chacha20poly1305.c"
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_null.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_rc2.c"
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/e_rc4.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/e_tls.c"
${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/tls_cbc.c "${BORINGSSL_SOURCE_DIR}/crypto/cipher_extra/tls_cbc.c"
${BORINGSSL_SOURCE_DIR}/crypto/cmac/cmac.c "${BORINGSSL_SOURCE_DIR}/crypto/cmac/cmac.c"
${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c "${BORINGSSL_SOURCE_DIR}/crypto/conf/conf.c"
${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c "${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-fuchsia.c"
${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c "${BORINGSSL_SOURCE_DIR}/crypto/cpu-aarch64-linux.c"
${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c "${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm-linux.c"
${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c "${BORINGSSL_SOURCE_DIR}/crypto/cpu-arm.c"
${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c "${BORINGSSL_SOURCE_DIR}/crypto/cpu-intel.c"
${BORINGSSL_SOURCE_DIR}/crypto/cpu-ppc64le.c "${BORINGSSL_SOURCE_DIR}/crypto/cpu-ppc64le.c"
${BORINGSSL_SOURCE_DIR}/crypto/crypto.c "${BORINGSSL_SOURCE_DIR}/crypto/crypto.c"
${BORINGSSL_SOURCE_DIR}/crypto/curve25519/curve25519.c "${BORINGSSL_SOURCE_DIR}/crypto/curve25519/curve25519.c"
${BORINGSSL_SOURCE_DIR}/crypto/curve25519/spake25519.c "${BORINGSSL_SOURCE_DIR}/crypto/curve25519/spake25519.c"
${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/dh_asn1.c "${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/dh_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/params.c "${BORINGSSL_SOURCE_DIR}/crypto/dh_extra/params.c"
${BORINGSSL_SOURCE_DIR}/crypto/digest_extra/digest_extra.c "${BORINGSSL_SOURCE_DIR}/crypto/digest_extra/digest_extra.c"
${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa.c "${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa.c"
${BORINGSSL_SOURCE_DIR}/crypto/dsa/dsa_asn1.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_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_derive.c "${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/ec_derive.c"
${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/hash_to_curve.c "${BORINGSSL_SOURCE_DIR}/crypto/ec_extra/hash_to_curve.c"
${BORINGSSL_SOURCE_DIR}/crypto/ecdh_extra/ecdh_extra.c "${BORINGSSL_SOURCE_DIR}/crypto/ecdh_extra/ecdh_extra.c"
${BORINGSSL_SOURCE_DIR}/crypto/ecdsa_extra/ecdsa_asn1.c "${BORINGSSL_SOURCE_DIR}/crypto/ecdsa_extra/ecdsa_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/engine/engine.c "${BORINGSSL_SOURCE_DIR}/crypto/engine/engine.c"
${BORINGSSL_SOURCE_DIR}/crypto/err/err.c "${BORINGSSL_SOURCE_DIR}/crypto/err/err.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/digestsign.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/digestsign.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/evp.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/evp.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_asn1.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_ctx.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/evp_ctx.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_dsa_asn1.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.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ec_asn1.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.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_ed25519_asn1.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.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_rsa_asn1.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.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/p_x25519_asn1.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/p_x25519_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/pbkdf.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/pbkdf.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/print.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/print.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/scrypt.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/scrypt.c"
${BORINGSSL_SOURCE_DIR}/crypto/evp/sign.c "${BORINGSSL_SOURCE_DIR}/crypto/evp/sign.c"
${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c "${BORINGSSL_SOURCE_DIR}/crypto/ex_data.c"
${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.c "${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/bcm.c"
${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/fips_shared_support.c "${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/fips_shared_support.c"
${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/is_fips.c "${BORINGSSL_SOURCE_DIR}/crypto/fipsmodule/is_fips.c"
${BORINGSSL_SOURCE_DIR}/crypto/hkdf/hkdf.c "${BORINGSSL_SOURCE_DIR}/crypto/hkdf/hkdf.c"
${BORINGSSL_SOURCE_DIR}/crypto/hpke/hpke.c "${BORINGSSL_SOURCE_DIR}/crypto/hpke/hpke.c"
${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c "${BORINGSSL_SOURCE_DIR}/crypto/hrss/hrss.c"
${BORINGSSL_SOURCE_DIR}/crypto/lhash/lhash.c "${BORINGSSL_SOURCE_DIR}/crypto/lhash/lhash.c"
${BORINGSSL_SOURCE_DIR}/crypto/mem.c "${BORINGSSL_SOURCE_DIR}/crypto/mem.c"
${BORINGSSL_SOURCE_DIR}/crypto/obj/obj.c "${BORINGSSL_SOURCE_DIR}/crypto/obj/obj.c"
${BORINGSSL_SOURCE_DIR}/crypto/obj/obj_xref.c "${BORINGSSL_SOURCE_DIR}/crypto/obj/obj_xref.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_all.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_all.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_info.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_info.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_lib.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_lib.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_oth.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_oth.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pk8.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pk8.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pkey.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_pkey.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_x509.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_x509.c"
${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_xaux.c "${BORINGSSL_SOURCE_DIR}/crypto/pem/pem_xaux.c"
${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7.c "${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7.c"
${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7_x509.c "${BORINGSSL_SOURCE_DIR}/crypto/pkcs7/pkcs7_x509.c"
${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/p5_pbev2.c "${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/p5_pbev2.c"
${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8.c "${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8.c"
${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8_x509.c "${BORINGSSL_SOURCE_DIR}/crypto/pkcs8/pkcs8_x509.c"
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305.c "${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305.c"
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm.c "${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_arm.c"
${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_vec.c "${BORINGSSL_SOURCE_DIR}/crypto/poly1305/poly1305_vec.c"
${BORINGSSL_SOURCE_DIR}/crypto/pool/pool.c "${BORINGSSL_SOURCE_DIR}/crypto/pool/pool.c"
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/deterministic.c "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/deterministic.c"
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/forkunsafe.c "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/forkunsafe.c"
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/fuchsia.c "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/fuchsia.c"
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/passive.c "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/passive.c"
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/rand_extra.c "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/rand_extra.c"
${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/windows.c "${BORINGSSL_SOURCE_DIR}/crypto/rand_extra/windows.c"
${BORINGSSL_SOURCE_DIR}/crypto/rc4/rc4.c "${BORINGSSL_SOURCE_DIR}/crypto/rc4/rc4.c"
${BORINGSSL_SOURCE_DIR}/crypto/refcount_c11.c "${BORINGSSL_SOURCE_DIR}/crypto/refcount_c11.c"
${BORINGSSL_SOURCE_DIR}/crypto/refcount_lock.c "${BORINGSSL_SOURCE_DIR}/crypto/refcount_lock.c"
${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_asn1.c "${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_asn1.c"
${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_print.c "${BORINGSSL_SOURCE_DIR}/crypto/rsa_extra/rsa_print.c"
${BORINGSSL_SOURCE_DIR}/crypto/siphash/siphash.c "${BORINGSSL_SOURCE_DIR}/crypto/siphash/siphash.c"
${BORINGSSL_SOURCE_DIR}/crypto/stack/stack.c "${BORINGSSL_SOURCE_DIR}/crypto/stack/stack.c"
${BORINGSSL_SOURCE_DIR}/crypto/thread.c "${BORINGSSL_SOURCE_DIR}/crypto/thread.c"
${BORINGSSL_SOURCE_DIR}/crypto/thread_none.c "${BORINGSSL_SOURCE_DIR}/crypto/thread_none.c"
${BORINGSSL_SOURCE_DIR}/crypto/thread_pthread.c "${BORINGSSL_SOURCE_DIR}/crypto/thread_pthread.c"
${BORINGSSL_SOURCE_DIR}/crypto/thread_win.c "${BORINGSSL_SOURCE_DIR}/crypto/thread_win.c"
${BORINGSSL_SOURCE_DIR}/crypto/trust_token/pmbtoken.c "${BORINGSSL_SOURCE_DIR}/crypto/trust_token/pmbtoken.c"
${BORINGSSL_SOURCE_DIR}/crypto/trust_token/trust_token.c "${BORINGSSL_SOURCE_DIR}/crypto/trust_token/trust_token.c"
${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c "${BORINGSSL_SOURCE_DIR}/crypto/trust_token/voprf.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_digest.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/a_sign.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_sign.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/a_strex.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_strex.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/a_verify.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/a_verify.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/algorithm.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/algorithm.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/asn1_gen.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/by_dir.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/by_file.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/i2d_pr.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/rsa_pss.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/t_crl.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/t_req.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509a.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/t_x509a.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_att.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_att.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_cmp.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_cmp.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_d2.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_d2.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_def.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_def.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_ext.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_ext.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_lu.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_lu.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_obj.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_obj.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_r2x.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_r2x.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_req.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_req.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_set.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_set.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_trs.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_trs.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_txt.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_txt.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_v3.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_v3.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vfy.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vfy.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vpm.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509_vpm.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509cset.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509cset.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509name.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509name.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509rset.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509rset.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x509spki.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x509spki.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_algor.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_algor.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_all.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_all.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_attrib.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_attrib.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_crl.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_crl.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_exten.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_exten.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_info.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_info.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_name.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_name.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pkey.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pkey.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pubkey.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_pubkey.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_req.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_req.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_sig.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_sig.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_spki.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_spki.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_val.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_val.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509a.c "${BORINGSSL_SOURCE_DIR}/crypto/x509/x_x509a.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_cache.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_cache.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_data.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_data.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_lib.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_lib.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_map.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_map.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_node.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_node.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_tree.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/pcy_tree.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akey.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akey.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akeya.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_akeya.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_alt.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_alt.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bcons.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bcons.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bitst.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_bitst.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_conf.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_conf.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_cpols.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_cpols.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_crld.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_crld.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_enum.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_enum.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_extku.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_extku.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_genn.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_genn.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ia5.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ia5.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_info.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_info.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_int.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_int.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_lib.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_lib.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ncons.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ncons.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ocsp.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_ocsp.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pci.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pci.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcia.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcia.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcons.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pcons.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pmaps.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_pmaps.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_prn.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_prn.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_purp.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_purp.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_skey.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_skey.c"
${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_utl.c "${BORINGSSL_SOURCE_DIR}/crypto/x509v3/v3_utl.c"
) )
add_library( add_library(
ssl ssl
${BORINGSSL_SOURCE_DIR}/ssl/bio_ssl.cc "${BORINGSSL_SOURCE_DIR}/ssl/bio_ssl.cc"
${BORINGSSL_SOURCE_DIR}/ssl/d1_both.cc "${BORINGSSL_SOURCE_DIR}/ssl/d1_both.cc"
${BORINGSSL_SOURCE_DIR}/ssl/d1_lib.cc "${BORINGSSL_SOURCE_DIR}/ssl/d1_lib.cc"
${BORINGSSL_SOURCE_DIR}/ssl/d1_pkt.cc "${BORINGSSL_SOURCE_DIR}/ssl/d1_pkt.cc"
${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc "${BORINGSSL_SOURCE_DIR}/ssl/d1_srtp.cc"
${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc "${BORINGSSL_SOURCE_DIR}/ssl/dtls_method.cc"
${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc "${BORINGSSL_SOURCE_DIR}/ssl/dtls_record.cc"
${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc "${BORINGSSL_SOURCE_DIR}/ssl/handoff.cc"
${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc "${BORINGSSL_SOURCE_DIR}/ssl/handshake.cc"
${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc "${BORINGSSL_SOURCE_DIR}/ssl/handshake_client.cc"
${BORINGSSL_SOURCE_DIR}/ssl/handshake_server.cc "${BORINGSSL_SOURCE_DIR}/ssl/handshake_server.cc"
${BORINGSSL_SOURCE_DIR}/ssl/s3_both.cc "${BORINGSSL_SOURCE_DIR}/ssl/s3_both.cc"
${BORINGSSL_SOURCE_DIR}/ssl/s3_lib.cc "${BORINGSSL_SOURCE_DIR}/ssl/s3_lib.cc"
${BORINGSSL_SOURCE_DIR}/ssl/s3_pkt.cc "${BORINGSSL_SOURCE_DIR}/ssl/s3_pkt.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_aead_ctx.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_aead_ctx.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_asn1.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_asn1.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_buffer.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_buffer.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_cert.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_cert.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_cipher.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_cipher.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_file.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_file.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_key_share.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_key_share.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_lib.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_lib.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_privkey.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_privkey.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_session.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_session.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_stat.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_stat.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_transcript.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_transcript.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_versions.cc"
${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.cc "${BORINGSSL_SOURCE_DIR}/ssl/ssl_x509.cc"
${BORINGSSL_SOURCE_DIR}/ssl/t1_enc.cc "${BORINGSSL_SOURCE_DIR}/ssl/t1_enc.cc"
${BORINGSSL_SOURCE_DIR}/ssl/t1_lib.cc "${BORINGSSL_SOURCE_DIR}/ssl/t1_lib.cc"
${BORINGSSL_SOURCE_DIR}/ssl/tls13_both.cc "${BORINGSSL_SOURCE_DIR}/ssl/tls13_both.cc"
${BORINGSSL_SOURCE_DIR}/ssl/tls13_client.cc "${BORINGSSL_SOURCE_DIR}/ssl/tls13_client.cc"
${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc "${BORINGSSL_SOURCE_DIR}/ssl/tls13_enc.cc"
${BORINGSSL_SOURCE_DIR}/ssl/tls13_server.cc "${BORINGSSL_SOURCE_DIR}/ssl/tls13_server.cc"
${BORINGSSL_SOURCE_DIR}/ssl/tls_method.cc "${BORINGSSL_SOURCE_DIR}/ssl/tls_method.cc"
${BORINGSSL_SOURCE_DIR}/ssl/tls_record.cc "${BORINGSSL_SOURCE_DIR}/ssl/tls_record.cc"
${BORINGSSL_SOURCE_DIR}/decrepit/ssl/ssl_decrepit.c "${BORINGSSL_SOURCE_DIR}/decrepit/ssl/ssl_decrepit.c"
${BORINGSSL_SOURCE_DIR}/decrepit/cfb/cfb.c "${BORINGSSL_SOURCE_DIR}/decrepit/cfb/cfb.c"
) )
add_executable( add_executable(
bssl bssl
${BORINGSSL_SOURCE_DIR}/tool/args.cc "${BORINGSSL_SOURCE_DIR}/tool/args.cc"
${BORINGSSL_SOURCE_DIR}/tool/ciphers.cc "${BORINGSSL_SOURCE_DIR}/tool/ciphers.cc"
${BORINGSSL_SOURCE_DIR}/tool/client.cc "${BORINGSSL_SOURCE_DIR}/tool/client.cc"
${BORINGSSL_SOURCE_DIR}/tool/const.cc "${BORINGSSL_SOURCE_DIR}/tool/const.cc"
${BORINGSSL_SOURCE_DIR}/tool/digest.cc "${BORINGSSL_SOURCE_DIR}/tool/digest.cc"
${BORINGSSL_SOURCE_DIR}/tool/fd.cc "${BORINGSSL_SOURCE_DIR}/tool/fd.cc"
${BORINGSSL_SOURCE_DIR}/tool/file.cc "${BORINGSSL_SOURCE_DIR}/tool/file.cc"
${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc "${BORINGSSL_SOURCE_DIR}/tool/generate_ed25519.cc"
${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc "${BORINGSSL_SOURCE_DIR}/tool/genrsa.cc"
${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc "${BORINGSSL_SOURCE_DIR}/tool/pkcs12.cc"
${BORINGSSL_SOURCE_DIR}/tool/rand.cc "${BORINGSSL_SOURCE_DIR}/tool/rand.cc"
${BORINGSSL_SOURCE_DIR}/tool/server.cc "${BORINGSSL_SOURCE_DIR}/tool/server.cc"
${BORINGSSL_SOURCE_DIR}/tool/sign.cc "${BORINGSSL_SOURCE_DIR}/tool/sign.cc"
${BORINGSSL_SOURCE_DIR}/tool/speed.cc "${BORINGSSL_SOURCE_DIR}/tool/speed.cc"
${BORINGSSL_SOURCE_DIR}/tool/tool.cc "${BORINGSSL_SOURCE_DIR}/tool/tool.cc"
${BORINGSSL_SOURCE_DIR}/tool/transport_common.cc "${BORINGSSL_SOURCE_DIR}/tool/transport_common.cc"
) )
target_link_libraries(ssl crypto) target_link_libraries(ssl crypto)
@ -655,7 +655,7 @@ if(WIN32)
target_link_libraries(bssl ws2_32) target_link_libraries(bssl ws2_32)
endif() endif()
target_include_directories(crypto 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_include_directories(ssl SYSTEM PUBLIC "${BORINGSSL_SOURCE_DIR}/include")
target_compile_options(crypto PRIVATE -Wno-gnu-anonymous-struct) target_compile_options(crypto PRIVATE -Wno-gnu-anonymous-struct)

View File

@ -1,41 +1,41 @@
set(BROTLI_SOURCE_DIR ${ClickHouse_SOURCE_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(BROTLI_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/brotli/c")
set(SRCS set(SRCS
${BROTLI_SOURCE_DIR}/enc/command.c "${BROTLI_SOURCE_DIR}/enc/command.c"
${BROTLI_SOURCE_DIR}/enc/fast_log.c "${BROTLI_SOURCE_DIR}/enc/fast_log.c"
${BROTLI_SOURCE_DIR}/dec/bit_reader.c "${BROTLI_SOURCE_DIR}/dec/bit_reader.c"
${BROTLI_SOURCE_DIR}/dec/state.c "${BROTLI_SOURCE_DIR}/dec/state.c"
${BROTLI_SOURCE_DIR}/dec/huffman.c "${BROTLI_SOURCE_DIR}/dec/huffman.c"
${BROTLI_SOURCE_DIR}/dec/decode.c "${BROTLI_SOURCE_DIR}/dec/decode.c"
${BROTLI_SOURCE_DIR}/enc/encode.c "${BROTLI_SOURCE_DIR}/enc/encode.c"
${BROTLI_SOURCE_DIR}/enc/dictionary_hash.c "${BROTLI_SOURCE_DIR}/enc/dictionary_hash.c"
${BROTLI_SOURCE_DIR}/enc/cluster.c "${BROTLI_SOURCE_DIR}/enc/cluster.c"
${BROTLI_SOURCE_DIR}/enc/entropy_encode.c "${BROTLI_SOURCE_DIR}/enc/entropy_encode.c"
${BROTLI_SOURCE_DIR}/enc/literal_cost.c "${BROTLI_SOURCE_DIR}/enc/literal_cost.c"
${BROTLI_SOURCE_DIR}/enc/compress_fragment_two_pass.c "${BROTLI_SOURCE_DIR}/enc/compress_fragment_two_pass.c"
${BROTLI_SOURCE_DIR}/enc/static_dict.c "${BROTLI_SOURCE_DIR}/enc/static_dict.c"
${BROTLI_SOURCE_DIR}/enc/compress_fragment.c "${BROTLI_SOURCE_DIR}/enc/compress_fragment.c"
${BROTLI_SOURCE_DIR}/enc/block_splitter.c "${BROTLI_SOURCE_DIR}/enc/block_splitter.c"
${BROTLI_SOURCE_DIR}/enc/backward_references_hq.c "${BROTLI_SOURCE_DIR}/enc/backward_references_hq.c"
${BROTLI_SOURCE_DIR}/enc/histogram.c "${BROTLI_SOURCE_DIR}/enc/histogram.c"
${BROTLI_SOURCE_DIR}/enc/brotli_bit_stream.c "${BROTLI_SOURCE_DIR}/enc/brotli_bit_stream.c"
${BROTLI_SOURCE_DIR}/enc/utf8_util.c "${BROTLI_SOURCE_DIR}/enc/utf8_util.c"
${BROTLI_SOURCE_DIR}/enc/encoder_dict.c "${BROTLI_SOURCE_DIR}/enc/encoder_dict.c"
${BROTLI_SOURCE_DIR}/enc/backward_references.c "${BROTLI_SOURCE_DIR}/enc/backward_references.c"
${BROTLI_SOURCE_DIR}/enc/bit_cost.c "${BROTLI_SOURCE_DIR}/enc/bit_cost.c"
${BROTLI_SOURCE_DIR}/enc/metablock.c "${BROTLI_SOURCE_DIR}/enc/metablock.c"
${BROTLI_SOURCE_DIR}/enc/memory.c "${BROTLI_SOURCE_DIR}/enc/memory.c"
${BROTLI_SOURCE_DIR}/common/dictionary.c "${BROTLI_SOURCE_DIR}/common/dictionary.c"
${BROTLI_SOURCE_DIR}/common/transform.c "${BROTLI_SOURCE_DIR}/common/transform.c"
${BROTLI_SOURCE_DIR}/common/platform.c "${BROTLI_SOURCE_DIR}/common/platform.c"
${BROTLI_SOURCE_DIR}/common/context.c "${BROTLI_SOURCE_DIR}/common/context.c"
${BROTLI_SOURCE_DIR}/common/constants.c "${BROTLI_SOURCE_DIR}/common/constants.c"
) )
add_library(brotli ${SRCS}) 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) if(M_LIBRARY)
target_link_libraries(brotli PRIVATE ${M_LIBRARY}) target_link_libraries(brotli PRIVATE ${M_LIBRARY})

View File

@ -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 (CMAKE_CXX_STANDARD 17)
set (KJ_SRCS set (KJ_SRCS
${CAPNPROTO_SOURCE_DIR}/kj/array.c++ "${CAPNPROTO_SOURCE_DIR}/kj/array.c++"
${CAPNPROTO_SOURCE_DIR}/kj/common.c++ "${CAPNPROTO_SOURCE_DIR}/kj/common.c++"
${CAPNPROTO_SOURCE_DIR}/kj/debug.c++ "${CAPNPROTO_SOURCE_DIR}/kj/debug.c++"
${CAPNPROTO_SOURCE_DIR}/kj/exception.c++ "${CAPNPROTO_SOURCE_DIR}/kj/exception.c++"
${CAPNPROTO_SOURCE_DIR}/kj/io.c++ "${CAPNPROTO_SOURCE_DIR}/kj/io.c++"
${CAPNPROTO_SOURCE_DIR}/kj/memory.c++ "${CAPNPROTO_SOURCE_DIR}/kj/memory.c++"
${CAPNPROTO_SOURCE_DIR}/kj/mutex.c++ "${CAPNPROTO_SOURCE_DIR}/kj/mutex.c++"
${CAPNPROTO_SOURCE_DIR}/kj/string.c++ "${CAPNPROTO_SOURCE_DIR}/kj/string.c++"
${CAPNPROTO_SOURCE_DIR}/kj/hash.c++ "${CAPNPROTO_SOURCE_DIR}/kj/hash.c++"
${CAPNPROTO_SOURCE_DIR}/kj/table.c++ "${CAPNPROTO_SOURCE_DIR}/kj/table.c++"
${CAPNPROTO_SOURCE_DIR}/kj/thread.c++ "${CAPNPROTO_SOURCE_DIR}/kj/thread.c++"
${CAPNPROTO_SOURCE_DIR}/kj/main.c++ "${CAPNPROTO_SOURCE_DIR}/kj/main.c++"
${CAPNPROTO_SOURCE_DIR}/kj/arena.c++ "${CAPNPROTO_SOURCE_DIR}/kj/arena.c++"
${CAPNPROTO_SOURCE_DIR}/kj/test-helpers.c++ "${CAPNPROTO_SOURCE_DIR}/kj/test-helpers.c++"
${CAPNPROTO_SOURCE_DIR}/kj/units.c++ "${CAPNPROTO_SOURCE_DIR}/kj/units.c++"
${CAPNPROTO_SOURCE_DIR}/kj/encoding.c++ "${CAPNPROTO_SOURCE_DIR}/kj/encoding.c++"
${CAPNPROTO_SOURCE_DIR}/kj/refcount.c++ "${CAPNPROTO_SOURCE_DIR}/kj/refcount.c++"
${CAPNPROTO_SOURCE_DIR}/kj/string-tree.c++ "${CAPNPROTO_SOURCE_DIR}/kj/string-tree.c++"
${CAPNPROTO_SOURCE_DIR}/kj/time.c++ "${CAPNPROTO_SOURCE_DIR}/kj/time.c++"
${CAPNPROTO_SOURCE_DIR}/kj/filesystem.c++ "${CAPNPROTO_SOURCE_DIR}/kj/filesystem.c++"
${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-unix.c++ "${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-unix.c++"
${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-win32.c++ "${CAPNPROTO_SOURCE_DIR}/kj/filesystem-disk-win32.c++"
${CAPNPROTO_SOURCE_DIR}/kj/parse/char.c++ "${CAPNPROTO_SOURCE_DIR}/kj/parse/char.c++"
) )
add_library(kj ${KJ_SRCS}) add_library(kj ${KJ_SRCS})
target_include_directories(kj SYSTEM PUBLIC ${CAPNPROTO_SOURCE_DIR}) target_include_directories(kj SYSTEM PUBLIC ${CAPNPROTO_SOURCE_DIR})
set (CAPNP_SRCS set (CAPNP_SRCS
${CAPNPROTO_SOURCE_DIR}/capnp/c++.capnp.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/c++.capnp.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/blob.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/blob.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/arena.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/arena.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/layout.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/layout.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/list.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/list.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/any.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/any.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/message.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/message.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/schema.capnp.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/schema.capnp.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/serialize.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/serialize.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/serialize-packed.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/serialize-packed.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/schema.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/schema.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/schema-loader.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/schema-loader.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/dynamic.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/dynamic.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/stringify.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/stringify.c++"
) )
add_library(capnp ${CAPNP_SRCS}) add_library(capnp ${CAPNP_SRCS})
@ -57,16 +57,16 @@ set_target_properties(capnp
target_link_libraries(capnp PUBLIC kj) target_link_libraries(capnp PUBLIC kj)
set (CAPNPC_SRCS set (CAPNPC_SRCS
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/type-id.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/type-id.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/error-reporter.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/error-reporter.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.capnp.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.capnp.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/lexer.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/grammar.capnp.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/grammar.capnp.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/parser.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/parser.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/node-translator.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/node-translator.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/compiler/compiler.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/compiler/compiler.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/schema-parser.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/schema-parser.c++"
${CAPNPROTO_SOURCE_DIR}/capnp/serialize-text.c++ "${CAPNPROTO_SOURCE_DIR}/capnp/serialize-text.c++"
) )
add_library(capnpc ${CAPNPC_SRCS}) add_library(capnpc ${CAPNPC_SRCS})

View File

@ -40,23 +40,23 @@ endif()
if (NOT EXTERNAL_CCTZ_LIBRARY_FOUND OR NOT EXTERNAL_CCTZ_LIBRARY_WORKS) if (NOT EXTERNAL_CCTZ_LIBRARY_FOUND OR NOT EXTERNAL_CCTZ_LIBRARY_WORKS)
set(USE_INTERNAL_CCTZ_LIBRARY 1) set(USE_INTERNAL_CCTZ_LIBRARY 1)
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/cctz) set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/cctz")
set (SRCS set (SRCS
${LIBRARY_DIR}/src/civil_time_detail.cc "${LIBRARY_DIR}/src/civil_time_detail.cc"
${LIBRARY_DIR}/src/time_zone_fixed.cc "${LIBRARY_DIR}/src/time_zone_fixed.cc"
${LIBRARY_DIR}/src/time_zone_format.cc "${LIBRARY_DIR}/src/time_zone_format.cc"
${LIBRARY_DIR}/src/time_zone_if.cc "${LIBRARY_DIR}/src/time_zone_if.cc"
${LIBRARY_DIR}/src/time_zone_impl.cc "${LIBRARY_DIR}/src/time_zone_impl.cc"
${LIBRARY_DIR}/src/time_zone_info.cc "${LIBRARY_DIR}/src/time_zone_info.cc"
${LIBRARY_DIR}/src/time_zone_libc.cc "${LIBRARY_DIR}/src/time_zone_libc.cc"
${LIBRARY_DIR}/src/time_zone_lookup.cc "${LIBRARY_DIR}/src/time_zone_lookup.cc"
${LIBRARY_DIR}/src/time_zone_posix.cc "${LIBRARY_DIR}/src/time_zone_posix.cc"
${LIBRARY_DIR}/src/zone_info_source.cc "${LIBRARY_DIR}/src/zone_info_source.cc"
) )
add_library (cctz ${SRCS}) add_library (cctz ${SRCS})
target_include_directories (cctz PUBLIC ${LIBRARY_DIR}/include) target_include_directories (cctz PUBLIC "${LIBRARY_DIR}/include")
if (OS_FREEBSD) if (OS_FREEBSD)
# yes, need linux, because bsd check inside linux in time_zone_libc.cc:24 # 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 # Build a libray with embedded tzdata
if (OS_LINUX) if (OS_LINUX)
# get the list of timezones from tzdata shipped with cctz # get the list of timezones from tzdata shipped with cctz
set(TZDIR ${LIBRARY_DIR}/testdata/zoneinfo) set(TZDIR "${LIBRARY_DIR}/testdata/zoneinfo")
file(STRINGS ${LIBRARY_DIR}/testdata/version TZDATA_VERSION) file(STRINGS "${LIBRARY_DIR}/testdata/version" TZDATA_VERSION)
set_property(GLOBAL PROPERTY TZDATA_VERSION_PROP "${TZDATA_VERSION}") set_property(GLOBAL PROPERTY TZDATA_VERSION_PROP "${TZDATA_VERSION}")
message(STATUS "Packaging with tzdata version: ${TZDATA_VERSION}") message(STATUS "Packaging with tzdata version: ${TZDATA_VERSION}")
@ -97,12 +97,19 @@ if (NOT EXTERNAL_CCTZ_LIBRARY_FOUND OR NOT EXTERNAL_CCTZ_LIBRARY_WORKS)
set(TZ_OBJS ${TZ_OBJS} ${TZ_OBJ}) set(TZ_OBJS ${TZ_OBJS} ${TZ_OBJ})
# https://stackoverflow.com/questions/14776463/compile-and-add-an-object-file-from-a-binary-with-cmake # https://stackoverflow.com/questions/14776463/compile-and-add-an-object-file-from-a-binary-with-cmake
add_custom_command(OUTPUT ${TZ_OBJ} # PPC64LE fails to do this with objcopy, use ld or lld instead
COMMAND cp ${TZDIR}/${TIMEZONE} ${CMAKE_CURRENT_BINARY_DIR}/${TIMEZONE_ID} if (ARCH_PPC64LE)
COMMAND cd ${CMAKE_CURRENT_BINARY_DIR} && ${OBJCOPY_PATH} -I binary ${OBJCOPY_ARCH_OPTIONS} add_custom_command(OUTPUT ${TZ_OBJ}
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}")
else()
add_custom_command(OUTPUT ${TZ_OBJ}
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} --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) set_source_files_properties(${TZ_OBJ} PROPERTIES EXTERNAL_OBJECT true GENERATED true)
endforeach(TIMEZONE) endforeach(TIMEZONE)

View File

@ -1,25 +1,25 @@
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/cppkafka) set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/cppkafka")
set(SRCS set(SRCS
${LIBRARY_DIR}/src/buffer.cpp "${LIBRARY_DIR}/src/buffer.cpp"
${LIBRARY_DIR}/src/configuration_option.cpp "${LIBRARY_DIR}/src/configuration_option.cpp"
${LIBRARY_DIR}/src/configuration.cpp "${LIBRARY_DIR}/src/configuration.cpp"
${LIBRARY_DIR}/src/consumer.cpp "${LIBRARY_DIR}/src/consumer.cpp"
${LIBRARY_DIR}/src/error.cpp "${LIBRARY_DIR}/src/error.cpp"
${LIBRARY_DIR}/src/event.cpp "${LIBRARY_DIR}/src/event.cpp"
${LIBRARY_DIR}/src/exceptions.cpp "${LIBRARY_DIR}/src/exceptions.cpp"
${LIBRARY_DIR}/src/group_information.cpp "${LIBRARY_DIR}/src/group_information.cpp"
${LIBRARY_DIR}/src/kafka_handle_base.cpp "${LIBRARY_DIR}/src/kafka_handle_base.cpp"
${LIBRARY_DIR}/src/message_internal.cpp "${LIBRARY_DIR}/src/message_internal.cpp"
${LIBRARY_DIR}/src/message_timestamp.cpp "${LIBRARY_DIR}/src/message_timestamp.cpp"
${LIBRARY_DIR}/src/message.cpp "${LIBRARY_DIR}/src/message.cpp"
${LIBRARY_DIR}/src/metadata.cpp "${LIBRARY_DIR}/src/metadata.cpp"
${LIBRARY_DIR}/src/producer.cpp "${LIBRARY_DIR}/src/producer.cpp"
${LIBRARY_DIR}/src/queue.cpp "${LIBRARY_DIR}/src/queue.cpp"
${LIBRARY_DIR}/src/topic_configuration.cpp "${LIBRARY_DIR}/src/topic_configuration.cpp"
${LIBRARY_DIR}/src/topic_partition_list.cpp "${LIBRARY_DIR}/src/topic_partition_list.cpp"
${LIBRARY_DIR}/src/topic_partition.cpp "${LIBRARY_DIR}/src/topic_partition.cpp"
${LIBRARY_DIR}/src/topic.cpp "${LIBRARY_DIR}/src/topic.cpp"
) )
add_library(cppkafka ${SRCS}) add_library(cppkafka ${SRCS})
@ -29,5 +29,5 @@ target_link_libraries(cppkafka
${RDKAFKA_LIBRARY} ${RDKAFKA_LIBRARY}
boost::headers_only boost::headers_only
) )
target_include_directories(cppkafka PRIVATE ${LIBRARY_DIR}/include/cppkafka) target_include_directories(cppkafka PRIVATE "${LIBRARY_DIR}/include/cppkafka")
target_include_directories(cppkafka SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}/include) target_include_directories(cppkafka SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}/include")

View File

@ -1,26 +1,26 @@
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/croaring) set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/croaring")
set(SRCS set(SRCS
${LIBRARY_DIR}/src/array_util.c "${LIBRARY_DIR}/src/array_util.c"
${LIBRARY_DIR}/src/bitset_util.c "${LIBRARY_DIR}/src/bitset_util.c"
${LIBRARY_DIR}/src/containers/array.c "${LIBRARY_DIR}/src/containers/array.c"
${LIBRARY_DIR}/src/containers/bitset.c "${LIBRARY_DIR}/src/containers/bitset.c"
${LIBRARY_DIR}/src/containers/containers.c "${LIBRARY_DIR}/src/containers/containers.c"
${LIBRARY_DIR}/src/containers/convert.c "${LIBRARY_DIR}/src/containers/convert.c"
${LIBRARY_DIR}/src/containers/mixed_intersection.c "${LIBRARY_DIR}/src/containers/mixed_intersection.c"
${LIBRARY_DIR}/src/containers/mixed_union.c "${LIBRARY_DIR}/src/containers/mixed_union.c"
${LIBRARY_DIR}/src/containers/mixed_equal.c "${LIBRARY_DIR}/src/containers/mixed_equal.c"
${LIBRARY_DIR}/src/containers/mixed_subset.c "${LIBRARY_DIR}/src/containers/mixed_subset.c"
${LIBRARY_DIR}/src/containers/mixed_negation.c "${LIBRARY_DIR}/src/containers/mixed_negation.c"
${LIBRARY_DIR}/src/containers/mixed_xor.c "${LIBRARY_DIR}/src/containers/mixed_xor.c"
${LIBRARY_DIR}/src/containers/mixed_andnot.c "${LIBRARY_DIR}/src/containers/mixed_andnot.c"
${LIBRARY_DIR}/src/containers/run.c "${LIBRARY_DIR}/src/containers/run.c"
${LIBRARY_DIR}/src/roaring.c "${LIBRARY_DIR}/src/roaring.c"
${LIBRARY_DIR}/src/roaring_priority_queue.c "${LIBRARY_DIR}/src/roaring_priority_queue.c"
${LIBRARY_DIR}/src/roaring_array.c) "${LIBRARY_DIR}/src/roaring_array.c")
add_library(roaring ${SRCS}) add_library(roaring ${SRCS})
target_include_directories(roaring PRIVATE ${LIBRARY_DIR}/include/roaring) 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}/include")
target_include_directories(roaring SYSTEM BEFORE PUBLIC ${LIBRARY_DIR}/cpp) target_include_directories(roaring SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}/cpp")

View File

@ -5,143 +5,143 @@ endif()
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/curl") set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/curl")
set (SRCS set (SRCS
${LIBRARY_DIR}/lib/file.c "${LIBRARY_DIR}/lib/file.c"
${LIBRARY_DIR}/lib/timeval.c "${LIBRARY_DIR}/lib/timeval.c"
${LIBRARY_DIR}/lib/base64.c "${LIBRARY_DIR}/lib/base64.c"
${LIBRARY_DIR}/lib/hostip.c "${LIBRARY_DIR}/lib/hostip.c"
${LIBRARY_DIR}/lib/progress.c "${LIBRARY_DIR}/lib/progress.c"
${LIBRARY_DIR}/lib/formdata.c "${LIBRARY_DIR}/lib/formdata.c"
${LIBRARY_DIR}/lib/cookie.c "${LIBRARY_DIR}/lib/cookie.c"
${LIBRARY_DIR}/lib/http.c "${LIBRARY_DIR}/lib/http.c"
${LIBRARY_DIR}/lib/sendf.c "${LIBRARY_DIR}/lib/sendf.c"
${LIBRARY_DIR}/lib/url.c "${LIBRARY_DIR}/lib/url.c"
${LIBRARY_DIR}/lib/dict.c "${LIBRARY_DIR}/lib/dict.c"
${LIBRARY_DIR}/lib/if2ip.c "${LIBRARY_DIR}/lib/if2ip.c"
${LIBRARY_DIR}/lib/speedcheck.c "${LIBRARY_DIR}/lib/speedcheck.c"
${LIBRARY_DIR}/lib/ldap.c "${LIBRARY_DIR}/lib/ldap.c"
${LIBRARY_DIR}/lib/version.c "${LIBRARY_DIR}/lib/version.c"
${LIBRARY_DIR}/lib/getenv.c "${LIBRARY_DIR}/lib/getenv.c"
${LIBRARY_DIR}/lib/escape.c "${LIBRARY_DIR}/lib/escape.c"
${LIBRARY_DIR}/lib/mprintf.c "${LIBRARY_DIR}/lib/mprintf.c"
${LIBRARY_DIR}/lib/telnet.c "${LIBRARY_DIR}/lib/telnet.c"
${LIBRARY_DIR}/lib/netrc.c "${LIBRARY_DIR}/lib/netrc.c"
${LIBRARY_DIR}/lib/getinfo.c "${LIBRARY_DIR}/lib/getinfo.c"
${LIBRARY_DIR}/lib/transfer.c "${LIBRARY_DIR}/lib/transfer.c"
${LIBRARY_DIR}/lib/strcase.c "${LIBRARY_DIR}/lib/strcase.c"
${LIBRARY_DIR}/lib/easy.c "${LIBRARY_DIR}/lib/easy.c"
${LIBRARY_DIR}/lib/security.c "${LIBRARY_DIR}/lib/security.c"
${LIBRARY_DIR}/lib/curl_fnmatch.c "${LIBRARY_DIR}/lib/curl_fnmatch.c"
${LIBRARY_DIR}/lib/fileinfo.c "${LIBRARY_DIR}/lib/fileinfo.c"
${LIBRARY_DIR}/lib/wildcard.c "${LIBRARY_DIR}/lib/wildcard.c"
${LIBRARY_DIR}/lib/krb5.c "${LIBRARY_DIR}/lib/krb5.c"
${LIBRARY_DIR}/lib/memdebug.c "${LIBRARY_DIR}/lib/memdebug.c"
${LIBRARY_DIR}/lib/http_chunks.c "${LIBRARY_DIR}/lib/http_chunks.c"
${LIBRARY_DIR}/lib/strtok.c "${LIBRARY_DIR}/lib/strtok.c"
${LIBRARY_DIR}/lib/connect.c "${LIBRARY_DIR}/lib/connect.c"
${LIBRARY_DIR}/lib/llist.c "${LIBRARY_DIR}/lib/llist.c"
${LIBRARY_DIR}/lib/hash.c "${LIBRARY_DIR}/lib/hash.c"
${LIBRARY_DIR}/lib/multi.c "${LIBRARY_DIR}/lib/multi.c"
${LIBRARY_DIR}/lib/content_encoding.c "${LIBRARY_DIR}/lib/content_encoding.c"
${LIBRARY_DIR}/lib/share.c "${LIBRARY_DIR}/lib/share.c"
${LIBRARY_DIR}/lib/http_digest.c "${LIBRARY_DIR}/lib/http_digest.c"
${LIBRARY_DIR}/lib/md4.c "${LIBRARY_DIR}/lib/md4.c"
${LIBRARY_DIR}/lib/md5.c "${LIBRARY_DIR}/lib/md5.c"
${LIBRARY_DIR}/lib/http_negotiate.c "${LIBRARY_DIR}/lib/http_negotiate.c"
${LIBRARY_DIR}/lib/inet_pton.c "${LIBRARY_DIR}/lib/inet_pton.c"
${LIBRARY_DIR}/lib/strtoofft.c "${LIBRARY_DIR}/lib/strtoofft.c"
${LIBRARY_DIR}/lib/strerror.c "${LIBRARY_DIR}/lib/strerror.c"
${LIBRARY_DIR}/lib/amigaos.c "${LIBRARY_DIR}/lib/amigaos.c"
${LIBRARY_DIR}/lib/hostasyn.c "${LIBRARY_DIR}/lib/hostasyn.c"
${LIBRARY_DIR}/lib/hostip4.c "${LIBRARY_DIR}/lib/hostip4.c"
${LIBRARY_DIR}/lib/hostip6.c "${LIBRARY_DIR}/lib/hostip6.c"
${LIBRARY_DIR}/lib/hostsyn.c "${LIBRARY_DIR}/lib/hostsyn.c"
${LIBRARY_DIR}/lib/inet_ntop.c "${LIBRARY_DIR}/lib/inet_ntop.c"
${LIBRARY_DIR}/lib/parsedate.c "${LIBRARY_DIR}/lib/parsedate.c"
${LIBRARY_DIR}/lib/select.c "${LIBRARY_DIR}/lib/select.c"
${LIBRARY_DIR}/lib/splay.c "${LIBRARY_DIR}/lib/splay.c"
${LIBRARY_DIR}/lib/strdup.c "${LIBRARY_DIR}/lib/strdup.c"
${LIBRARY_DIR}/lib/socks.c "${LIBRARY_DIR}/lib/socks.c"
${LIBRARY_DIR}/lib/curl_addrinfo.c "${LIBRARY_DIR}/lib/curl_addrinfo.c"
${LIBRARY_DIR}/lib/socks_gssapi.c "${LIBRARY_DIR}/lib/socks_gssapi.c"
${LIBRARY_DIR}/lib/socks_sspi.c "${LIBRARY_DIR}/lib/socks_sspi.c"
${LIBRARY_DIR}/lib/curl_sspi.c "${LIBRARY_DIR}/lib/curl_sspi.c"
${LIBRARY_DIR}/lib/slist.c "${LIBRARY_DIR}/lib/slist.c"
${LIBRARY_DIR}/lib/nonblock.c "${LIBRARY_DIR}/lib/nonblock.c"
${LIBRARY_DIR}/lib/curl_memrchr.c "${LIBRARY_DIR}/lib/curl_memrchr.c"
${LIBRARY_DIR}/lib/imap.c "${LIBRARY_DIR}/lib/imap.c"
${LIBRARY_DIR}/lib/pop3.c "${LIBRARY_DIR}/lib/pop3.c"
${LIBRARY_DIR}/lib/smtp.c "${LIBRARY_DIR}/lib/smtp.c"
${LIBRARY_DIR}/lib/pingpong.c "${LIBRARY_DIR}/lib/pingpong.c"
${LIBRARY_DIR}/lib/rtsp.c "${LIBRARY_DIR}/lib/rtsp.c"
${LIBRARY_DIR}/lib/curl_threads.c "${LIBRARY_DIR}/lib/curl_threads.c"
${LIBRARY_DIR}/lib/warnless.c "${LIBRARY_DIR}/lib/warnless.c"
${LIBRARY_DIR}/lib/hmac.c "${LIBRARY_DIR}/lib/hmac.c"
${LIBRARY_DIR}/lib/curl_rtmp.c "${LIBRARY_DIR}/lib/curl_rtmp.c"
${LIBRARY_DIR}/lib/openldap.c "${LIBRARY_DIR}/lib/openldap.c"
${LIBRARY_DIR}/lib/curl_gethostname.c "${LIBRARY_DIR}/lib/curl_gethostname.c"
${LIBRARY_DIR}/lib/gopher.c "${LIBRARY_DIR}/lib/gopher.c"
${LIBRARY_DIR}/lib/idn_win32.c "${LIBRARY_DIR}/lib/idn_win32.c"
${LIBRARY_DIR}/lib/http_proxy.c "${LIBRARY_DIR}/lib/http_proxy.c"
${LIBRARY_DIR}/lib/non-ascii.c "${LIBRARY_DIR}/lib/non-ascii.c"
${LIBRARY_DIR}/lib/asyn-thread.c "${LIBRARY_DIR}/lib/asyn-thread.c"
${LIBRARY_DIR}/lib/curl_gssapi.c "${LIBRARY_DIR}/lib/curl_gssapi.c"
${LIBRARY_DIR}/lib/http_ntlm.c "${LIBRARY_DIR}/lib/http_ntlm.c"
${LIBRARY_DIR}/lib/curl_ntlm_wb.c "${LIBRARY_DIR}/lib/curl_ntlm_wb.c"
${LIBRARY_DIR}/lib/curl_ntlm_core.c "${LIBRARY_DIR}/lib/curl_ntlm_core.c"
${LIBRARY_DIR}/lib/curl_sasl.c "${LIBRARY_DIR}/lib/curl_sasl.c"
${LIBRARY_DIR}/lib/rand.c "${LIBRARY_DIR}/lib/rand.c"
${LIBRARY_DIR}/lib/curl_multibyte.c "${LIBRARY_DIR}/lib/curl_multibyte.c"
${LIBRARY_DIR}/lib/hostcheck.c "${LIBRARY_DIR}/lib/hostcheck.c"
${LIBRARY_DIR}/lib/conncache.c "${LIBRARY_DIR}/lib/conncache.c"
${LIBRARY_DIR}/lib/dotdot.c "${LIBRARY_DIR}/lib/dotdot.c"
${LIBRARY_DIR}/lib/x509asn1.c "${LIBRARY_DIR}/lib/x509asn1.c"
${LIBRARY_DIR}/lib/http2.c "${LIBRARY_DIR}/lib/http2.c"
${LIBRARY_DIR}/lib/smb.c "${LIBRARY_DIR}/lib/smb.c"
${LIBRARY_DIR}/lib/curl_endian.c "${LIBRARY_DIR}/lib/curl_endian.c"
${LIBRARY_DIR}/lib/curl_des.c "${LIBRARY_DIR}/lib/curl_des.c"
${LIBRARY_DIR}/lib/system_win32.c "${LIBRARY_DIR}/lib/system_win32.c"
${LIBRARY_DIR}/lib/mime.c "${LIBRARY_DIR}/lib/mime.c"
${LIBRARY_DIR}/lib/sha256.c "${LIBRARY_DIR}/lib/sha256.c"
${LIBRARY_DIR}/lib/setopt.c "${LIBRARY_DIR}/lib/setopt.c"
${LIBRARY_DIR}/lib/curl_path.c "${LIBRARY_DIR}/lib/curl_path.c"
${LIBRARY_DIR}/lib/curl_ctype.c "${LIBRARY_DIR}/lib/curl_ctype.c"
${LIBRARY_DIR}/lib/curl_range.c "${LIBRARY_DIR}/lib/curl_range.c"
${LIBRARY_DIR}/lib/psl.c "${LIBRARY_DIR}/lib/psl.c"
${LIBRARY_DIR}/lib/doh.c "${LIBRARY_DIR}/lib/doh.c"
${LIBRARY_DIR}/lib/urlapi.c "${LIBRARY_DIR}/lib/urlapi.c"
${LIBRARY_DIR}/lib/curl_get_line.c "${LIBRARY_DIR}/lib/curl_get_line.c"
${LIBRARY_DIR}/lib/altsvc.c "${LIBRARY_DIR}/lib/altsvc.c"
${LIBRARY_DIR}/lib/socketpair.c "${LIBRARY_DIR}/lib/socketpair.c"
${LIBRARY_DIR}/lib/vauth/vauth.c "${LIBRARY_DIR}/lib/vauth/vauth.c"
${LIBRARY_DIR}/lib/vauth/cleartext.c "${LIBRARY_DIR}/lib/vauth/cleartext.c"
${LIBRARY_DIR}/lib/vauth/cram.c "${LIBRARY_DIR}/lib/vauth/cram.c"
${LIBRARY_DIR}/lib/vauth/digest.c "${LIBRARY_DIR}/lib/vauth/digest.c"
${LIBRARY_DIR}/lib/vauth/digest_sspi.c "${LIBRARY_DIR}/lib/vauth/digest_sspi.c"
${LIBRARY_DIR}/lib/vauth/krb5_gssapi.c "${LIBRARY_DIR}/lib/vauth/krb5_gssapi.c"
${LIBRARY_DIR}/lib/vauth/krb5_sspi.c "${LIBRARY_DIR}/lib/vauth/krb5_sspi.c"
${LIBRARY_DIR}/lib/vauth/ntlm.c "${LIBRARY_DIR}/lib/vauth/ntlm.c"
${LIBRARY_DIR}/lib/vauth/ntlm_sspi.c "${LIBRARY_DIR}/lib/vauth/ntlm_sspi.c"
${LIBRARY_DIR}/lib/vauth/oauth2.c "${LIBRARY_DIR}/lib/vauth/oauth2.c"
${LIBRARY_DIR}/lib/vauth/spnego_gssapi.c "${LIBRARY_DIR}/lib/vauth/spnego_gssapi.c"
${LIBRARY_DIR}/lib/vauth/spnego_sspi.c "${LIBRARY_DIR}/lib/vauth/spnego_sspi.c"
${LIBRARY_DIR}/lib/vtls/openssl.c "${LIBRARY_DIR}/lib/vtls/openssl.c"
${LIBRARY_DIR}/lib/vtls/gtls.c "${LIBRARY_DIR}/lib/vtls/gtls.c"
${LIBRARY_DIR}/lib/vtls/vtls.c "${LIBRARY_DIR}/lib/vtls/vtls.c"
${LIBRARY_DIR}/lib/vtls/nss.c "${LIBRARY_DIR}/lib/vtls/nss.c"
${LIBRARY_DIR}/lib/vtls/polarssl.c "${LIBRARY_DIR}/lib/vtls/polarssl.c"
${LIBRARY_DIR}/lib/vtls/polarssl_threadlock.c "${LIBRARY_DIR}/lib/vtls/polarssl_threadlock.c"
${LIBRARY_DIR}/lib/vtls/wolfssl.c "${LIBRARY_DIR}/lib/vtls/wolfssl.c"
${LIBRARY_DIR}/lib/vtls/schannel.c "${LIBRARY_DIR}/lib/vtls/schannel.c"
${LIBRARY_DIR}/lib/vtls/schannel_verify.c "${LIBRARY_DIR}/lib/vtls/schannel_verify.c"
${LIBRARY_DIR}/lib/vtls/sectransp.c "${LIBRARY_DIR}/lib/vtls/sectransp.c"
${LIBRARY_DIR}/lib/vtls/gskit.c "${LIBRARY_DIR}/lib/vtls/gskit.c"
${LIBRARY_DIR}/lib/vtls/mbedtls.c "${LIBRARY_DIR}/lib/vtls/mbedtls.c"
${LIBRARY_DIR}/lib/vtls/mesalink.c "${LIBRARY_DIR}/lib/vtls/mesalink.c"
${LIBRARY_DIR}/lib/vtls/bearssl.c "${LIBRARY_DIR}/lib/vtls/bearssl.c"
${LIBRARY_DIR}/lib/vquic/ngtcp2.c "${LIBRARY_DIR}/lib/vquic/ngtcp2.c"
${LIBRARY_DIR}/lib/vquic/quiche.c "${LIBRARY_DIR}/lib/vquic/quiche.c"
${LIBRARY_DIR}/lib/vssh/libssh2.c "${LIBRARY_DIR}/lib/vssh/libssh2.c"
${LIBRARY_DIR}/lib/vssh/libssh.c "${LIBRARY_DIR}/lib/vssh/libssh.c"
) )
add_library (curl ${SRCS}) add_library (curl ${SRCS})
@ -154,8 +154,8 @@ target_compile_definitions (curl PRIVATE
OS="${CMAKE_SYSTEM_NAME}" OS="${CMAKE_SYSTEM_NAME}"
) )
target_include_directories (curl PUBLIC target_include_directories (curl PUBLIC
${LIBRARY_DIR}/include "${LIBRARY_DIR}/include"
${LIBRARY_DIR}/lib "${LIBRARY_DIR}/lib"
. # curl_config.h . # curl_config.h
) )
@ -171,8 +171,8 @@ target_compile_options (curl PRIVATE -g0)
# - sentry-native # - sentry-native
set (CURL_FOUND ON CACHE BOOL "") set (CURL_FOUND ON CACHE BOOL "")
set (CURL_ROOT_DIR ${LIBRARY_DIR} CACHE PATH "") set (CURL_ROOT_DIR ${LIBRARY_DIR} CACHE PATH "")
set (CURL_INCLUDE_DIR ${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_INCLUDE_DIRS "${LIBRARY_DIR}/include" CACHE PATH "")
set (CURL_LIBRARY curl CACHE STRING "") set (CURL_LIBRARY curl CACHE STRING "")
set (CURL_LIBRARIES ${CURL_LIBRARY} CACHE STRING "") set (CURL_LIBRARIES ${CURL_LIBRARY} CACHE STRING "")
set (CURL_VERSION_STRING 7.67.0 CACHE STRING "") set (CURL_VERSION_STRING 7.67.0 CACHE STRING "")

View File

@ -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}) add_library(${CYRUS_SASL_LIBRARY})
target_sources(${CYRUS_SASL_LIBRARY} PRIVATE target_sources(${CYRUS_SASL_LIBRARY} PRIVATE
${CYRUS_SASL_SOURCE_DIR}/plugins/gssapi.c "${CYRUS_SASL_SOURCE_DIR}/plugins/gssapi.c"
# ${CYRUS_SASL_SOURCE_DIR}/plugins/gssapiv2_init.c # "${CYRUS_SASL_SOURCE_DIR}/plugins/gssapiv2_init.c"
${CYRUS_SASL_SOURCE_DIR}/common/plugin_common.c "${CYRUS_SASL_SOURCE_DIR}/common/plugin_common.c"
${CYRUS_SASL_SOURCE_DIR}/lib/common.c "${CYRUS_SASL_SOURCE_DIR}/lib/common.c"
${CYRUS_SASL_SOURCE_DIR}/lib/canonusr.c "${CYRUS_SASL_SOURCE_DIR}/lib/canonusr.c"
${CYRUS_SASL_SOURCE_DIR}/lib/server.c "${CYRUS_SASL_SOURCE_DIR}/lib/server.c"
${CYRUS_SASL_SOURCE_DIR}/lib/config.c "${CYRUS_SASL_SOURCE_DIR}/lib/config.c"
${CYRUS_SASL_SOURCE_DIR}/lib/auxprop.c "${CYRUS_SASL_SOURCE_DIR}/lib/auxprop.c"
${CYRUS_SASL_SOURCE_DIR}/lib/saslutil.c "${CYRUS_SASL_SOURCE_DIR}/lib/saslutil.c"
${CYRUS_SASL_SOURCE_DIR}/lib/external.c "${CYRUS_SASL_SOURCE_DIR}/lib/external.c"
${CYRUS_SASL_SOURCE_DIR}/lib/seterror.c "${CYRUS_SASL_SOURCE_DIR}/lib/seterror.c"
${CYRUS_SASL_SOURCE_DIR}/lib/md5.c "${CYRUS_SASL_SOURCE_DIR}/lib/md5.c"
${CYRUS_SASL_SOURCE_DIR}/lib/dlopen.c "${CYRUS_SASL_SOURCE_DIR}/lib/dlopen.c"
${CYRUS_SASL_SOURCE_DIR}/lib/client.c "${CYRUS_SASL_SOURCE_DIR}/lib/client.c"
${CYRUS_SASL_SOURCE_DIR}/lib/checkpw.c "${CYRUS_SASL_SOURCE_DIR}/lib/checkpw.c"
) )
target_include_directories(${CYRUS_SASL_LIBRARY} PUBLIC 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 target_include_directories(${CYRUS_SASL_LIBRARY} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR} # for config.h ${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}
${CYRUS_SASL_SOURCE_DIR}/include "${CYRUS_SASL_SOURCE_DIR}/include"
${CYRUS_SASL_SOURCE_DIR}/lib "${CYRUS_SASL_SOURCE_DIR}/lib"
${CYRUS_SASL_SOURCE_DIR}/sasldb "${CYRUS_SASL_SOURCE_DIR}/sasldb"
${CYRUS_SASL_SOURCE_DIR}/common "${CYRUS_SASL_SOURCE_DIR}/common"
${CYRUS_SASL_SOURCE_DIR}/saslauthd "${CYRUS_SASL_SOURCE_DIR}/saslauthd"
${CYRUS_SASL_SOURCE_DIR}/sample "${CYRUS_SASL_SOURCE_DIR}/sample"
${CYRUS_SASL_SOURCE_DIR}/utils "${CYRUS_SASL_SOURCE_DIR}/utils"
${CYRUS_SASL_SOURCE_DIR}/tests "${CYRUS_SASL_SOURCE_DIR}/tests"
) )
target_compile_definitions(${CYRUS_SASL_LIBRARY} PUBLIC target_compile_definitions(${CYRUS_SASL_LIBRARY} PUBLIC
@ -52,15 +52,15 @@ target_compile_definitions(${CYRUS_SASL_LIBRARY} PUBLIC
LIBSASL_EXPORTS=1 LIBSASL_EXPORTS=1
) )
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/sasl) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/sasl")
file(COPY file(COPY
${CYRUS_SASL_SOURCE_DIR}/include/sasl.h "${CYRUS_SASL_SOURCE_DIR}/include/sasl.h"
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/sasl DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/sasl"
) )
file(COPY file(COPY
${CYRUS_SASL_SOURCE_DIR}/include/prop.h "${CYRUS_SASL_SOURCE_DIR}/include/prop.h"
DESTINATION ${CMAKE_CURRENT_BINARY_DIR} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
) )

1
contrib/datasketches-cpp vendored Submodule

@ -0,0 +1 @@
Subproject commit f915d35b2de676683493c86c585141a1e1c83334

View File

@ -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 add_library(double-conversion
${LIBRARY_DIR}/double-conversion/bignum.cc "${LIBRARY_DIR}/double-conversion/bignum.cc"
${LIBRARY_DIR}/double-conversion/bignum-dtoa.cc "${LIBRARY_DIR}/double-conversion/bignum-dtoa.cc"
${LIBRARY_DIR}/double-conversion/cached-powers.cc "${LIBRARY_DIR}/double-conversion/cached-powers.cc"
${LIBRARY_DIR}/double-conversion/diy-fp.cc "${LIBRARY_DIR}/double-conversion/diy-fp.cc"
${LIBRARY_DIR}/double-conversion/double-conversion.cc "${LIBRARY_DIR}/double-conversion/double-conversion.cc"
${LIBRARY_DIR}/double-conversion/fast-dtoa.cc "${LIBRARY_DIR}/double-conversion/fast-dtoa.cc"
${LIBRARY_DIR}/double-conversion/fixed-dtoa.cc "${LIBRARY_DIR}/double-conversion/fixed-dtoa.cc"
${LIBRARY_DIR}/double-conversion/strtod.cc) "${LIBRARY_DIR}/double-conversion/strtod.cc")
target_include_directories(double-conversion SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}") target_include_directories(double-conversion SYSTEM BEFORE PUBLIC "${LIBRARY_DIR}")

View File

@ -1,18 +1,18 @@
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/fastops) set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/fastops")
set(SRCS "") set(SRCS "")
if(HAVE_AVX) if(HAVE_AVX)
set (SRCS ${SRCS} ${LIBRARY_DIR}/fastops/avx/ops_avx.cpp) 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_source_files_properties("${LIBRARY_DIR}/fastops/avx/ops_avx.cpp" PROPERTIES COMPILE_FLAGS "-mavx -DNO_AVX2")
endif() endif()
if(HAVE_AVX2) if(HAVE_AVX2)
set (SRCS ${SRCS} ${LIBRARY_DIR}/fastops/avx2/ops_avx2.cpp) 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_source_files_properties("${LIBRARY_DIR}/fastops/avx2/ops_avx2.cpp" PROPERTIES COMPILE_FLAGS "-mavx2 -mfma")
endif() 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}) add_library(fastops ${SRCS})

2
contrib/flatbuffers vendored

@ -1 +1 @@
Subproject commit 6df40a2471737b27271bdd9b900ab5f3aec746c7 Subproject commit 22e3ffc66d2d7d72d1414390aa0f04ffd114a5a1

2
contrib/grpc vendored

@ -1 +1 @@
Subproject commit 7436366ceb341ba5c00ea29f1645e02a2b70bf93 Subproject commit 1085a941238e66b13e3fb89c310533745380acbc

View File

@ -1,30 +1,30 @@
set(H3_SOURCE_DIR ${ClickHouse_SOURCE_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(H3_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/h3/src/h3lib")
set(SRCS set(SRCS
${H3_SOURCE_DIR}/lib/algos.c "${H3_SOURCE_DIR}/lib/algos.c"
${H3_SOURCE_DIR}/lib/baseCells.c "${H3_SOURCE_DIR}/lib/baseCells.c"
${H3_SOURCE_DIR}/lib/bbox.c "${H3_SOURCE_DIR}/lib/bbox.c"
${H3_SOURCE_DIR}/lib/coordijk.c "${H3_SOURCE_DIR}/lib/coordijk.c"
${H3_SOURCE_DIR}/lib/faceijk.c "${H3_SOURCE_DIR}/lib/faceijk.c"
${H3_SOURCE_DIR}/lib/geoCoord.c "${H3_SOURCE_DIR}/lib/geoCoord.c"
${H3_SOURCE_DIR}/lib/h3Index.c "${H3_SOURCE_DIR}/lib/h3Index.c"
${H3_SOURCE_DIR}/lib/h3UniEdge.c "${H3_SOURCE_DIR}/lib/h3UniEdge.c"
${H3_SOURCE_DIR}/lib/linkedGeo.c "${H3_SOURCE_DIR}/lib/linkedGeo.c"
${H3_SOURCE_DIR}/lib/localij.c "${H3_SOURCE_DIR}/lib/localij.c"
${H3_SOURCE_DIR}/lib/mathExtensions.c "${H3_SOURCE_DIR}/lib/mathExtensions.c"
${H3_SOURCE_DIR}/lib/polygon.c "${H3_SOURCE_DIR}/lib/polygon.c"
${H3_SOURCE_DIR}/lib/vec2d.c "${H3_SOURCE_DIR}/lib/vec2d.c"
${H3_SOURCE_DIR}/lib/vec3d.c "${H3_SOURCE_DIR}/lib/vec3d.c"
${H3_SOURCE_DIR}/lib/vertex.c "${H3_SOURCE_DIR}/lib/vertex.c"
${H3_SOURCE_DIR}/lib/vertexGraph.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}) add_library(h3 ${SRCS})
target_include_directories(h3 SYSTEM PUBLIC ${H3_SOURCE_DIR}/include) 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_BINARY_DIR}/include")
target_compile_definitions(h3 PRIVATE H3_HAVE_VLA) target_compile_definitions(h3 PRIVATE H3_HAVE_VLA)
if(M_LIBRARY) if(M_LIBRARY)
target_link_libraries(h3 PRIVATE ${M_LIBRARY}) target_link_libraries(h3 PRIVATE ${M_LIBRARY})

View File

@ -40,211 +40,211 @@ endif ()
if (NOT EXTERNAL_HYPERSCAN_LIBRARY_FOUND) if (NOT EXTERNAL_HYPERSCAN_LIBRARY_FOUND)
set (USE_INTERNAL_HYPERSCAN_LIBRARY 1) set (USE_INTERNAL_HYPERSCAN_LIBRARY 1)
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/hyperscan) set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/hyperscan")
set (SRCS set (SRCS
${LIBRARY_DIR}/src/alloc.c "${LIBRARY_DIR}/src/alloc.c"
${LIBRARY_DIR}/src/compiler/asserts.cpp "${LIBRARY_DIR}/src/compiler/asserts.cpp"
${LIBRARY_DIR}/src/compiler/compiler.cpp "${LIBRARY_DIR}/src/compiler/compiler.cpp"
${LIBRARY_DIR}/src/compiler/error.cpp "${LIBRARY_DIR}/src/compiler/error.cpp"
${LIBRARY_DIR}/src/crc32.c "${LIBRARY_DIR}/src/crc32.c"
${LIBRARY_DIR}/src/database.c "${LIBRARY_DIR}/src/database.c"
${LIBRARY_DIR}/src/fdr/engine_description.cpp "${LIBRARY_DIR}/src/fdr/engine_description.cpp"
${LIBRARY_DIR}/src/fdr/fdr_compile_util.cpp "${LIBRARY_DIR}/src/fdr/fdr_compile_util.cpp"
${LIBRARY_DIR}/src/fdr/fdr_compile.cpp "${LIBRARY_DIR}/src/fdr/fdr_compile.cpp"
${LIBRARY_DIR}/src/fdr/fdr_confirm_compile.cpp "${LIBRARY_DIR}/src/fdr/fdr_confirm_compile.cpp"
${LIBRARY_DIR}/src/fdr/fdr_engine_description.cpp "${LIBRARY_DIR}/src/fdr/fdr_engine_description.cpp"
${LIBRARY_DIR}/src/fdr/fdr.c "${LIBRARY_DIR}/src/fdr/fdr.c"
${LIBRARY_DIR}/src/fdr/flood_compile.cpp "${LIBRARY_DIR}/src/fdr/flood_compile.cpp"
${LIBRARY_DIR}/src/fdr/teddy_compile.cpp "${LIBRARY_DIR}/src/fdr/teddy_compile.cpp"
${LIBRARY_DIR}/src/fdr/teddy_engine_description.cpp "${LIBRARY_DIR}/src/fdr/teddy_engine_description.cpp"
${LIBRARY_DIR}/src/fdr/teddy.c "${LIBRARY_DIR}/src/fdr/teddy.c"
${LIBRARY_DIR}/src/grey.cpp "${LIBRARY_DIR}/src/grey.cpp"
${LIBRARY_DIR}/src/hs_valid_platform.c "${LIBRARY_DIR}/src/hs_valid_platform.c"
${LIBRARY_DIR}/src/hs_version.c "${LIBRARY_DIR}/src/hs_version.c"
${LIBRARY_DIR}/src/hs.cpp "${LIBRARY_DIR}/src/hs.cpp"
${LIBRARY_DIR}/src/hwlm/hwlm_build.cpp "${LIBRARY_DIR}/src/hwlm/hwlm_build.cpp"
${LIBRARY_DIR}/src/hwlm/hwlm_literal.cpp "${LIBRARY_DIR}/src/hwlm/hwlm_literal.cpp"
${LIBRARY_DIR}/src/hwlm/hwlm.c "${LIBRARY_DIR}/src/hwlm/hwlm.c"
${LIBRARY_DIR}/src/hwlm/noodle_build.cpp "${LIBRARY_DIR}/src/hwlm/noodle_build.cpp"
${LIBRARY_DIR}/src/hwlm/noodle_engine.c "${LIBRARY_DIR}/src/hwlm/noodle_engine.c"
${LIBRARY_DIR}/src/nfa/accel_dfa_build_strat.cpp "${LIBRARY_DIR}/src/nfa/accel_dfa_build_strat.cpp"
${LIBRARY_DIR}/src/nfa/accel.c "${LIBRARY_DIR}/src/nfa/accel.c"
${LIBRARY_DIR}/src/nfa/accelcompile.cpp "${LIBRARY_DIR}/src/nfa/accelcompile.cpp"
${LIBRARY_DIR}/src/nfa/castle.c "${LIBRARY_DIR}/src/nfa/castle.c"
${LIBRARY_DIR}/src/nfa/castlecompile.cpp "${LIBRARY_DIR}/src/nfa/castlecompile.cpp"
${LIBRARY_DIR}/src/nfa/dfa_build_strat.cpp "${LIBRARY_DIR}/src/nfa/dfa_build_strat.cpp"
${LIBRARY_DIR}/src/nfa/dfa_min.cpp "${LIBRARY_DIR}/src/nfa/dfa_min.cpp"
${LIBRARY_DIR}/src/nfa/gough.c "${LIBRARY_DIR}/src/nfa/gough.c"
${LIBRARY_DIR}/src/nfa/goughcompile_accel.cpp "${LIBRARY_DIR}/src/nfa/goughcompile_accel.cpp"
${LIBRARY_DIR}/src/nfa/goughcompile_reg.cpp "${LIBRARY_DIR}/src/nfa/goughcompile_reg.cpp"
${LIBRARY_DIR}/src/nfa/goughcompile.cpp "${LIBRARY_DIR}/src/nfa/goughcompile.cpp"
${LIBRARY_DIR}/src/nfa/lbr.c "${LIBRARY_DIR}/src/nfa/lbr.c"
${LIBRARY_DIR}/src/nfa/limex_64.c "${LIBRARY_DIR}/src/nfa/limex_64.c"
${LIBRARY_DIR}/src/nfa/limex_accel.c "${LIBRARY_DIR}/src/nfa/limex_accel.c"
${LIBRARY_DIR}/src/nfa/limex_compile.cpp "${LIBRARY_DIR}/src/nfa/limex_compile.cpp"
${LIBRARY_DIR}/src/nfa/limex_native.c "${LIBRARY_DIR}/src/nfa/limex_native.c"
${LIBRARY_DIR}/src/nfa/limex_simd128.c "${LIBRARY_DIR}/src/nfa/limex_simd128.c"
${LIBRARY_DIR}/src/nfa/limex_simd256.c "${LIBRARY_DIR}/src/nfa/limex_simd256.c"
${LIBRARY_DIR}/src/nfa/limex_simd384.c "${LIBRARY_DIR}/src/nfa/limex_simd384.c"
${LIBRARY_DIR}/src/nfa/limex_simd512.c "${LIBRARY_DIR}/src/nfa/limex_simd512.c"
${LIBRARY_DIR}/src/nfa/mcclellan.c "${LIBRARY_DIR}/src/nfa/mcclellan.c"
${LIBRARY_DIR}/src/nfa/mcclellancompile_util.cpp "${LIBRARY_DIR}/src/nfa/mcclellancompile_util.cpp"
${LIBRARY_DIR}/src/nfa/mcclellancompile.cpp "${LIBRARY_DIR}/src/nfa/mcclellancompile.cpp"
${LIBRARY_DIR}/src/nfa/mcsheng_compile.cpp "${LIBRARY_DIR}/src/nfa/mcsheng_compile.cpp"
${LIBRARY_DIR}/src/nfa/mcsheng_data.c "${LIBRARY_DIR}/src/nfa/mcsheng_data.c"
${LIBRARY_DIR}/src/nfa/mcsheng.c "${LIBRARY_DIR}/src/nfa/mcsheng.c"
${LIBRARY_DIR}/src/nfa/mpv.c "${LIBRARY_DIR}/src/nfa/mpv.c"
${LIBRARY_DIR}/src/nfa/mpvcompile.cpp "${LIBRARY_DIR}/src/nfa/mpvcompile.cpp"
${LIBRARY_DIR}/src/nfa/nfa_api_dispatch.c "${LIBRARY_DIR}/src/nfa/nfa_api_dispatch.c"
${LIBRARY_DIR}/src/nfa/nfa_build_util.cpp "${LIBRARY_DIR}/src/nfa/nfa_build_util.cpp"
${LIBRARY_DIR}/src/nfa/rdfa_graph.cpp "${LIBRARY_DIR}/src/nfa/rdfa_graph.cpp"
${LIBRARY_DIR}/src/nfa/rdfa_merge.cpp "${LIBRARY_DIR}/src/nfa/rdfa_merge.cpp"
${LIBRARY_DIR}/src/nfa/rdfa.cpp "${LIBRARY_DIR}/src/nfa/rdfa.cpp"
${LIBRARY_DIR}/src/nfa/repeat.c "${LIBRARY_DIR}/src/nfa/repeat.c"
${LIBRARY_DIR}/src/nfa/repeatcompile.cpp "${LIBRARY_DIR}/src/nfa/repeatcompile.cpp"
${LIBRARY_DIR}/src/nfa/sheng.c "${LIBRARY_DIR}/src/nfa/sheng.c"
${LIBRARY_DIR}/src/nfa/shengcompile.cpp "${LIBRARY_DIR}/src/nfa/shengcompile.cpp"
${LIBRARY_DIR}/src/nfa/shufti.c "${LIBRARY_DIR}/src/nfa/shufti.c"
${LIBRARY_DIR}/src/nfa/shufticompile.cpp "${LIBRARY_DIR}/src/nfa/shufticompile.cpp"
${LIBRARY_DIR}/src/nfa/tamarama.c "${LIBRARY_DIR}/src/nfa/tamarama.c"
${LIBRARY_DIR}/src/nfa/tamaramacompile.cpp "${LIBRARY_DIR}/src/nfa/tamaramacompile.cpp"
${LIBRARY_DIR}/src/nfa/truffle.c "${LIBRARY_DIR}/src/nfa/truffle.c"
${LIBRARY_DIR}/src/nfa/trufflecompile.cpp "${LIBRARY_DIR}/src/nfa/trufflecompile.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_anchored_acyclic.cpp "${LIBRARY_DIR}/src/nfagraph/ng_anchored_acyclic.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_anchored_dots.cpp "${LIBRARY_DIR}/src/nfagraph/ng_anchored_dots.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_asserts.cpp "${LIBRARY_DIR}/src/nfagraph/ng_asserts.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_builder.cpp "${LIBRARY_DIR}/src/nfagraph/ng_builder.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_calc_components.cpp "${LIBRARY_DIR}/src/nfagraph/ng_calc_components.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_cyclic_redundancy.cpp "${LIBRARY_DIR}/src/nfagraph/ng_cyclic_redundancy.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_depth.cpp "${LIBRARY_DIR}/src/nfagraph/ng_depth.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_dominators.cpp "${LIBRARY_DIR}/src/nfagraph/ng_dominators.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_edge_redundancy.cpp "${LIBRARY_DIR}/src/nfagraph/ng_edge_redundancy.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_equivalence.cpp "${LIBRARY_DIR}/src/nfagraph/ng_equivalence.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_execute.cpp "${LIBRARY_DIR}/src/nfagraph/ng_execute.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_expr_info.cpp "${LIBRARY_DIR}/src/nfagraph/ng_expr_info.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_extparam.cpp "${LIBRARY_DIR}/src/nfagraph/ng_extparam.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_fixed_width.cpp "${LIBRARY_DIR}/src/nfagraph/ng_fixed_width.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_fuzzy.cpp "${LIBRARY_DIR}/src/nfagraph/ng_fuzzy.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_haig.cpp "${LIBRARY_DIR}/src/nfagraph/ng_haig.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_holder.cpp "${LIBRARY_DIR}/src/nfagraph/ng_holder.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_is_equal.cpp "${LIBRARY_DIR}/src/nfagraph/ng_is_equal.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_lbr.cpp "${LIBRARY_DIR}/src/nfagraph/ng_lbr.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_limex_accel.cpp "${LIBRARY_DIR}/src/nfagraph/ng_limex_accel.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_limex.cpp "${LIBRARY_DIR}/src/nfagraph/ng_limex.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_literal_analysis.cpp "${LIBRARY_DIR}/src/nfagraph/ng_literal_analysis.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_literal_component.cpp "${LIBRARY_DIR}/src/nfagraph/ng_literal_component.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_literal_decorated.cpp "${LIBRARY_DIR}/src/nfagraph/ng_literal_decorated.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_mcclellan.cpp "${LIBRARY_DIR}/src/nfagraph/ng_mcclellan.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_misc_opt.cpp "${LIBRARY_DIR}/src/nfagraph/ng_misc_opt.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_netflow.cpp "${LIBRARY_DIR}/src/nfagraph/ng_netflow.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_prefilter.cpp "${LIBRARY_DIR}/src/nfagraph/ng_prefilter.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_prune.cpp "${LIBRARY_DIR}/src/nfagraph/ng_prune.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_puff.cpp "${LIBRARY_DIR}/src/nfagraph/ng_puff.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_redundancy.cpp "${LIBRARY_DIR}/src/nfagraph/ng_redundancy.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_region_redundancy.cpp "${LIBRARY_DIR}/src/nfagraph/ng_region_redundancy.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_region.cpp "${LIBRARY_DIR}/src/nfagraph/ng_region.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_repeat.cpp "${LIBRARY_DIR}/src/nfagraph/ng_repeat.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_reports.cpp "${LIBRARY_DIR}/src/nfagraph/ng_reports.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_restructuring.cpp "${LIBRARY_DIR}/src/nfagraph/ng_restructuring.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_revacc.cpp "${LIBRARY_DIR}/src/nfagraph/ng_revacc.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_sep.cpp "${LIBRARY_DIR}/src/nfagraph/ng_sep.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_small_literal_set.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_add_redundancy.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_som_util.cpp "${LIBRARY_DIR}/src/nfagraph/ng_som_util.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_som.cpp "${LIBRARY_DIR}/src/nfagraph/ng_som.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_split.cpp "${LIBRARY_DIR}/src/nfagraph/ng_split.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_squash.cpp "${LIBRARY_DIR}/src/nfagraph/ng_squash.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_stop.cpp "${LIBRARY_DIR}/src/nfagraph/ng_stop.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_uncalc_components.cpp "${LIBRARY_DIR}/src/nfagraph/ng_uncalc_components.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_utf8.cpp "${LIBRARY_DIR}/src/nfagraph/ng_utf8.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_util.cpp "${LIBRARY_DIR}/src/nfagraph/ng_util.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_vacuous.cpp "${LIBRARY_DIR}/src/nfagraph/ng_vacuous.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_violet.cpp "${LIBRARY_DIR}/src/nfagraph/ng_violet.cpp"
${LIBRARY_DIR}/src/nfagraph/ng_width.cpp "${LIBRARY_DIR}/src/nfagraph/ng_width.cpp"
${LIBRARY_DIR}/src/nfagraph/ng.cpp "${LIBRARY_DIR}/src/nfagraph/ng.cpp"
${LIBRARY_DIR}/src/parser/AsciiComponentClass.cpp "${LIBRARY_DIR}/src/parser/AsciiComponentClass.cpp"
${LIBRARY_DIR}/src/parser/buildstate.cpp "${LIBRARY_DIR}/src/parser/buildstate.cpp"
${LIBRARY_DIR}/src/parser/check_refs.cpp "${LIBRARY_DIR}/src/parser/check_refs.cpp"
${LIBRARY_DIR}/src/parser/Component.cpp "${LIBRARY_DIR}/src/parser/Component.cpp"
${LIBRARY_DIR}/src/parser/ComponentAlternation.cpp "${LIBRARY_DIR}/src/parser/ComponentAlternation.cpp"
${LIBRARY_DIR}/src/parser/ComponentAssertion.cpp "${LIBRARY_DIR}/src/parser/ComponentAssertion.cpp"
${LIBRARY_DIR}/src/parser/ComponentAtomicGroup.cpp "${LIBRARY_DIR}/src/parser/ComponentAtomicGroup.cpp"
${LIBRARY_DIR}/src/parser/ComponentBackReference.cpp "${LIBRARY_DIR}/src/parser/ComponentBackReference.cpp"
${LIBRARY_DIR}/src/parser/ComponentBoundary.cpp "${LIBRARY_DIR}/src/parser/ComponentBoundary.cpp"
${LIBRARY_DIR}/src/parser/ComponentByte.cpp "${LIBRARY_DIR}/src/parser/ComponentByte.cpp"
${LIBRARY_DIR}/src/parser/ComponentClass.cpp "${LIBRARY_DIR}/src/parser/ComponentClass.cpp"
${LIBRARY_DIR}/src/parser/ComponentCondReference.cpp "${LIBRARY_DIR}/src/parser/ComponentCondReference.cpp"
${LIBRARY_DIR}/src/parser/ComponentEmpty.cpp "${LIBRARY_DIR}/src/parser/ComponentEmpty.cpp"
${LIBRARY_DIR}/src/parser/ComponentEUS.cpp "${LIBRARY_DIR}/src/parser/ComponentEUS.cpp"
${LIBRARY_DIR}/src/parser/ComponentRepeat.cpp "${LIBRARY_DIR}/src/parser/ComponentRepeat.cpp"
${LIBRARY_DIR}/src/parser/ComponentSequence.cpp "${LIBRARY_DIR}/src/parser/ComponentSequence.cpp"
${LIBRARY_DIR}/src/parser/ComponentVisitor.cpp "${LIBRARY_DIR}/src/parser/ComponentVisitor.cpp"
${LIBRARY_DIR}/src/parser/ComponentWordBoundary.cpp "${LIBRARY_DIR}/src/parser/ComponentWordBoundary.cpp"
${LIBRARY_DIR}/src/parser/ConstComponentVisitor.cpp "${LIBRARY_DIR}/src/parser/ConstComponentVisitor.cpp"
${LIBRARY_DIR}/src/parser/control_verbs.cpp "${LIBRARY_DIR}/src/parser/control_verbs.cpp"
${LIBRARY_DIR}/src/parser/logical_combination.cpp "${LIBRARY_DIR}/src/parser/logical_combination.cpp"
${LIBRARY_DIR}/src/parser/parse_error.cpp "${LIBRARY_DIR}/src/parser/parse_error.cpp"
${LIBRARY_DIR}/src/parser/parser_util.cpp "${LIBRARY_DIR}/src/parser/parser_util.cpp"
${LIBRARY_DIR}/src/parser/Parser.cpp "${LIBRARY_DIR}/src/parser/Parser.cpp"
${LIBRARY_DIR}/src/parser/prefilter.cpp "${LIBRARY_DIR}/src/parser/prefilter.cpp"
${LIBRARY_DIR}/src/parser/shortcut_literal.cpp "${LIBRARY_DIR}/src/parser/shortcut_literal.cpp"
${LIBRARY_DIR}/src/parser/ucp_table.cpp "${LIBRARY_DIR}/src/parser/ucp_table.cpp"
${LIBRARY_DIR}/src/parser/unsupported.cpp "${LIBRARY_DIR}/src/parser/unsupported.cpp"
${LIBRARY_DIR}/src/parser/utf8_validate.cpp "${LIBRARY_DIR}/src/parser/utf8_validate.cpp"
${LIBRARY_DIR}/src/parser/Utf8ComponentClass.cpp "${LIBRARY_DIR}/src/parser/Utf8ComponentClass.cpp"
${LIBRARY_DIR}/src/rose/block.c "${LIBRARY_DIR}/src/rose/block.c"
${LIBRARY_DIR}/src/rose/catchup.c "${LIBRARY_DIR}/src/rose/catchup.c"
${LIBRARY_DIR}/src/rose/init.c "${LIBRARY_DIR}/src/rose/init.c"
${LIBRARY_DIR}/src/rose/match.c "${LIBRARY_DIR}/src/rose/match.c"
${LIBRARY_DIR}/src/rose/program_runtime.c "${LIBRARY_DIR}/src/rose/program_runtime.c"
${LIBRARY_DIR}/src/rose/rose_build_add_mask.cpp "${LIBRARY_DIR}/src/rose/rose_build_add_mask.cpp"
${LIBRARY_DIR}/src/rose/rose_build_add.cpp "${LIBRARY_DIR}/src/rose/rose_build_add.cpp"
${LIBRARY_DIR}/src/rose/rose_build_anchored.cpp "${LIBRARY_DIR}/src/rose/rose_build_anchored.cpp"
${LIBRARY_DIR}/src/rose/rose_build_bytecode.cpp "${LIBRARY_DIR}/src/rose/rose_build_bytecode.cpp"
${LIBRARY_DIR}/src/rose/rose_build_castle.cpp "${LIBRARY_DIR}/src/rose/rose_build_castle.cpp"
${LIBRARY_DIR}/src/rose/rose_build_compile.cpp "${LIBRARY_DIR}/src/rose/rose_build_compile.cpp"
${LIBRARY_DIR}/src/rose/rose_build_convert.cpp "${LIBRARY_DIR}/src/rose/rose_build_convert.cpp"
${LIBRARY_DIR}/src/rose/rose_build_dedupe.cpp "${LIBRARY_DIR}/src/rose/rose_build_dedupe.cpp"
${LIBRARY_DIR}/src/rose/rose_build_engine_blob.cpp "${LIBRARY_DIR}/src/rose/rose_build_engine_blob.cpp"
${LIBRARY_DIR}/src/rose/rose_build_exclusive.cpp "${LIBRARY_DIR}/src/rose/rose_build_exclusive.cpp"
${LIBRARY_DIR}/src/rose/rose_build_groups.cpp "${LIBRARY_DIR}/src/rose/rose_build_groups.cpp"
${LIBRARY_DIR}/src/rose/rose_build_infix.cpp "${LIBRARY_DIR}/src/rose/rose_build_infix.cpp"
${LIBRARY_DIR}/src/rose/rose_build_instructions.cpp "${LIBRARY_DIR}/src/rose/rose_build_instructions.cpp"
${LIBRARY_DIR}/src/rose/rose_build_lit_accel.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_long_lit.cpp"
${LIBRARY_DIR}/src/rose/rose_build_lookaround.cpp "${LIBRARY_DIR}/src/rose/rose_build_lookaround.cpp"
${LIBRARY_DIR}/src/rose/rose_build_matchers.cpp "${LIBRARY_DIR}/src/rose/rose_build_matchers.cpp"
${LIBRARY_DIR}/src/rose/rose_build_merge.cpp "${LIBRARY_DIR}/src/rose/rose_build_merge.cpp"
${LIBRARY_DIR}/src/rose/rose_build_misc.cpp "${LIBRARY_DIR}/src/rose/rose_build_misc.cpp"
${LIBRARY_DIR}/src/rose/rose_build_program.cpp "${LIBRARY_DIR}/src/rose/rose_build_program.cpp"
${LIBRARY_DIR}/src/rose/rose_build_role_aliasing.cpp "${LIBRARY_DIR}/src/rose/rose_build_role_aliasing.cpp"
${LIBRARY_DIR}/src/rose/rose_build_scatter.cpp "${LIBRARY_DIR}/src/rose/rose_build_scatter.cpp"
${LIBRARY_DIR}/src/rose/rose_build_width.cpp "${LIBRARY_DIR}/src/rose/rose_build_width.cpp"
${LIBRARY_DIR}/src/rose/rose_in_util.cpp "${LIBRARY_DIR}/src/rose/rose_in_util.cpp"
${LIBRARY_DIR}/src/rose/stream.c "${LIBRARY_DIR}/src/rose/stream.c"
${LIBRARY_DIR}/src/runtime.c "${LIBRARY_DIR}/src/runtime.c"
${LIBRARY_DIR}/src/scratch.c "${LIBRARY_DIR}/src/scratch.c"
${LIBRARY_DIR}/src/smallwrite/smallwrite_build.cpp "${LIBRARY_DIR}/src/smallwrite/smallwrite_build.cpp"
${LIBRARY_DIR}/src/som/slot_manager.cpp "${LIBRARY_DIR}/src/som/slot_manager.cpp"
${LIBRARY_DIR}/src/som/som_runtime.c "${LIBRARY_DIR}/src/som/som_runtime.c"
${LIBRARY_DIR}/src/som/som_stream.c "${LIBRARY_DIR}/src/som/som_stream.c"
${LIBRARY_DIR}/src/stream_compress.c "${LIBRARY_DIR}/src/stream_compress.c"
${LIBRARY_DIR}/src/util/alloc.cpp "${LIBRARY_DIR}/src/util/alloc.cpp"
${LIBRARY_DIR}/src/util/charreach.cpp "${LIBRARY_DIR}/src/util/charreach.cpp"
${LIBRARY_DIR}/src/util/clique.cpp "${LIBRARY_DIR}/src/util/clique.cpp"
${LIBRARY_DIR}/src/util/compile_context.cpp "${LIBRARY_DIR}/src/util/compile_context.cpp"
${LIBRARY_DIR}/src/util/compile_error.cpp "${LIBRARY_DIR}/src/util/compile_error.cpp"
${LIBRARY_DIR}/src/util/cpuid_flags.c "${LIBRARY_DIR}/src/util/cpuid_flags.c"
${LIBRARY_DIR}/src/util/depth.cpp "${LIBRARY_DIR}/src/util/depth.cpp"
${LIBRARY_DIR}/src/util/fatbit_build.cpp "${LIBRARY_DIR}/src/util/fatbit_build.cpp"
${LIBRARY_DIR}/src/util/multibit_build.cpp "${LIBRARY_DIR}/src/util/multibit_build.cpp"
${LIBRARY_DIR}/src/util/multibit.c "${LIBRARY_DIR}/src/util/multibit.c"
${LIBRARY_DIR}/src/util/report_manager.cpp "${LIBRARY_DIR}/src/util/report_manager.cpp"
${LIBRARY_DIR}/src/util/simd_utils.c "${LIBRARY_DIR}/src/util/simd_utils.c"
${LIBRARY_DIR}/src/util/state_compress.c "${LIBRARY_DIR}/src/util/state_compress.c"
${LIBRARY_DIR}/src/util/target_info.cpp "${LIBRARY_DIR}/src/util/target_info.cpp"
${LIBRARY_DIR}/src/util/ue2string.cpp "${LIBRARY_DIR}/src/util/ue2string.cpp"
) )
add_library (hyperscan ${SRCS}) add_library (hyperscan ${SRCS})
@ -259,9 +259,9 @@ if (NOT EXTERNAL_HYPERSCAN_LIBRARY_FOUND)
target_include_directories (hyperscan target_include_directories (hyperscan
PRIVATE PRIVATE
common 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) if (ARCH_AMD64)
target_include_directories (hyperscan PRIVATE x86_64) target_include_directories (hyperscan PRIVATE x86_64)
endif () endif ()

View File

@ -1,447 +1,447 @@
set(ICU_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/icu/icu4c/source) set(ICU_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/icu/icu4c/source")
set(ICUDATA_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/icudata/) set(ICUDATA_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/icudata/")
set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD 17)
# These lists of sources were generated from build log of the original ICU build system (configure + make). # These lists of sources were generated from build log of the original ICU build system (configure + make).
set(ICUUC_SOURCES set(ICUUC_SOURCES
${ICU_SOURCE_DIR}/common/errorcode.cpp "${ICU_SOURCE_DIR}/common/errorcode.cpp"
${ICU_SOURCE_DIR}/common/putil.cpp "${ICU_SOURCE_DIR}/common/putil.cpp"
${ICU_SOURCE_DIR}/common/umath.cpp "${ICU_SOURCE_DIR}/common/umath.cpp"
${ICU_SOURCE_DIR}/common/utypes.cpp "${ICU_SOURCE_DIR}/common/utypes.cpp"
${ICU_SOURCE_DIR}/common/uinvchar.cpp "${ICU_SOURCE_DIR}/common/uinvchar.cpp"
${ICU_SOURCE_DIR}/common/umutex.cpp "${ICU_SOURCE_DIR}/common/umutex.cpp"
${ICU_SOURCE_DIR}/common/ucln_cmn.cpp "${ICU_SOURCE_DIR}/common/ucln_cmn.cpp"
${ICU_SOURCE_DIR}/common/uinit.cpp "${ICU_SOURCE_DIR}/common/uinit.cpp"
${ICU_SOURCE_DIR}/common/uobject.cpp "${ICU_SOURCE_DIR}/common/uobject.cpp"
${ICU_SOURCE_DIR}/common/cmemory.cpp "${ICU_SOURCE_DIR}/common/cmemory.cpp"
${ICU_SOURCE_DIR}/common/charstr.cpp "${ICU_SOURCE_DIR}/common/charstr.cpp"
${ICU_SOURCE_DIR}/common/cstr.cpp "${ICU_SOURCE_DIR}/common/cstr.cpp"
${ICU_SOURCE_DIR}/common/udata.cpp "${ICU_SOURCE_DIR}/common/udata.cpp"
${ICU_SOURCE_DIR}/common/ucmndata.cpp "${ICU_SOURCE_DIR}/common/ucmndata.cpp"
${ICU_SOURCE_DIR}/common/udatamem.cpp "${ICU_SOURCE_DIR}/common/udatamem.cpp"
${ICU_SOURCE_DIR}/common/umapfile.cpp "${ICU_SOURCE_DIR}/common/umapfile.cpp"
${ICU_SOURCE_DIR}/common/udataswp.cpp "${ICU_SOURCE_DIR}/common/udataswp.cpp"
${ICU_SOURCE_DIR}/common/utrie_swap.cpp "${ICU_SOURCE_DIR}/common/utrie_swap.cpp"
${ICU_SOURCE_DIR}/common/ucol_swp.cpp "${ICU_SOURCE_DIR}/common/ucol_swp.cpp"
${ICU_SOURCE_DIR}/common/utrace.cpp "${ICU_SOURCE_DIR}/common/utrace.cpp"
${ICU_SOURCE_DIR}/common/uhash.cpp "${ICU_SOURCE_DIR}/common/uhash.cpp"
${ICU_SOURCE_DIR}/common/uhash_us.cpp "${ICU_SOURCE_DIR}/common/uhash_us.cpp"
${ICU_SOURCE_DIR}/common/uenum.cpp "${ICU_SOURCE_DIR}/common/uenum.cpp"
${ICU_SOURCE_DIR}/common/ustrenum.cpp "${ICU_SOURCE_DIR}/common/ustrenum.cpp"
${ICU_SOURCE_DIR}/common/uvector.cpp "${ICU_SOURCE_DIR}/common/uvector.cpp"
${ICU_SOURCE_DIR}/common/ustack.cpp "${ICU_SOURCE_DIR}/common/ustack.cpp"
${ICU_SOURCE_DIR}/common/uvectr32.cpp "${ICU_SOURCE_DIR}/common/uvectr32.cpp"
${ICU_SOURCE_DIR}/common/uvectr64.cpp "${ICU_SOURCE_DIR}/common/uvectr64.cpp"
${ICU_SOURCE_DIR}/common/ucnv.cpp "${ICU_SOURCE_DIR}/common/ucnv.cpp"
${ICU_SOURCE_DIR}/common/ucnv_bld.cpp "${ICU_SOURCE_DIR}/common/ucnv_bld.cpp"
${ICU_SOURCE_DIR}/common/ucnv_cnv.cpp "${ICU_SOURCE_DIR}/common/ucnv_cnv.cpp"
${ICU_SOURCE_DIR}/common/ucnv_io.cpp "${ICU_SOURCE_DIR}/common/ucnv_io.cpp"
${ICU_SOURCE_DIR}/common/ucnv_cb.cpp "${ICU_SOURCE_DIR}/common/ucnv_cb.cpp"
${ICU_SOURCE_DIR}/common/ucnv_err.cpp "${ICU_SOURCE_DIR}/common/ucnv_err.cpp"
${ICU_SOURCE_DIR}/common/ucnvlat1.cpp "${ICU_SOURCE_DIR}/common/ucnvlat1.cpp"
${ICU_SOURCE_DIR}/common/ucnv_u7.cpp "${ICU_SOURCE_DIR}/common/ucnv_u7.cpp"
${ICU_SOURCE_DIR}/common/ucnv_u8.cpp "${ICU_SOURCE_DIR}/common/ucnv_u8.cpp"
${ICU_SOURCE_DIR}/common/ucnv_u16.cpp "${ICU_SOURCE_DIR}/common/ucnv_u16.cpp"
${ICU_SOURCE_DIR}/common/ucnv_u32.cpp "${ICU_SOURCE_DIR}/common/ucnv_u32.cpp"
${ICU_SOURCE_DIR}/common/ucnvscsu.cpp "${ICU_SOURCE_DIR}/common/ucnvscsu.cpp"
${ICU_SOURCE_DIR}/common/ucnvbocu.cpp "${ICU_SOURCE_DIR}/common/ucnvbocu.cpp"
${ICU_SOURCE_DIR}/common/ucnv_ext.cpp "${ICU_SOURCE_DIR}/common/ucnv_ext.cpp"
${ICU_SOURCE_DIR}/common/ucnvmbcs.cpp "${ICU_SOURCE_DIR}/common/ucnvmbcs.cpp"
${ICU_SOURCE_DIR}/common/ucnv2022.cpp "${ICU_SOURCE_DIR}/common/ucnv2022.cpp"
${ICU_SOURCE_DIR}/common/ucnvhz.cpp "${ICU_SOURCE_DIR}/common/ucnvhz.cpp"
${ICU_SOURCE_DIR}/common/ucnv_lmb.cpp "${ICU_SOURCE_DIR}/common/ucnv_lmb.cpp"
${ICU_SOURCE_DIR}/common/ucnvisci.cpp "${ICU_SOURCE_DIR}/common/ucnvisci.cpp"
${ICU_SOURCE_DIR}/common/ucnvdisp.cpp "${ICU_SOURCE_DIR}/common/ucnvdisp.cpp"
${ICU_SOURCE_DIR}/common/ucnv_set.cpp "${ICU_SOURCE_DIR}/common/ucnv_set.cpp"
${ICU_SOURCE_DIR}/common/ucnv_ct.cpp "${ICU_SOURCE_DIR}/common/ucnv_ct.cpp"
${ICU_SOURCE_DIR}/common/resource.cpp "${ICU_SOURCE_DIR}/common/resource.cpp"
${ICU_SOURCE_DIR}/common/uresbund.cpp "${ICU_SOURCE_DIR}/common/uresbund.cpp"
${ICU_SOURCE_DIR}/common/ures_cnv.cpp "${ICU_SOURCE_DIR}/common/ures_cnv.cpp"
${ICU_SOURCE_DIR}/common/uresdata.cpp "${ICU_SOURCE_DIR}/common/uresdata.cpp"
${ICU_SOURCE_DIR}/common/resbund.cpp "${ICU_SOURCE_DIR}/common/resbund.cpp"
${ICU_SOURCE_DIR}/common/resbund_cnv.cpp "${ICU_SOURCE_DIR}/common/resbund_cnv.cpp"
${ICU_SOURCE_DIR}/common/ucurr.cpp "${ICU_SOURCE_DIR}/common/ucurr.cpp"
${ICU_SOURCE_DIR}/common/localebuilder.cpp "${ICU_SOURCE_DIR}/common/localebuilder.cpp"
${ICU_SOURCE_DIR}/common/localeprioritylist.cpp "${ICU_SOURCE_DIR}/common/localeprioritylist.cpp"
${ICU_SOURCE_DIR}/common/messagepattern.cpp "${ICU_SOURCE_DIR}/common/messagepattern.cpp"
${ICU_SOURCE_DIR}/common/ucat.cpp "${ICU_SOURCE_DIR}/common/ucat.cpp"
${ICU_SOURCE_DIR}/common/locmap.cpp "${ICU_SOURCE_DIR}/common/locmap.cpp"
${ICU_SOURCE_DIR}/common/uloc.cpp "${ICU_SOURCE_DIR}/common/uloc.cpp"
${ICU_SOURCE_DIR}/common/locid.cpp "${ICU_SOURCE_DIR}/common/locid.cpp"
${ICU_SOURCE_DIR}/common/locutil.cpp "${ICU_SOURCE_DIR}/common/locutil.cpp"
${ICU_SOURCE_DIR}/common/locavailable.cpp "${ICU_SOURCE_DIR}/common/locavailable.cpp"
${ICU_SOURCE_DIR}/common/locdispnames.cpp "${ICU_SOURCE_DIR}/common/locdispnames.cpp"
${ICU_SOURCE_DIR}/common/locdspnm.cpp "${ICU_SOURCE_DIR}/common/locdspnm.cpp"
${ICU_SOURCE_DIR}/common/loclikely.cpp "${ICU_SOURCE_DIR}/common/loclikely.cpp"
${ICU_SOURCE_DIR}/common/locresdata.cpp "${ICU_SOURCE_DIR}/common/locresdata.cpp"
${ICU_SOURCE_DIR}/common/lsr.cpp "${ICU_SOURCE_DIR}/common/lsr.cpp"
${ICU_SOURCE_DIR}/common/loclikelysubtags.cpp "${ICU_SOURCE_DIR}/common/loclikelysubtags.cpp"
${ICU_SOURCE_DIR}/common/locdistance.cpp "${ICU_SOURCE_DIR}/common/locdistance.cpp"
${ICU_SOURCE_DIR}/common/localematcher.cpp "${ICU_SOURCE_DIR}/common/localematcher.cpp"
${ICU_SOURCE_DIR}/common/bytestream.cpp "${ICU_SOURCE_DIR}/common/bytestream.cpp"
${ICU_SOURCE_DIR}/common/stringpiece.cpp "${ICU_SOURCE_DIR}/common/stringpiece.cpp"
${ICU_SOURCE_DIR}/common/bytesinkutil.cpp "${ICU_SOURCE_DIR}/common/bytesinkutil.cpp"
${ICU_SOURCE_DIR}/common/stringtriebuilder.cpp "${ICU_SOURCE_DIR}/common/stringtriebuilder.cpp"
${ICU_SOURCE_DIR}/common/bytestriebuilder.cpp "${ICU_SOURCE_DIR}/common/bytestriebuilder.cpp"
${ICU_SOURCE_DIR}/common/bytestrie.cpp "${ICU_SOURCE_DIR}/common/bytestrie.cpp"
${ICU_SOURCE_DIR}/common/bytestrieiterator.cpp "${ICU_SOURCE_DIR}/common/bytestrieiterator.cpp"
${ICU_SOURCE_DIR}/common/ucharstrie.cpp "${ICU_SOURCE_DIR}/common/ucharstrie.cpp"
${ICU_SOURCE_DIR}/common/ucharstriebuilder.cpp "${ICU_SOURCE_DIR}/common/ucharstriebuilder.cpp"
${ICU_SOURCE_DIR}/common/ucharstrieiterator.cpp "${ICU_SOURCE_DIR}/common/ucharstrieiterator.cpp"
${ICU_SOURCE_DIR}/common/dictionarydata.cpp "${ICU_SOURCE_DIR}/common/dictionarydata.cpp"
${ICU_SOURCE_DIR}/common/edits.cpp "${ICU_SOURCE_DIR}/common/edits.cpp"
${ICU_SOURCE_DIR}/common/appendable.cpp "${ICU_SOURCE_DIR}/common/appendable.cpp"
${ICU_SOURCE_DIR}/common/ustr_cnv.cpp "${ICU_SOURCE_DIR}/common/ustr_cnv.cpp"
${ICU_SOURCE_DIR}/common/unistr_cnv.cpp "${ICU_SOURCE_DIR}/common/unistr_cnv.cpp"
${ICU_SOURCE_DIR}/common/unistr.cpp "${ICU_SOURCE_DIR}/common/unistr.cpp"
${ICU_SOURCE_DIR}/common/unistr_case.cpp "${ICU_SOURCE_DIR}/common/unistr_case.cpp"
${ICU_SOURCE_DIR}/common/unistr_props.cpp "${ICU_SOURCE_DIR}/common/unistr_props.cpp"
${ICU_SOURCE_DIR}/common/utf_impl.cpp "${ICU_SOURCE_DIR}/common/utf_impl.cpp"
${ICU_SOURCE_DIR}/common/ustring.cpp "${ICU_SOURCE_DIR}/common/ustring.cpp"
${ICU_SOURCE_DIR}/common/ustrcase.cpp "${ICU_SOURCE_DIR}/common/ustrcase.cpp"
${ICU_SOURCE_DIR}/common/ucasemap.cpp "${ICU_SOURCE_DIR}/common/ucasemap.cpp"
${ICU_SOURCE_DIR}/common/ucasemap_titlecase_brkiter.cpp "${ICU_SOURCE_DIR}/common/ucasemap_titlecase_brkiter.cpp"
${ICU_SOURCE_DIR}/common/cstring.cpp "${ICU_SOURCE_DIR}/common/cstring.cpp"
${ICU_SOURCE_DIR}/common/ustrfmt.cpp "${ICU_SOURCE_DIR}/common/ustrfmt.cpp"
${ICU_SOURCE_DIR}/common/ustrtrns.cpp "${ICU_SOURCE_DIR}/common/ustrtrns.cpp"
${ICU_SOURCE_DIR}/common/ustr_wcs.cpp "${ICU_SOURCE_DIR}/common/ustr_wcs.cpp"
${ICU_SOURCE_DIR}/common/utext.cpp "${ICU_SOURCE_DIR}/common/utext.cpp"
${ICU_SOURCE_DIR}/common/unistr_case_locale.cpp "${ICU_SOURCE_DIR}/common/unistr_case_locale.cpp"
${ICU_SOURCE_DIR}/common/ustrcase_locale.cpp "${ICU_SOURCE_DIR}/common/ustrcase_locale.cpp"
${ICU_SOURCE_DIR}/common/unistr_titlecase_brkiter.cpp "${ICU_SOURCE_DIR}/common/unistr_titlecase_brkiter.cpp"
${ICU_SOURCE_DIR}/common/ustr_titlecase_brkiter.cpp "${ICU_SOURCE_DIR}/common/ustr_titlecase_brkiter.cpp"
${ICU_SOURCE_DIR}/common/normalizer2impl.cpp "${ICU_SOURCE_DIR}/common/normalizer2impl.cpp"
${ICU_SOURCE_DIR}/common/normalizer2.cpp "${ICU_SOURCE_DIR}/common/normalizer2.cpp"
${ICU_SOURCE_DIR}/common/filterednormalizer2.cpp "${ICU_SOURCE_DIR}/common/filterednormalizer2.cpp"
${ICU_SOURCE_DIR}/common/normlzr.cpp "${ICU_SOURCE_DIR}/common/normlzr.cpp"
${ICU_SOURCE_DIR}/common/unorm.cpp "${ICU_SOURCE_DIR}/common/unorm.cpp"
${ICU_SOURCE_DIR}/common/unormcmp.cpp "${ICU_SOURCE_DIR}/common/unormcmp.cpp"
${ICU_SOURCE_DIR}/common/loadednormalizer2impl.cpp "${ICU_SOURCE_DIR}/common/loadednormalizer2impl.cpp"
${ICU_SOURCE_DIR}/common/chariter.cpp "${ICU_SOURCE_DIR}/common/chariter.cpp"
${ICU_SOURCE_DIR}/common/schriter.cpp "${ICU_SOURCE_DIR}/common/schriter.cpp"
${ICU_SOURCE_DIR}/common/uchriter.cpp "${ICU_SOURCE_DIR}/common/uchriter.cpp"
${ICU_SOURCE_DIR}/common/uiter.cpp "${ICU_SOURCE_DIR}/common/uiter.cpp"
${ICU_SOURCE_DIR}/common/patternprops.cpp "${ICU_SOURCE_DIR}/common/patternprops.cpp"
${ICU_SOURCE_DIR}/common/uchar.cpp "${ICU_SOURCE_DIR}/common/uchar.cpp"
${ICU_SOURCE_DIR}/common/uprops.cpp "${ICU_SOURCE_DIR}/common/uprops.cpp"
${ICU_SOURCE_DIR}/common/ucase.cpp "${ICU_SOURCE_DIR}/common/ucase.cpp"
${ICU_SOURCE_DIR}/common/propname.cpp "${ICU_SOURCE_DIR}/common/propname.cpp"
${ICU_SOURCE_DIR}/common/ubidi_props.cpp "${ICU_SOURCE_DIR}/common/ubidi_props.cpp"
${ICU_SOURCE_DIR}/common/characterproperties.cpp "${ICU_SOURCE_DIR}/common/characterproperties.cpp"
${ICU_SOURCE_DIR}/common/ubidi.cpp "${ICU_SOURCE_DIR}/common/ubidi.cpp"
${ICU_SOURCE_DIR}/common/ubidiwrt.cpp "${ICU_SOURCE_DIR}/common/ubidiwrt.cpp"
${ICU_SOURCE_DIR}/common/ubidiln.cpp "${ICU_SOURCE_DIR}/common/ubidiln.cpp"
${ICU_SOURCE_DIR}/common/ushape.cpp "${ICU_SOURCE_DIR}/common/ushape.cpp"
${ICU_SOURCE_DIR}/common/uscript.cpp "${ICU_SOURCE_DIR}/common/uscript.cpp"
${ICU_SOURCE_DIR}/common/uscript_props.cpp "${ICU_SOURCE_DIR}/common/uscript_props.cpp"
${ICU_SOURCE_DIR}/common/usc_impl.cpp "${ICU_SOURCE_DIR}/common/usc_impl.cpp"
${ICU_SOURCE_DIR}/common/unames.cpp "${ICU_SOURCE_DIR}/common/unames.cpp"
${ICU_SOURCE_DIR}/common/utrie.cpp "${ICU_SOURCE_DIR}/common/utrie.cpp"
${ICU_SOURCE_DIR}/common/utrie2.cpp "${ICU_SOURCE_DIR}/common/utrie2.cpp"
${ICU_SOURCE_DIR}/common/utrie2_builder.cpp "${ICU_SOURCE_DIR}/common/utrie2_builder.cpp"
${ICU_SOURCE_DIR}/common/ucptrie.cpp "${ICU_SOURCE_DIR}/common/ucptrie.cpp"
${ICU_SOURCE_DIR}/common/umutablecptrie.cpp "${ICU_SOURCE_DIR}/common/umutablecptrie.cpp"
${ICU_SOURCE_DIR}/common/bmpset.cpp "${ICU_SOURCE_DIR}/common/bmpset.cpp"
${ICU_SOURCE_DIR}/common/unisetspan.cpp "${ICU_SOURCE_DIR}/common/unisetspan.cpp"
${ICU_SOURCE_DIR}/common/uset_props.cpp "${ICU_SOURCE_DIR}/common/uset_props.cpp"
${ICU_SOURCE_DIR}/common/uniset_props.cpp "${ICU_SOURCE_DIR}/common/uniset_props.cpp"
${ICU_SOURCE_DIR}/common/uniset_closure.cpp "${ICU_SOURCE_DIR}/common/uniset_closure.cpp"
${ICU_SOURCE_DIR}/common/uset.cpp "${ICU_SOURCE_DIR}/common/uset.cpp"
${ICU_SOURCE_DIR}/common/uniset.cpp "${ICU_SOURCE_DIR}/common/uniset.cpp"
${ICU_SOURCE_DIR}/common/usetiter.cpp "${ICU_SOURCE_DIR}/common/usetiter.cpp"
${ICU_SOURCE_DIR}/common/ruleiter.cpp "${ICU_SOURCE_DIR}/common/ruleiter.cpp"
${ICU_SOURCE_DIR}/common/caniter.cpp "${ICU_SOURCE_DIR}/common/caniter.cpp"
${ICU_SOURCE_DIR}/common/unifilt.cpp "${ICU_SOURCE_DIR}/common/unifilt.cpp"
${ICU_SOURCE_DIR}/common/unifunct.cpp "${ICU_SOURCE_DIR}/common/unifunct.cpp"
${ICU_SOURCE_DIR}/common/uarrsort.cpp "${ICU_SOURCE_DIR}/common/uarrsort.cpp"
${ICU_SOURCE_DIR}/common/brkiter.cpp "${ICU_SOURCE_DIR}/common/brkiter.cpp"
${ICU_SOURCE_DIR}/common/ubrk.cpp "${ICU_SOURCE_DIR}/common/ubrk.cpp"
${ICU_SOURCE_DIR}/common/brkeng.cpp "${ICU_SOURCE_DIR}/common/brkeng.cpp"
${ICU_SOURCE_DIR}/common/dictbe.cpp "${ICU_SOURCE_DIR}/common/dictbe.cpp"
${ICU_SOURCE_DIR}/common/filteredbrk.cpp "${ICU_SOURCE_DIR}/common/filteredbrk.cpp"
${ICU_SOURCE_DIR}/common/rbbi.cpp "${ICU_SOURCE_DIR}/common/rbbi.cpp"
${ICU_SOURCE_DIR}/common/rbbidata.cpp "${ICU_SOURCE_DIR}/common/rbbidata.cpp"
${ICU_SOURCE_DIR}/common/rbbinode.cpp "${ICU_SOURCE_DIR}/common/rbbinode.cpp"
${ICU_SOURCE_DIR}/common/rbbirb.cpp "${ICU_SOURCE_DIR}/common/rbbirb.cpp"
${ICU_SOURCE_DIR}/common/rbbiscan.cpp "${ICU_SOURCE_DIR}/common/rbbiscan.cpp"
${ICU_SOURCE_DIR}/common/rbbisetb.cpp "${ICU_SOURCE_DIR}/common/rbbisetb.cpp"
${ICU_SOURCE_DIR}/common/rbbistbl.cpp "${ICU_SOURCE_DIR}/common/rbbistbl.cpp"
${ICU_SOURCE_DIR}/common/rbbitblb.cpp "${ICU_SOURCE_DIR}/common/rbbitblb.cpp"
${ICU_SOURCE_DIR}/common/rbbi_cache.cpp "${ICU_SOURCE_DIR}/common/rbbi_cache.cpp"
${ICU_SOURCE_DIR}/common/serv.cpp "${ICU_SOURCE_DIR}/common/serv.cpp"
${ICU_SOURCE_DIR}/common/servnotf.cpp "${ICU_SOURCE_DIR}/common/servnotf.cpp"
${ICU_SOURCE_DIR}/common/servls.cpp "${ICU_SOURCE_DIR}/common/servls.cpp"
${ICU_SOURCE_DIR}/common/servlk.cpp "${ICU_SOURCE_DIR}/common/servlk.cpp"
${ICU_SOURCE_DIR}/common/servlkf.cpp "${ICU_SOURCE_DIR}/common/servlkf.cpp"
${ICU_SOURCE_DIR}/common/servrbf.cpp "${ICU_SOURCE_DIR}/common/servrbf.cpp"
${ICU_SOURCE_DIR}/common/servslkf.cpp "${ICU_SOURCE_DIR}/common/servslkf.cpp"
${ICU_SOURCE_DIR}/common/uidna.cpp "${ICU_SOURCE_DIR}/common/uidna.cpp"
${ICU_SOURCE_DIR}/common/usprep.cpp "${ICU_SOURCE_DIR}/common/usprep.cpp"
${ICU_SOURCE_DIR}/common/uts46.cpp "${ICU_SOURCE_DIR}/common/uts46.cpp"
${ICU_SOURCE_DIR}/common/punycode.cpp "${ICU_SOURCE_DIR}/common/punycode.cpp"
${ICU_SOURCE_DIR}/common/util.cpp "${ICU_SOURCE_DIR}/common/util.cpp"
${ICU_SOURCE_DIR}/common/util_props.cpp "${ICU_SOURCE_DIR}/common/util_props.cpp"
${ICU_SOURCE_DIR}/common/parsepos.cpp "${ICU_SOURCE_DIR}/common/parsepos.cpp"
${ICU_SOURCE_DIR}/common/locbased.cpp "${ICU_SOURCE_DIR}/common/locbased.cpp"
${ICU_SOURCE_DIR}/common/cwchar.cpp "${ICU_SOURCE_DIR}/common/cwchar.cpp"
${ICU_SOURCE_DIR}/common/wintz.cpp "${ICU_SOURCE_DIR}/common/wintz.cpp"
${ICU_SOURCE_DIR}/common/dtintrv.cpp "${ICU_SOURCE_DIR}/common/dtintrv.cpp"
${ICU_SOURCE_DIR}/common/ucnvsel.cpp "${ICU_SOURCE_DIR}/common/ucnvsel.cpp"
${ICU_SOURCE_DIR}/common/propsvec.cpp "${ICU_SOURCE_DIR}/common/propsvec.cpp"
${ICU_SOURCE_DIR}/common/ulist.cpp "${ICU_SOURCE_DIR}/common/ulist.cpp"
${ICU_SOURCE_DIR}/common/uloc_tag.cpp "${ICU_SOURCE_DIR}/common/uloc_tag.cpp"
${ICU_SOURCE_DIR}/common/icudataver.cpp "${ICU_SOURCE_DIR}/common/icudataver.cpp"
${ICU_SOURCE_DIR}/common/icuplug.cpp "${ICU_SOURCE_DIR}/common/icuplug.cpp"
${ICU_SOURCE_DIR}/common/sharedobject.cpp "${ICU_SOURCE_DIR}/common/sharedobject.cpp"
${ICU_SOURCE_DIR}/common/simpleformatter.cpp "${ICU_SOURCE_DIR}/common/simpleformatter.cpp"
${ICU_SOURCE_DIR}/common/unifiedcache.cpp "${ICU_SOURCE_DIR}/common/unifiedcache.cpp"
${ICU_SOURCE_DIR}/common/uloc_keytype.cpp "${ICU_SOURCE_DIR}/common/uloc_keytype.cpp"
${ICU_SOURCE_DIR}/common/ubiditransform.cpp "${ICU_SOURCE_DIR}/common/ubiditransform.cpp"
${ICU_SOURCE_DIR}/common/pluralmap.cpp "${ICU_SOURCE_DIR}/common/pluralmap.cpp"
${ICU_SOURCE_DIR}/common/static_unicode_sets.cpp "${ICU_SOURCE_DIR}/common/static_unicode_sets.cpp"
${ICU_SOURCE_DIR}/common/restrace.cpp) "${ICU_SOURCE_DIR}/common/restrace.cpp")
set(ICUI18N_SOURCES set(ICUI18N_SOURCES
${ICU_SOURCE_DIR}/i18n/ucln_in.cpp "${ICU_SOURCE_DIR}/i18n/ucln_in.cpp"
${ICU_SOURCE_DIR}/i18n/fmtable.cpp "${ICU_SOURCE_DIR}/i18n/fmtable.cpp"
${ICU_SOURCE_DIR}/i18n/format.cpp "${ICU_SOURCE_DIR}/i18n/format.cpp"
${ICU_SOURCE_DIR}/i18n/msgfmt.cpp "${ICU_SOURCE_DIR}/i18n/msgfmt.cpp"
${ICU_SOURCE_DIR}/i18n/umsg.cpp "${ICU_SOURCE_DIR}/i18n/umsg.cpp"
${ICU_SOURCE_DIR}/i18n/numfmt.cpp "${ICU_SOURCE_DIR}/i18n/numfmt.cpp"
${ICU_SOURCE_DIR}/i18n/unum.cpp "${ICU_SOURCE_DIR}/i18n/unum.cpp"
${ICU_SOURCE_DIR}/i18n/decimfmt.cpp "${ICU_SOURCE_DIR}/i18n/decimfmt.cpp"
${ICU_SOURCE_DIR}/i18n/dcfmtsym.cpp "${ICU_SOURCE_DIR}/i18n/dcfmtsym.cpp"
${ICU_SOURCE_DIR}/i18n/fmtable_cnv.cpp "${ICU_SOURCE_DIR}/i18n/fmtable_cnv.cpp"
${ICU_SOURCE_DIR}/i18n/choicfmt.cpp "${ICU_SOURCE_DIR}/i18n/choicfmt.cpp"
${ICU_SOURCE_DIR}/i18n/datefmt.cpp "${ICU_SOURCE_DIR}/i18n/datefmt.cpp"
${ICU_SOURCE_DIR}/i18n/smpdtfmt.cpp "${ICU_SOURCE_DIR}/i18n/smpdtfmt.cpp"
${ICU_SOURCE_DIR}/i18n/reldtfmt.cpp "${ICU_SOURCE_DIR}/i18n/reldtfmt.cpp"
${ICU_SOURCE_DIR}/i18n/dtfmtsym.cpp "${ICU_SOURCE_DIR}/i18n/dtfmtsym.cpp"
${ICU_SOURCE_DIR}/i18n/udat.cpp "${ICU_SOURCE_DIR}/i18n/udat.cpp"
${ICU_SOURCE_DIR}/i18n/dtptngen.cpp "${ICU_SOURCE_DIR}/i18n/dtptngen.cpp"
${ICU_SOURCE_DIR}/i18n/udatpg.cpp "${ICU_SOURCE_DIR}/i18n/udatpg.cpp"
${ICU_SOURCE_DIR}/i18n/nfrs.cpp "${ICU_SOURCE_DIR}/i18n/nfrs.cpp"
${ICU_SOURCE_DIR}/i18n/nfrule.cpp "${ICU_SOURCE_DIR}/i18n/nfrule.cpp"
${ICU_SOURCE_DIR}/i18n/nfsubs.cpp "${ICU_SOURCE_DIR}/i18n/nfsubs.cpp"
${ICU_SOURCE_DIR}/i18n/rbnf.cpp "${ICU_SOURCE_DIR}/i18n/rbnf.cpp"
${ICU_SOURCE_DIR}/i18n/numsys.cpp "${ICU_SOURCE_DIR}/i18n/numsys.cpp"
${ICU_SOURCE_DIR}/i18n/unumsys.cpp "${ICU_SOURCE_DIR}/i18n/unumsys.cpp"
${ICU_SOURCE_DIR}/i18n/ucsdet.cpp "${ICU_SOURCE_DIR}/i18n/ucsdet.cpp"
${ICU_SOURCE_DIR}/i18n/ucal.cpp "${ICU_SOURCE_DIR}/i18n/ucal.cpp"
${ICU_SOURCE_DIR}/i18n/calendar.cpp "${ICU_SOURCE_DIR}/i18n/calendar.cpp"
${ICU_SOURCE_DIR}/i18n/gregocal.cpp "${ICU_SOURCE_DIR}/i18n/gregocal.cpp"
${ICU_SOURCE_DIR}/i18n/timezone.cpp "${ICU_SOURCE_DIR}/i18n/timezone.cpp"
${ICU_SOURCE_DIR}/i18n/simpletz.cpp "${ICU_SOURCE_DIR}/i18n/simpletz.cpp"
${ICU_SOURCE_DIR}/i18n/olsontz.cpp "${ICU_SOURCE_DIR}/i18n/olsontz.cpp"
${ICU_SOURCE_DIR}/i18n/astro.cpp "${ICU_SOURCE_DIR}/i18n/astro.cpp"
${ICU_SOURCE_DIR}/i18n/taiwncal.cpp "${ICU_SOURCE_DIR}/i18n/taiwncal.cpp"
${ICU_SOURCE_DIR}/i18n/buddhcal.cpp "${ICU_SOURCE_DIR}/i18n/buddhcal.cpp"
${ICU_SOURCE_DIR}/i18n/persncal.cpp "${ICU_SOURCE_DIR}/i18n/persncal.cpp"
${ICU_SOURCE_DIR}/i18n/islamcal.cpp "${ICU_SOURCE_DIR}/i18n/islamcal.cpp"
${ICU_SOURCE_DIR}/i18n/japancal.cpp "${ICU_SOURCE_DIR}/i18n/japancal.cpp"
${ICU_SOURCE_DIR}/i18n/gregoimp.cpp "${ICU_SOURCE_DIR}/i18n/gregoimp.cpp"
${ICU_SOURCE_DIR}/i18n/hebrwcal.cpp "${ICU_SOURCE_DIR}/i18n/hebrwcal.cpp"
${ICU_SOURCE_DIR}/i18n/indiancal.cpp "${ICU_SOURCE_DIR}/i18n/indiancal.cpp"
${ICU_SOURCE_DIR}/i18n/chnsecal.cpp "${ICU_SOURCE_DIR}/i18n/chnsecal.cpp"
${ICU_SOURCE_DIR}/i18n/cecal.cpp "${ICU_SOURCE_DIR}/i18n/cecal.cpp"
${ICU_SOURCE_DIR}/i18n/coptccal.cpp "${ICU_SOURCE_DIR}/i18n/coptccal.cpp"
${ICU_SOURCE_DIR}/i18n/dangical.cpp "${ICU_SOURCE_DIR}/i18n/dangical.cpp"
${ICU_SOURCE_DIR}/i18n/ethpccal.cpp "${ICU_SOURCE_DIR}/i18n/ethpccal.cpp"
${ICU_SOURCE_DIR}/i18n/coleitr.cpp "${ICU_SOURCE_DIR}/i18n/coleitr.cpp"
${ICU_SOURCE_DIR}/i18n/coll.cpp "${ICU_SOURCE_DIR}/i18n/coll.cpp"
${ICU_SOURCE_DIR}/i18n/sortkey.cpp "${ICU_SOURCE_DIR}/i18n/sortkey.cpp"
${ICU_SOURCE_DIR}/i18n/bocsu.cpp "${ICU_SOURCE_DIR}/i18n/bocsu.cpp"
${ICU_SOURCE_DIR}/i18n/ucoleitr.cpp "${ICU_SOURCE_DIR}/i18n/ucoleitr.cpp"
${ICU_SOURCE_DIR}/i18n/ucol.cpp "${ICU_SOURCE_DIR}/i18n/ucol.cpp"
${ICU_SOURCE_DIR}/i18n/ucol_res.cpp "${ICU_SOURCE_DIR}/i18n/ucol_res.cpp"
${ICU_SOURCE_DIR}/i18n/ucol_sit.cpp "${ICU_SOURCE_DIR}/i18n/ucol_sit.cpp"
${ICU_SOURCE_DIR}/i18n/collation.cpp "${ICU_SOURCE_DIR}/i18n/collation.cpp"
${ICU_SOURCE_DIR}/i18n/collationsettings.cpp "${ICU_SOURCE_DIR}/i18n/collationsettings.cpp"
${ICU_SOURCE_DIR}/i18n/collationdata.cpp "${ICU_SOURCE_DIR}/i18n/collationdata.cpp"
${ICU_SOURCE_DIR}/i18n/collationtailoring.cpp "${ICU_SOURCE_DIR}/i18n/collationtailoring.cpp"
${ICU_SOURCE_DIR}/i18n/collationdatareader.cpp "${ICU_SOURCE_DIR}/i18n/collationdatareader.cpp"
${ICU_SOURCE_DIR}/i18n/collationdatawriter.cpp "${ICU_SOURCE_DIR}/i18n/collationdatawriter.cpp"
${ICU_SOURCE_DIR}/i18n/collationfcd.cpp "${ICU_SOURCE_DIR}/i18n/collationfcd.cpp"
${ICU_SOURCE_DIR}/i18n/collationiterator.cpp "${ICU_SOURCE_DIR}/i18n/collationiterator.cpp"
${ICU_SOURCE_DIR}/i18n/utf16collationiterator.cpp "${ICU_SOURCE_DIR}/i18n/utf16collationiterator.cpp"
${ICU_SOURCE_DIR}/i18n/utf8collationiterator.cpp "${ICU_SOURCE_DIR}/i18n/utf8collationiterator.cpp"
${ICU_SOURCE_DIR}/i18n/uitercollationiterator.cpp "${ICU_SOURCE_DIR}/i18n/uitercollationiterator.cpp"
${ICU_SOURCE_DIR}/i18n/collationsets.cpp "${ICU_SOURCE_DIR}/i18n/collationsets.cpp"
${ICU_SOURCE_DIR}/i18n/collationcompare.cpp "${ICU_SOURCE_DIR}/i18n/collationcompare.cpp"
${ICU_SOURCE_DIR}/i18n/collationfastlatin.cpp "${ICU_SOURCE_DIR}/i18n/collationfastlatin.cpp"
${ICU_SOURCE_DIR}/i18n/collationkeys.cpp "${ICU_SOURCE_DIR}/i18n/collationkeys.cpp"
${ICU_SOURCE_DIR}/i18n/rulebasedcollator.cpp "${ICU_SOURCE_DIR}/i18n/rulebasedcollator.cpp"
${ICU_SOURCE_DIR}/i18n/collationroot.cpp "${ICU_SOURCE_DIR}/i18n/collationroot.cpp"
${ICU_SOURCE_DIR}/i18n/collationrootelements.cpp "${ICU_SOURCE_DIR}/i18n/collationrootelements.cpp"
${ICU_SOURCE_DIR}/i18n/collationdatabuilder.cpp "${ICU_SOURCE_DIR}/i18n/collationdatabuilder.cpp"
${ICU_SOURCE_DIR}/i18n/collationweights.cpp "${ICU_SOURCE_DIR}/i18n/collationweights.cpp"
${ICU_SOURCE_DIR}/i18n/collationruleparser.cpp "${ICU_SOURCE_DIR}/i18n/collationruleparser.cpp"
${ICU_SOURCE_DIR}/i18n/collationbuilder.cpp "${ICU_SOURCE_DIR}/i18n/collationbuilder.cpp"
${ICU_SOURCE_DIR}/i18n/collationfastlatinbuilder.cpp "${ICU_SOURCE_DIR}/i18n/collationfastlatinbuilder.cpp"
${ICU_SOURCE_DIR}/i18n/listformatter.cpp "${ICU_SOURCE_DIR}/i18n/listformatter.cpp"
${ICU_SOURCE_DIR}/i18n/ulistformatter.cpp "${ICU_SOURCE_DIR}/i18n/ulistformatter.cpp"
${ICU_SOURCE_DIR}/i18n/strmatch.cpp "${ICU_SOURCE_DIR}/i18n/strmatch.cpp"
${ICU_SOURCE_DIR}/i18n/usearch.cpp "${ICU_SOURCE_DIR}/i18n/usearch.cpp"
${ICU_SOURCE_DIR}/i18n/search.cpp "${ICU_SOURCE_DIR}/i18n/search.cpp"
${ICU_SOURCE_DIR}/i18n/stsearch.cpp "${ICU_SOURCE_DIR}/i18n/stsearch.cpp"
${ICU_SOURCE_DIR}/i18n/translit.cpp "${ICU_SOURCE_DIR}/i18n/translit.cpp"
${ICU_SOURCE_DIR}/i18n/utrans.cpp "${ICU_SOURCE_DIR}/i18n/utrans.cpp"
${ICU_SOURCE_DIR}/i18n/esctrn.cpp "${ICU_SOURCE_DIR}/i18n/esctrn.cpp"
${ICU_SOURCE_DIR}/i18n/unesctrn.cpp "${ICU_SOURCE_DIR}/i18n/unesctrn.cpp"
${ICU_SOURCE_DIR}/i18n/funcrepl.cpp "${ICU_SOURCE_DIR}/i18n/funcrepl.cpp"
${ICU_SOURCE_DIR}/i18n/strrepl.cpp "${ICU_SOURCE_DIR}/i18n/strrepl.cpp"
${ICU_SOURCE_DIR}/i18n/tridpars.cpp "${ICU_SOURCE_DIR}/i18n/tridpars.cpp"
${ICU_SOURCE_DIR}/i18n/cpdtrans.cpp "${ICU_SOURCE_DIR}/i18n/cpdtrans.cpp"
${ICU_SOURCE_DIR}/i18n/rbt.cpp "${ICU_SOURCE_DIR}/i18n/rbt.cpp"
${ICU_SOURCE_DIR}/i18n/rbt_data.cpp "${ICU_SOURCE_DIR}/i18n/rbt_data.cpp"
${ICU_SOURCE_DIR}/i18n/rbt_pars.cpp "${ICU_SOURCE_DIR}/i18n/rbt_pars.cpp"
${ICU_SOURCE_DIR}/i18n/rbt_rule.cpp "${ICU_SOURCE_DIR}/i18n/rbt_rule.cpp"
${ICU_SOURCE_DIR}/i18n/rbt_set.cpp "${ICU_SOURCE_DIR}/i18n/rbt_set.cpp"
${ICU_SOURCE_DIR}/i18n/nultrans.cpp "${ICU_SOURCE_DIR}/i18n/nultrans.cpp"
${ICU_SOURCE_DIR}/i18n/remtrans.cpp "${ICU_SOURCE_DIR}/i18n/remtrans.cpp"
${ICU_SOURCE_DIR}/i18n/casetrn.cpp "${ICU_SOURCE_DIR}/i18n/casetrn.cpp"
${ICU_SOURCE_DIR}/i18n/titletrn.cpp "${ICU_SOURCE_DIR}/i18n/titletrn.cpp"
${ICU_SOURCE_DIR}/i18n/tolowtrn.cpp "${ICU_SOURCE_DIR}/i18n/tolowtrn.cpp"
${ICU_SOURCE_DIR}/i18n/toupptrn.cpp "${ICU_SOURCE_DIR}/i18n/toupptrn.cpp"
${ICU_SOURCE_DIR}/i18n/anytrans.cpp "${ICU_SOURCE_DIR}/i18n/anytrans.cpp"
${ICU_SOURCE_DIR}/i18n/name2uni.cpp "${ICU_SOURCE_DIR}/i18n/name2uni.cpp"
${ICU_SOURCE_DIR}/i18n/uni2name.cpp "${ICU_SOURCE_DIR}/i18n/uni2name.cpp"
${ICU_SOURCE_DIR}/i18n/nortrans.cpp "${ICU_SOURCE_DIR}/i18n/nortrans.cpp"
${ICU_SOURCE_DIR}/i18n/quant.cpp "${ICU_SOURCE_DIR}/i18n/quant.cpp"
${ICU_SOURCE_DIR}/i18n/transreg.cpp "${ICU_SOURCE_DIR}/i18n/transreg.cpp"
${ICU_SOURCE_DIR}/i18n/brktrans.cpp "${ICU_SOURCE_DIR}/i18n/brktrans.cpp"
${ICU_SOURCE_DIR}/i18n/regexcmp.cpp "${ICU_SOURCE_DIR}/i18n/regexcmp.cpp"
${ICU_SOURCE_DIR}/i18n/rematch.cpp "${ICU_SOURCE_DIR}/i18n/rematch.cpp"
${ICU_SOURCE_DIR}/i18n/repattrn.cpp "${ICU_SOURCE_DIR}/i18n/repattrn.cpp"
${ICU_SOURCE_DIR}/i18n/regexst.cpp "${ICU_SOURCE_DIR}/i18n/regexst.cpp"
${ICU_SOURCE_DIR}/i18n/regextxt.cpp "${ICU_SOURCE_DIR}/i18n/regextxt.cpp"
${ICU_SOURCE_DIR}/i18n/regeximp.cpp "${ICU_SOURCE_DIR}/i18n/regeximp.cpp"
${ICU_SOURCE_DIR}/i18n/uregex.cpp "${ICU_SOURCE_DIR}/i18n/uregex.cpp"
${ICU_SOURCE_DIR}/i18n/uregexc.cpp "${ICU_SOURCE_DIR}/i18n/uregexc.cpp"
${ICU_SOURCE_DIR}/i18n/ulocdata.cpp "${ICU_SOURCE_DIR}/i18n/ulocdata.cpp"
${ICU_SOURCE_DIR}/i18n/measfmt.cpp "${ICU_SOURCE_DIR}/i18n/measfmt.cpp"
${ICU_SOURCE_DIR}/i18n/currfmt.cpp "${ICU_SOURCE_DIR}/i18n/currfmt.cpp"
${ICU_SOURCE_DIR}/i18n/curramt.cpp "${ICU_SOURCE_DIR}/i18n/curramt.cpp"
${ICU_SOURCE_DIR}/i18n/currunit.cpp "${ICU_SOURCE_DIR}/i18n/currunit.cpp"
${ICU_SOURCE_DIR}/i18n/measure.cpp "${ICU_SOURCE_DIR}/i18n/measure.cpp"
${ICU_SOURCE_DIR}/i18n/utmscale.cpp "${ICU_SOURCE_DIR}/i18n/utmscale.cpp"
${ICU_SOURCE_DIR}/i18n/csdetect.cpp "${ICU_SOURCE_DIR}/i18n/csdetect.cpp"
${ICU_SOURCE_DIR}/i18n/csmatch.cpp "${ICU_SOURCE_DIR}/i18n/csmatch.cpp"
${ICU_SOURCE_DIR}/i18n/csr2022.cpp "${ICU_SOURCE_DIR}/i18n/csr2022.cpp"
${ICU_SOURCE_DIR}/i18n/csrecog.cpp "${ICU_SOURCE_DIR}/i18n/csrecog.cpp"
${ICU_SOURCE_DIR}/i18n/csrmbcs.cpp "${ICU_SOURCE_DIR}/i18n/csrmbcs.cpp"
${ICU_SOURCE_DIR}/i18n/csrsbcs.cpp "${ICU_SOURCE_DIR}/i18n/csrsbcs.cpp"
${ICU_SOURCE_DIR}/i18n/csrucode.cpp "${ICU_SOURCE_DIR}/i18n/csrucode.cpp"
${ICU_SOURCE_DIR}/i18n/csrutf8.cpp "${ICU_SOURCE_DIR}/i18n/csrutf8.cpp"
${ICU_SOURCE_DIR}/i18n/inputext.cpp "${ICU_SOURCE_DIR}/i18n/inputext.cpp"
${ICU_SOURCE_DIR}/i18n/wintzimpl.cpp "${ICU_SOURCE_DIR}/i18n/wintzimpl.cpp"
${ICU_SOURCE_DIR}/i18n/windtfmt.cpp "${ICU_SOURCE_DIR}/i18n/windtfmt.cpp"
${ICU_SOURCE_DIR}/i18n/winnmfmt.cpp "${ICU_SOURCE_DIR}/i18n/winnmfmt.cpp"
${ICU_SOURCE_DIR}/i18n/basictz.cpp "${ICU_SOURCE_DIR}/i18n/basictz.cpp"
${ICU_SOURCE_DIR}/i18n/dtrule.cpp "${ICU_SOURCE_DIR}/i18n/dtrule.cpp"
${ICU_SOURCE_DIR}/i18n/rbtz.cpp "${ICU_SOURCE_DIR}/i18n/rbtz.cpp"
${ICU_SOURCE_DIR}/i18n/tzrule.cpp "${ICU_SOURCE_DIR}/i18n/tzrule.cpp"
${ICU_SOURCE_DIR}/i18n/tztrans.cpp "${ICU_SOURCE_DIR}/i18n/tztrans.cpp"
${ICU_SOURCE_DIR}/i18n/vtzone.cpp "${ICU_SOURCE_DIR}/i18n/vtzone.cpp"
${ICU_SOURCE_DIR}/i18n/zonemeta.cpp "${ICU_SOURCE_DIR}/i18n/zonemeta.cpp"
${ICU_SOURCE_DIR}/i18n/standardplural.cpp "${ICU_SOURCE_DIR}/i18n/standardplural.cpp"
${ICU_SOURCE_DIR}/i18n/upluralrules.cpp "${ICU_SOURCE_DIR}/i18n/upluralrules.cpp"
${ICU_SOURCE_DIR}/i18n/plurrule.cpp "${ICU_SOURCE_DIR}/i18n/plurrule.cpp"
${ICU_SOURCE_DIR}/i18n/plurfmt.cpp "${ICU_SOURCE_DIR}/i18n/plurfmt.cpp"
${ICU_SOURCE_DIR}/i18n/selfmt.cpp "${ICU_SOURCE_DIR}/i18n/selfmt.cpp"
${ICU_SOURCE_DIR}/i18n/dtitvfmt.cpp "${ICU_SOURCE_DIR}/i18n/dtitvfmt.cpp"
${ICU_SOURCE_DIR}/i18n/dtitvinf.cpp "${ICU_SOURCE_DIR}/i18n/dtitvinf.cpp"
${ICU_SOURCE_DIR}/i18n/udateintervalformat.cpp "${ICU_SOURCE_DIR}/i18n/udateintervalformat.cpp"
${ICU_SOURCE_DIR}/i18n/tmunit.cpp "${ICU_SOURCE_DIR}/i18n/tmunit.cpp"
${ICU_SOURCE_DIR}/i18n/tmutamt.cpp "${ICU_SOURCE_DIR}/i18n/tmutamt.cpp"
${ICU_SOURCE_DIR}/i18n/tmutfmt.cpp "${ICU_SOURCE_DIR}/i18n/tmutfmt.cpp"
${ICU_SOURCE_DIR}/i18n/currpinf.cpp "${ICU_SOURCE_DIR}/i18n/currpinf.cpp"
${ICU_SOURCE_DIR}/i18n/uspoof.cpp "${ICU_SOURCE_DIR}/i18n/uspoof.cpp"
${ICU_SOURCE_DIR}/i18n/uspoof_impl.cpp "${ICU_SOURCE_DIR}/i18n/uspoof_impl.cpp"
${ICU_SOURCE_DIR}/i18n/uspoof_build.cpp "${ICU_SOURCE_DIR}/i18n/uspoof_build.cpp"
${ICU_SOURCE_DIR}/i18n/uspoof_conf.cpp "${ICU_SOURCE_DIR}/i18n/uspoof_conf.cpp"
${ICU_SOURCE_DIR}/i18n/smpdtfst.cpp "${ICU_SOURCE_DIR}/i18n/smpdtfst.cpp"
${ICU_SOURCE_DIR}/i18n/ztrans.cpp "${ICU_SOURCE_DIR}/i18n/ztrans.cpp"
${ICU_SOURCE_DIR}/i18n/zrule.cpp "${ICU_SOURCE_DIR}/i18n/zrule.cpp"
${ICU_SOURCE_DIR}/i18n/vzone.cpp "${ICU_SOURCE_DIR}/i18n/vzone.cpp"
${ICU_SOURCE_DIR}/i18n/fphdlimp.cpp "${ICU_SOURCE_DIR}/i18n/fphdlimp.cpp"
${ICU_SOURCE_DIR}/i18n/fpositer.cpp "${ICU_SOURCE_DIR}/i18n/fpositer.cpp"
${ICU_SOURCE_DIR}/i18n/ufieldpositer.cpp "${ICU_SOURCE_DIR}/i18n/ufieldpositer.cpp"
${ICU_SOURCE_DIR}/i18n/decNumber.cpp "${ICU_SOURCE_DIR}/i18n/decNumber.cpp"
${ICU_SOURCE_DIR}/i18n/decContext.cpp "${ICU_SOURCE_DIR}/i18n/decContext.cpp"
${ICU_SOURCE_DIR}/i18n/alphaindex.cpp "${ICU_SOURCE_DIR}/i18n/alphaindex.cpp"
${ICU_SOURCE_DIR}/i18n/tznames.cpp "${ICU_SOURCE_DIR}/i18n/tznames.cpp"
${ICU_SOURCE_DIR}/i18n/tznames_impl.cpp "${ICU_SOURCE_DIR}/i18n/tznames_impl.cpp"
${ICU_SOURCE_DIR}/i18n/tzgnames.cpp "${ICU_SOURCE_DIR}/i18n/tzgnames.cpp"
${ICU_SOURCE_DIR}/i18n/tzfmt.cpp "${ICU_SOURCE_DIR}/i18n/tzfmt.cpp"
${ICU_SOURCE_DIR}/i18n/compactdecimalformat.cpp "${ICU_SOURCE_DIR}/i18n/compactdecimalformat.cpp"
${ICU_SOURCE_DIR}/i18n/gender.cpp "${ICU_SOURCE_DIR}/i18n/gender.cpp"
${ICU_SOURCE_DIR}/i18n/region.cpp "${ICU_SOURCE_DIR}/i18n/region.cpp"
${ICU_SOURCE_DIR}/i18n/scriptset.cpp "${ICU_SOURCE_DIR}/i18n/scriptset.cpp"
${ICU_SOURCE_DIR}/i18n/uregion.cpp "${ICU_SOURCE_DIR}/i18n/uregion.cpp"
${ICU_SOURCE_DIR}/i18n/reldatefmt.cpp "${ICU_SOURCE_DIR}/i18n/reldatefmt.cpp"
${ICU_SOURCE_DIR}/i18n/quantityformatter.cpp "${ICU_SOURCE_DIR}/i18n/quantityformatter.cpp"
${ICU_SOURCE_DIR}/i18n/measunit.cpp "${ICU_SOURCE_DIR}/i18n/measunit.cpp"
${ICU_SOURCE_DIR}/i18n/sharedbreakiterator.cpp "${ICU_SOURCE_DIR}/i18n/sharedbreakiterator.cpp"
${ICU_SOURCE_DIR}/i18n/scientificnumberformatter.cpp "${ICU_SOURCE_DIR}/i18n/scientificnumberformatter.cpp"
${ICU_SOURCE_DIR}/i18n/dayperiodrules.cpp "${ICU_SOURCE_DIR}/i18n/dayperiodrules.cpp"
${ICU_SOURCE_DIR}/i18n/nounit.cpp "${ICU_SOURCE_DIR}/i18n/nounit.cpp"
${ICU_SOURCE_DIR}/i18n/number_affixutils.cpp "${ICU_SOURCE_DIR}/i18n/number_affixutils.cpp"
${ICU_SOURCE_DIR}/i18n/number_compact.cpp "${ICU_SOURCE_DIR}/i18n/number_compact.cpp"
${ICU_SOURCE_DIR}/i18n/number_decimalquantity.cpp "${ICU_SOURCE_DIR}/i18n/number_decimalquantity.cpp"
${ICU_SOURCE_DIR}/i18n/number_decimfmtprops.cpp "${ICU_SOURCE_DIR}/i18n/number_decimfmtprops.cpp"
${ICU_SOURCE_DIR}/i18n/number_fluent.cpp "${ICU_SOURCE_DIR}/i18n/number_fluent.cpp"
${ICU_SOURCE_DIR}/i18n/number_formatimpl.cpp "${ICU_SOURCE_DIR}/i18n/number_formatimpl.cpp"
${ICU_SOURCE_DIR}/i18n/number_grouping.cpp "${ICU_SOURCE_DIR}/i18n/number_grouping.cpp"
${ICU_SOURCE_DIR}/i18n/number_integerwidth.cpp "${ICU_SOURCE_DIR}/i18n/number_integerwidth.cpp"
${ICU_SOURCE_DIR}/i18n/number_longnames.cpp "${ICU_SOURCE_DIR}/i18n/number_longnames.cpp"
${ICU_SOURCE_DIR}/i18n/number_modifiers.cpp "${ICU_SOURCE_DIR}/i18n/number_modifiers.cpp"
${ICU_SOURCE_DIR}/i18n/number_notation.cpp "${ICU_SOURCE_DIR}/i18n/number_notation.cpp"
${ICU_SOURCE_DIR}/i18n/number_output.cpp "${ICU_SOURCE_DIR}/i18n/number_output.cpp"
${ICU_SOURCE_DIR}/i18n/number_padding.cpp "${ICU_SOURCE_DIR}/i18n/number_padding.cpp"
${ICU_SOURCE_DIR}/i18n/number_patternmodifier.cpp "${ICU_SOURCE_DIR}/i18n/number_patternmodifier.cpp"
${ICU_SOURCE_DIR}/i18n/number_patternstring.cpp "${ICU_SOURCE_DIR}/i18n/number_patternstring.cpp"
${ICU_SOURCE_DIR}/i18n/number_rounding.cpp "${ICU_SOURCE_DIR}/i18n/number_rounding.cpp"
${ICU_SOURCE_DIR}/i18n/number_scientific.cpp "${ICU_SOURCE_DIR}/i18n/number_scientific.cpp"
${ICU_SOURCE_DIR}/i18n/number_utils.cpp "${ICU_SOURCE_DIR}/i18n/number_utils.cpp"
${ICU_SOURCE_DIR}/i18n/number_asformat.cpp "${ICU_SOURCE_DIR}/i18n/number_asformat.cpp"
${ICU_SOURCE_DIR}/i18n/number_mapper.cpp "${ICU_SOURCE_DIR}/i18n/number_mapper.cpp"
${ICU_SOURCE_DIR}/i18n/number_multiplier.cpp "${ICU_SOURCE_DIR}/i18n/number_multiplier.cpp"
${ICU_SOURCE_DIR}/i18n/number_currencysymbols.cpp "${ICU_SOURCE_DIR}/i18n/number_currencysymbols.cpp"
${ICU_SOURCE_DIR}/i18n/number_skeletons.cpp "${ICU_SOURCE_DIR}/i18n/number_skeletons.cpp"
${ICU_SOURCE_DIR}/i18n/number_capi.cpp "${ICU_SOURCE_DIR}/i18n/number_capi.cpp"
${ICU_SOURCE_DIR}/i18n/double-conversion-string-to-double.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-double-to-string.cpp"
${ICU_SOURCE_DIR}/i18n/double-conversion-bignum-dtoa.cpp "${ICU_SOURCE_DIR}/i18n/double-conversion-bignum-dtoa.cpp"
${ICU_SOURCE_DIR}/i18n/double-conversion-bignum.cpp "${ICU_SOURCE_DIR}/i18n/double-conversion-bignum.cpp"
${ICU_SOURCE_DIR}/i18n/double-conversion-cached-powers.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-fast-dtoa.cpp"
${ICU_SOURCE_DIR}/i18n/double-conversion-strtod.cpp "${ICU_SOURCE_DIR}/i18n/double-conversion-strtod.cpp"
${ICU_SOURCE_DIR}/i18n/string_segment.cpp "${ICU_SOURCE_DIR}/i18n/string_segment.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_parsednumber.cpp "${ICU_SOURCE_DIR}/i18n/numparse_parsednumber.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_impl.cpp "${ICU_SOURCE_DIR}/i18n/numparse_impl.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_symbols.cpp "${ICU_SOURCE_DIR}/i18n/numparse_symbols.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_decimal.cpp "${ICU_SOURCE_DIR}/i18n/numparse_decimal.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_scientific.cpp "${ICU_SOURCE_DIR}/i18n/numparse_scientific.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_currency.cpp "${ICU_SOURCE_DIR}/i18n/numparse_currency.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_affixes.cpp "${ICU_SOURCE_DIR}/i18n/numparse_affixes.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_compositions.cpp "${ICU_SOURCE_DIR}/i18n/numparse_compositions.cpp"
${ICU_SOURCE_DIR}/i18n/numparse_validators.cpp "${ICU_SOURCE_DIR}/i18n/numparse_validators.cpp"
${ICU_SOURCE_DIR}/i18n/numrange_fluent.cpp "${ICU_SOURCE_DIR}/i18n/numrange_fluent.cpp"
${ICU_SOURCE_DIR}/i18n/numrange_impl.cpp "${ICU_SOURCE_DIR}/i18n/numrange_impl.cpp"
${ICU_SOURCE_DIR}/i18n/erarules.cpp "${ICU_SOURCE_DIR}/i18n/erarules.cpp"
${ICU_SOURCE_DIR}/i18n/formattedvalue.cpp "${ICU_SOURCE_DIR}/i18n/formattedvalue.cpp"
${ICU_SOURCE_DIR}/i18n/formattedval_iterimpl.cpp "${ICU_SOURCE_DIR}/i18n/formattedval_iterimpl.cpp"
${ICU_SOURCE_DIR}/i18n/formattedval_sbimpl.cpp "${ICU_SOURCE_DIR}/i18n/formattedval_sbimpl.cpp"
${ICU_SOURCE_DIR}/i18n/formatted_string_builder.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) enable_language(ASM)
set(ICUDATA_SOURCES set(ICUDATA_SOURCES
${ICUDATA_SOURCE_DIR}/icudt66l_dat.S "${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 "${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). # 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(icuuc PRIVATE icudata)
target_link_libraries(icui18n PRIVATE icuuc) target_link_libraries(icui18n PRIVATE icuuc)
target_include_directories(icuuc SYSTEM PUBLIC ${ICU_SOURCE_DIR}/common/) target_include_directories(icuuc SYSTEM PUBLIC "${ICU_SOURCE_DIR}/common/")
target_include_directories(icui18n SYSTEM PUBLIC ${ICU_SOURCE_DIR}/i18n/) target_include_directories(icui18n SYSTEM PUBLIC "${ICU_SOURCE_DIR}/i18n/")
target_compile_definitions(icuuc PRIVATE -DU_COMMON_IMPLEMENTATION) target_compile_definitions(icuuc PRIVATE -DU_COMMON_IMPLEMENTATION)
target_compile_definitions(icui18n PRIVATE -DU_I18N_IMPLEMENTATION) target_compile_definitions(icui18n PRIVATE -DU_I18N_IMPLEMENTATION)

View File

@ -1,10 +1,13 @@
if (SANITIZE OR NOT (ARCH_AMD64 OR ARCH_ARM) 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) if (ENABLE_JEMALLOC)
message (${RECONFIGURE_MESSAGE_LEVEL} message (${RECONFIGURE_MESSAGE_LEVEL}
"jemalloc is disabled implicitly: it doesn't work with sanitizers and can only be used with x86_64 or aarch64 on linux or freebsd.") "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() endif ()
set (ENABLE_JEMALLOC OFF) set (ENABLE_JEMALLOC OFF)
else() else ()
option (ENABLE_JEMALLOC "Enable jemalloc allocator" ${ENABLE_LIBRARIES}) option (ENABLE_JEMALLOC "Enable jemalloc allocator" ${ENABLE_LIBRARIES})
endif () endif ()
@ -34,9 +37,9 @@ if (OS_LINUX)
# avoid spurious latencies and additional work associated with # avoid spurious latencies and additional work associated with
# MADV_DONTNEED. See # MADV_DONTNEED. See
# https://github.com/ClickHouse/ClickHouse/issues/11121 for motivation. # 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() 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() endif()
# CACHE variable is empty, to allow changing defaults without necessity # CACHE variable is empty, to allow changing defaults without necessity
# to purge cache # 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 (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/jemalloc")
set (SRCS set (SRCS
${LIBRARY_DIR}/src/arena.c "${LIBRARY_DIR}/src/arena.c"
${LIBRARY_DIR}/src/background_thread.c "${LIBRARY_DIR}/src/background_thread.c"
${LIBRARY_DIR}/src/base.c "${LIBRARY_DIR}/src/base.c"
${LIBRARY_DIR}/src/bin.c "${LIBRARY_DIR}/src/bin.c"
${LIBRARY_DIR}/src/bitmap.c "${LIBRARY_DIR}/src/bitmap.c"
${LIBRARY_DIR}/src/ckh.c "${LIBRARY_DIR}/src/ckh.c"
${LIBRARY_DIR}/src/ctl.c "${LIBRARY_DIR}/src/ctl.c"
${LIBRARY_DIR}/src/div.c "${LIBRARY_DIR}/src/div.c"
${LIBRARY_DIR}/src/extent.c "${LIBRARY_DIR}/src/extent.c"
${LIBRARY_DIR}/src/extent_dss.c "${LIBRARY_DIR}/src/extent_dss.c"
${LIBRARY_DIR}/src/extent_mmap.c "${LIBRARY_DIR}/src/extent_mmap.c"
${LIBRARY_DIR}/src/hash.c "${LIBRARY_DIR}/src/hash.c"
${LIBRARY_DIR}/src/hook.c "${LIBRARY_DIR}/src/hook.c"
${LIBRARY_DIR}/src/jemalloc.c "${LIBRARY_DIR}/src/jemalloc.c"
${LIBRARY_DIR}/src/large.c "${LIBRARY_DIR}/src/large.c"
${LIBRARY_DIR}/src/log.c "${LIBRARY_DIR}/src/log.c"
${LIBRARY_DIR}/src/malloc_io.c "${LIBRARY_DIR}/src/malloc_io.c"
${LIBRARY_DIR}/src/mutex.c "${LIBRARY_DIR}/src/mutex.c"
${LIBRARY_DIR}/src/mutex_pool.c "${LIBRARY_DIR}/src/mutex_pool.c"
${LIBRARY_DIR}/src/nstime.c "${LIBRARY_DIR}/src/nstime.c"
${LIBRARY_DIR}/src/pages.c "${LIBRARY_DIR}/src/pages.c"
${LIBRARY_DIR}/src/prng.c "${LIBRARY_DIR}/src/prng.c"
${LIBRARY_DIR}/src/prof.c "${LIBRARY_DIR}/src/prof.c"
${LIBRARY_DIR}/src/rtree.c "${LIBRARY_DIR}/src/rtree.c"
${LIBRARY_DIR}/src/sc.c "${LIBRARY_DIR}/src/sc.c"
${LIBRARY_DIR}/src/stats.c "${LIBRARY_DIR}/src/stats.c"
${LIBRARY_DIR}/src/sz.c "${LIBRARY_DIR}/src/sz.c"
${LIBRARY_DIR}/src/tcache.c "${LIBRARY_DIR}/src/tcache.c"
${LIBRARY_DIR}/src/test_hooks.c "${LIBRARY_DIR}/src/test_hooks.c"
${LIBRARY_DIR}/src/ticker.c "${LIBRARY_DIR}/src/ticker.c"
${LIBRARY_DIR}/src/tsd.c "${LIBRARY_DIR}/src/tsd.c"
${LIBRARY_DIR}/src/witness.c "${LIBRARY_DIR}/src/witness.c"
${LIBRARY_DIR}/src/safety_check.c "${LIBRARY_DIR}/src/safety_check.c"
) )
if (OS_DARWIN) if (OS_DARWIN)
list(APPEND SRCS ${LIBRARY_DIR}/src/zone.c) list(APPEND SRCS "${LIBRARY_DIR}/src/zone.c")
endif () endif ()
add_library(jemalloc ${SRCS}) 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) target_include_directories(jemalloc SYSTEM PUBLIC include)
set (JEMALLOC_INCLUDE_PREFIX) set (JEMALLOC_INCLUDE_PREFIX)
@ -107,6 +110,8 @@ if (ARCH_AMD64)
set(JEMALLOC_INCLUDE_PREFIX "${JEMALLOC_INCLUDE_PREFIX}_x86_64") set(JEMALLOC_INCLUDE_PREFIX "${JEMALLOC_INCLUDE_PREFIX}_x86_64")
elseif (ARCH_ARM) elseif (ARCH_ARM)
set(JEMALLOC_INCLUDE_PREFIX "${JEMALLOC_INCLUDE_PREFIX}_aarch64") set(JEMALLOC_INCLUDE_PREFIX "${JEMALLOC_INCLUDE_PREFIX}_aarch64")
elseif (ARCH_PPC64LE)
set(JEMALLOC_INCLUDE_PREFIX "${JEMALLOC_INCLUDE_PREFIX}_ppc64le")
else () else ()
message (FATAL_ERROR "internal jemalloc: This arch is not supported") message (FATAL_ERROR "internal jemalloc: This arch is not supported")
endif () endif ()
@ -114,17 +119,19 @@ endif ()
configure_file(${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal/jemalloc_internal_defs.h.in configure_file(${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal/jemalloc_internal_defs.h.in
${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal/jemalloc_internal_defs.h) ${JEMALLOC_INCLUDE_PREFIX}/jemalloc/internal/jemalloc_internal_defs.h)
target_include_directories(jemalloc SYSTEM PRIVATE 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) target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_NO_PRIVATE_NAMESPACE)
if (CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG") 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=1)
target_compile_definitions (jemalloc PRIVATE -DJEMALLOC_PROF_LIBUNWIND=1)
target_link_libraries (jemalloc PRIVATE unwind) if (USE_UNWIND)
endif () target_compile_definitions (jemalloc PRIVATE -DJEMALLOC_PROF_LIBUNWIND=1)
target_link_libraries (jemalloc PRIVATE unwind)
endif () endif ()
target_compile_options(jemalloc PRIVATE -Wno-redundant-decls) target_compile_options(jemalloc PRIVATE -Wno-redundant-decls)

View File

@ -42,7 +42,7 @@
* total number of bits in a pointer, e.g. on x64, for which the uppermost 16 * total number of bits in a pointer, e.g. on x64, for which the uppermost 16
* bits are the same as bit 47. * bits are the same as bit 47.
*/ */
#define LG_VADDR 48 #define LG_VADDR 64
/* Defined if C11 atomics are available. */ /* Defined if C11 atomics are available. */
#define JEMALLOC_C11_ATOMICS 1 #define JEMALLOC_C11_ATOMICS 1
@ -101,11 +101,6 @@
*/ */
#define JEMALLOC_HAVE_MACH_ABSOLUTE_TIME 1 #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 * Defined if _malloc_thread_cleanup() exists. At least in the case of
* FreeBSD, pthread_key_create() allocates, which if used during malloc * FreeBSD, pthread_key_create() allocates, which if used during malloc
@ -181,14 +176,14 @@
/* #undef LG_QUANTUM */ /* #undef LG_QUANTUM */
/* One page is 2^LG_PAGE bytes. */ /* 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 * 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 * system does not explicitly support huge pages; system calls that require
* explicit huge page support are separately configured. * explicit huge page support are separately configured.
*/ */
#define LG_HUGEPAGE 29 #define LG_HUGEPAGE 21
/* /*
* If defined, adjacent virtual memory mappings with identical attributes * If defined, adjacent virtual memory mappings with identical attributes
@ -356,7 +351,7 @@
/* #undef JEMALLOC_EXPORT */ /* #undef JEMALLOC_EXPORT */
/* config.malloc_conf options string. */ /* 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. */ /* If defined, jemalloc takes the malloc/free/etc. symbol names. */
/* #undef JEMALLOC_IS_MALLOC */ /* #undef JEMALLOC_IS_MALLOC */

View File

@ -0,0 +1,367 @@
/* include/jemalloc/internal/jemalloc_internal_defs.h. Generated from jemalloc_internal_defs.h.in by configure. */
#ifndef JEMALLOC_INTERNAL_DEFS_H_
#define JEMALLOC_INTERNAL_DEFS_H_
/*
* If JEMALLOC_PREFIX is defined via --with-jemalloc-prefix, it will cause all
* public APIs to be prefixed. This makes it possible, with some care, to use
* multiple allocators simultaneously.
*/
/* #undef JEMALLOC_PREFIX */
/* #undef JEMALLOC_CPREFIX */
/*
* Define overrides for non-standard allocator-related functions if they are
* present on the system.
*/
#define JEMALLOC_OVERRIDE___LIBC_CALLOC
#define JEMALLOC_OVERRIDE___LIBC_FREE
#define JEMALLOC_OVERRIDE___LIBC_MALLOC
#define JEMALLOC_OVERRIDE___LIBC_MEMALIGN
#define JEMALLOC_OVERRIDE___LIBC_REALLOC
#define JEMALLOC_OVERRIDE___LIBC_VALLOC
/* #undef JEMALLOC_OVERRIDE___POSIX_MEMALIGN */
/*
* JEMALLOC_PRIVATE_NAMESPACE is used as a prefix for all library-private APIs.
* For shared libraries, symbol visibility mechanisms prevent these symbols
* from being exported, but for static libraries, naming collisions are a real
* possibility.
*/
#define JEMALLOC_PRIVATE_NAMESPACE je_
/*
* Hyper-threaded CPUs may need a special instruction inside spin loops in
* order to yield to another virtual CPU.
*/
#define CPU_SPINWAIT
/* 1 if CPU_SPINWAIT is defined, 0 otherwise. */
#define HAVE_CPU_SPINWAIT 0
/*
* Number of significant bits in virtual addresses. This may be less than the
* 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 64
/* Defined if C11 atomics are available. */
#define JEMALLOC_C11_ATOMICS 1
/* Defined if GCC __atomic atomics are available. */
#define JEMALLOC_GCC_ATOMIC_ATOMICS 1
/* and the 8-bit variant support. */
#define JEMALLOC_GCC_U8_ATOMIC_ATOMICS 1
/* Defined if GCC __sync atomics are available. */
#define JEMALLOC_GCC_SYNC_ATOMICS 1
/* and the 8-bit variant support. */
#define JEMALLOC_GCC_U8_SYNC_ATOMICS 1
/*
* Defined if __builtin_clz() and __builtin_clzl() are available.
*/
#define JEMALLOC_HAVE_BUILTIN_CLZ
/*
* Defined if os_unfair_lock_*() functions are available, as provided by Darwin.
*/
/* #undef JEMALLOC_OS_UNFAIR_LOCK */
/* Defined if syscall(2) is usable. */
#define JEMALLOC_USE_SYSCALL
/*
* Defined if secure_getenv(3) is available.
*/
// #define JEMALLOC_HAVE_SECURE_GETENV
/*
* Defined if issetugid(2) is available.
*/
/* #undef JEMALLOC_HAVE_ISSETUGID */
/* Defined if pthread_atfork(3) is available. */
#define JEMALLOC_HAVE_PTHREAD_ATFORK
/* Defined if pthread_setname_np(3) is available. */
#define JEMALLOC_HAVE_PTHREAD_SETNAME_NP
/*
* Defined if clock_gettime(CLOCK_MONOTONIC_COARSE, ...) is available.
*/
#define JEMALLOC_HAVE_CLOCK_MONOTONIC_COARSE 1
/*
* Defined if clock_gettime(CLOCK_MONOTONIC, ...) is available.
*/
#define JEMALLOC_HAVE_CLOCK_MONOTONIC 1
/*
* Defined if mach_absolute_time() is available.
*/
/* #undef JEMALLOC_HAVE_MACH_ABSOLUTE_TIME */
/*
* Defined if _malloc_thread_cleanup() exists. At least in the case of
* FreeBSD, pthread_key_create() allocates, which if used during malloc
* bootstrapping will cause recursion into the pthreads library. Therefore, if
* _malloc_thread_cleanup() exists, use it as the basis for thread cleanup in
* malloc_tsd.
*/
/* #undef JEMALLOC_MALLOC_THREAD_CLEANUP */
/*
* Defined if threaded initialization is known to be safe on this platform.
* Among other things, it must be possible to initialize a mutex without
* triggering allocation in order for threaded allocation to be safe.
*/
#define JEMALLOC_THREADED_INIT
/*
* Defined if the pthreads implementation defines
* _pthread_mutex_init_calloc_cb(), in which case the function is used in order
* to avoid recursive allocation during mutex initialization.
*/
/* #undef JEMALLOC_MUTEX_INIT_CB */
/* Non-empty if the tls_model attribute is supported. */
#define JEMALLOC_TLS_MODEL __attribute__((tls_model("initial-exec")))
/*
* JEMALLOC_DEBUG enables assertions and other sanity checks, and disables
* inline functions.
*/
/* #undef JEMALLOC_DEBUG */
/* JEMALLOC_STATS enables statistics calculation. */
#define JEMALLOC_STATS
/* JEMALLOC_EXPERIMENTAL_SMALLOCX_API enables experimental smallocx API. */
/* #undef JEMALLOC_EXPERIMENTAL_SMALLOCX_API */
/* JEMALLOC_PROF enables allocation profiling. */
/* #undef JEMALLOC_PROF */
/* Use libunwind for profile backtracing if defined. */
/* #undef JEMALLOC_PROF_LIBUNWIND */
/* Use libgcc for profile backtracing if defined. */
/* #undef JEMALLOC_PROF_LIBGCC */
/* Use gcc intrinsics for profile backtracing if defined. */
/* #undef JEMALLOC_PROF_GCC */
/*
* JEMALLOC_DSS enables use of sbrk(2) to allocate extents from the data storage
* segment (DSS).
*/
#define JEMALLOC_DSS
/* Support memory filling (junk/zero). */
#define JEMALLOC_FILL
/* Support utrace(2)-based tracing. */
/* #undef JEMALLOC_UTRACE */
/* Support optional abort() on OOM. */
/* #undef JEMALLOC_XMALLOC */
/* Support lazy locking (avoid locking unless a second thread is launched). */
/* #undef JEMALLOC_LAZY_LOCK */
/*
* Minimum allocation alignment is 2^LG_QUANTUM bytes (ignoring tiny size
* classes).
*/
/* #undef LG_QUANTUM */
/* One page is 2^LG_PAGE bytes. */
#define LG_PAGE 16
/*
* 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 21
/*
* If defined, adjacent virtual memory mappings with identical attributes
* automatically coalesce, and they fragment when changes are made to subranges.
* This is the normal order of things for mmap()/munmap(), but on Windows
* VirtualAlloc()/VirtualFree() operations must be precisely matched, i.e.
* mappings do *not* coalesce/fragment.
*/
#define JEMALLOC_MAPS_COALESCE
/*
* If defined, retain memory for later reuse by default rather than using e.g.
* munmap() to unmap freed extents. This is enabled on 64-bit Linux because
* common sequences of mmap()/munmap() calls will cause virtual memory map
* holes.
*/
#define JEMALLOC_RETAIN
/* TLS is used to map arenas and magazine caches to threads. */
#define JEMALLOC_TLS
/*
* Used to mark unreachable code to quiet "end of non-void" compiler warnings.
* Don't use this directly; instead use unreachable() from util.h
*/
#define JEMALLOC_INTERNAL_UNREACHABLE __builtin_unreachable
/*
* ffs*() functions to use for bitmapping. Don't use these directly; instead,
* use ffs_*() from util.h.
*/
#define JEMALLOC_INTERNAL_FFSLL __builtin_ffsll
#define JEMALLOC_INTERNAL_FFSL __builtin_ffsl
#define JEMALLOC_INTERNAL_FFS __builtin_ffs
/*
* popcount*() functions to use for bitmapping.
*/
#define JEMALLOC_INTERNAL_POPCOUNTL __builtin_popcountl
#define JEMALLOC_INTERNAL_POPCOUNT __builtin_popcount
/*
* If defined, explicitly attempt to more uniformly distribute large allocation
* pointer alignments across all cache indices.
*/
#define JEMALLOC_CACHE_OBLIVIOUS
/*
* If defined, enable logging facilities. We make this a configure option to
* avoid taking extra branches everywhere.
*/
/* #undef JEMALLOC_LOG */
/*
* If defined, use readlinkat() (instead of readlink()) to follow
* /etc/malloc_conf.
*/
/* #undef JEMALLOC_READLINKAT */
/*
* Darwin (OS X) uses zones to work around Mach-O symbol override shortcomings.
*/
/* #undef JEMALLOC_ZONE */
/*
* Methods for determining whether the OS overcommits.
* JEMALLOC_PROC_SYS_VM_OVERCOMMIT_MEMORY: Linux's
* /proc/sys/vm.overcommit_memory file.
* JEMALLOC_SYSCTL_VM_OVERCOMMIT: FreeBSD's vm.overcommit sysctl.
*/
/* #undef JEMALLOC_SYSCTL_VM_OVERCOMMIT */
#define JEMALLOC_PROC_SYS_VM_OVERCOMMIT_MEMORY
/* Defined if madvise(2) is available. */
#define JEMALLOC_HAVE_MADVISE
/*
* Defined if transparent huge pages are supported via the MADV_[NO]HUGEPAGE
* arguments to madvise(2).
*/
#define JEMALLOC_HAVE_MADVISE_HUGE
/*
* Methods for purging unused pages differ between operating systems.
*
* madvise(..., MADV_FREE) : This marks pages as being unused, such that they
* will be discarded rather than swapped out.
* madvise(..., MADV_DONTNEED) : If JEMALLOC_PURGE_MADVISE_DONTNEED_ZEROS is
* defined, this immediately discards pages,
* such that new pages will be demand-zeroed if
* the address region is later touched;
* otherwise this behaves similarly to
* MADV_FREE, though typically with higher
* system overhead.
*/
#define JEMALLOC_PURGE_MADVISE_FREE
#define JEMALLOC_PURGE_MADVISE_DONTNEED
#define JEMALLOC_PURGE_MADVISE_DONTNEED_ZEROS
/* Defined if madvise(2) is available but MADV_FREE is not (x86 Linux only). */
/* #undef JEMALLOC_DEFINE_MADVISE_FREE */
/*
* Defined if MADV_DO[NT]DUMP is supported as an argument to madvise.
*/
#define JEMALLOC_MADVISE_DONTDUMP
/*
* Defined if transparent huge pages (THPs) are supported via the
* MADV_[NO]HUGEPAGE arguments to madvise(2), and THP support is enabled.
*/
/* #undef JEMALLOC_THP */
/* Define if operating system has alloca.h header. */
#define JEMALLOC_HAS_ALLOCA_H 1
/* C99 restrict keyword supported. */
#define JEMALLOC_HAS_RESTRICT 1
/* For use by hash code. */
/* #undef JEMALLOC_BIG_ENDIAN */
/* sizeof(int) == 2^LG_SIZEOF_INT. */
#define LG_SIZEOF_INT 2
/* sizeof(long) == 2^LG_SIZEOF_LONG. */
#define LG_SIZEOF_LONG 3
/* sizeof(long long) == 2^LG_SIZEOF_LONG_LONG. */
#define LG_SIZEOF_LONG_LONG 3
/* sizeof(intmax_t) == 2^LG_SIZEOF_INTMAX_T. */
#define LG_SIZEOF_INTMAX_T 3
/* glibc malloc hooks (__malloc_hook, __realloc_hook, __free_hook). */
#define JEMALLOC_GLIBC_MALLOC_HOOK
/* glibc memalign hook. */
#define JEMALLOC_GLIBC_MEMALIGN_HOOK
/* pthread support */
#define JEMALLOC_HAVE_PTHREAD
/* dlsym() support */
#define JEMALLOC_HAVE_DLSYM
/* Adaptive mutex support in pthreads. */
#define JEMALLOC_HAVE_PTHREAD_MUTEX_ADAPTIVE_NP
/* GNU specific sched_getcpu support */
#define JEMALLOC_HAVE_SCHED_GETCPU
/* GNU specific sched_setaffinity support */
#define JEMALLOC_HAVE_SCHED_SETAFFINITY
/*
* If defined, all the features necessary for background threads are present.
*/
#define JEMALLOC_BACKGROUND_THREAD 1
/*
* If defined, jemalloc symbols are not exported (doesn't work when
* JEMALLOC_PREFIX is not defined).
*/
/* #undef JEMALLOC_EXPORT */
/* config.malloc_conf options string. */
#define JEMALLOC_CONFIG_MALLOC_CONF "@JEMALLOC_CONFIG_MALLOC_CONF@"
/* If defined, jemalloc takes the malloc/free/etc. symbol names. */
#define JEMALLOC_IS_MALLOC 1
/*
* Defined if strerror_r returns char * if _GNU_SOURCE is defined.
*/
#define JEMALLOC_STRERROR_R_RETURNS_CHAR_WITH_GNU_SOURCE
/* Performs additional safety checks when defined. */
/* #undef JEMALLOC_OPT_SAFETY_CHECKS */
#endif /* JEMALLOC_INTERNAL_DEFS_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,9 @@
if (NOT ARCH_ARM) if(ARCH_AMD64)
option (ENABLE_CPUID "Enable libcpuid library (only internal)" ${ENABLE_LIBRARIES}) option (ENABLE_CPUID "Enable libcpuid library (only internal)" ${ENABLE_LIBRARIES})
endif() elseif(ENABLE_CPUID)
message (${RECONFIGURE_MESSAGE_LEVEL} "libcpuid is only supported on x86_64")
if (ARCH_ARM AND ENABLE_CPUID)
message (${RECONFIGURE_MESSAGE_LEVEL} "cpuid is not supported on ARM")
set (ENABLE_CPUID 0) set (ENABLE_CPUID 0)
endif () endif()
if (NOT ENABLE_CPUID) if (NOT ENABLE_CPUID)
add_library (cpuid INTERFACE) add_library (cpuid INTERFACE)

2
contrib/libcxx vendored

@ -1 +1 @@
Subproject commit 8b80a151d12b98ffe2d0c22f7cec12c3b9ff88d7 Subproject commit 2fa892f69acbaa40f8a18c6484854a6183a34482

View File

@ -1,49 +1,49 @@
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
set(LIBCXX_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libcxx) set(LIBCXX_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libcxx")
set(SRCS set(SRCS
${LIBCXX_SOURCE_DIR}/src/algorithm.cpp "${LIBCXX_SOURCE_DIR}/src/algorithm.cpp"
${LIBCXX_SOURCE_DIR}/src/any.cpp "${LIBCXX_SOURCE_DIR}/src/any.cpp"
${LIBCXX_SOURCE_DIR}/src/atomic.cpp "${LIBCXX_SOURCE_DIR}/src/atomic.cpp"
${LIBCXX_SOURCE_DIR}/src/barrier.cpp "${LIBCXX_SOURCE_DIR}/src/barrier.cpp"
${LIBCXX_SOURCE_DIR}/src/bind.cpp "${LIBCXX_SOURCE_DIR}/src/bind.cpp"
${LIBCXX_SOURCE_DIR}/src/charconv.cpp "${LIBCXX_SOURCE_DIR}/src/charconv.cpp"
${LIBCXX_SOURCE_DIR}/src/chrono.cpp "${LIBCXX_SOURCE_DIR}/src/chrono.cpp"
${LIBCXX_SOURCE_DIR}/src/condition_variable.cpp "${LIBCXX_SOURCE_DIR}/src/condition_variable.cpp"
${LIBCXX_SOURCE_DIR}/src/condition_variable_destructor.cpp "${LIBCXX_SOURCE_DIR}/src/condition_variable_destructor.cpp"
${LIBCXX_SOURCE_DIR}/src/debug.cpp "${LIBCXX_SOURCE_DIR}/src/debug.cpp"
${LIBCXX_SOURCE_DIR}/src/exception.cpp "${LIBCXX_SOURCE_DIR}/src/exception.cpp"
${LIBCXX_SOURCE_DIR}/src/experimental/memory_resource.cpp "${LIBCXX_SOURCE_DIR}/src/experimental/memory_resource.cpp"
${LIBCXX_SOURCE_DIR}/src/filesystem/directory_iterator.cpp "${LIBCXX_SOURCE_DIR}/src/filesystem/directory_iterator.cpp"
${LIBCXX_SOURCE_DIR}/src/filesystem/int128_builtins.cpp "${LIBCXX_SOURCE_DIR}/src/filesystem/int128_builtins.cpp"
${LIBCXX_SOURCE_DIR}/src/filesystem/operations.cpp "${LIBCXX_SOURCE_DIR}/src/filesystem/operations.cpp"
${LIBCXX_SOURCE_DIR}/src/functional.cpp "${LIBCXX_SOURCE_DIR}/src/functional.cpp"
${LIBCXX_SOURCE_DIR}/src/future.cpp "${LIBCXX_SOURCE_DIR}/src/future.cpp"
${LIBCXX_SOURCE_DIR}/src/hash.cpp "${LIBCXX_SOURCE_DIR}/src/hash.cpp"
${LIBCXX_SOURCE_DIR}/src/ios.cpp "${LIBCXX_SOURCE_DIR}/src/ios.cpp"
${LIBCXX_SOURCE_DIR}/src/ios.instantiations.cpp "${LIBCXX_SOURCE_DIR}/src/ios.instantiations.cpp"
${LIBCXX_SOURCE_DIR}/src/iostream.cpp "${LIBCXX_SOURCE_DIR}/src/iostream.cpp"
${LIBCXX_SOURCE_DIR}/src/locale.cpp "${LIBCXX_SOURCE_DIR}/src/locale.cpp"
${LIBCXX_SOURCE_DIR}/src/memory.cpp "${LIBCXX_SOURCE_DIR}/src/memory.cpp"
${LIBCXX_SOURCE_DIR}/src/mutex.cpp "${LIBCXX_SOURCE_DIR}/src/mutex.cpp"
${LIBCXX_SOURCE_DIR}/src/mutex_destructor.cpp "${LIBCXX_SOURCE_DIR}/src/mutex_destructor.cpp"
${LIBCXX_SOURCE_DIR}/src/new.cpp "${LIBCXX_SOURCE_DIR}/src/new.cpp"
${LIBCXX_SOURCE_DIR}/src/optional.cpp "${LIBCXX_SOURCE_DIR}/src/optional.cpp"
${LIBCXX_SOURCE_DIR}/src/random.cpp "${LIBCXX_SOURCE_DIR}/src/random.cpp"
${LIBCXX_SOURCE_DIR}/src/random_shuffle.cpp "${LIBCXX_SOURCE_DIR}/src/random_shuffle.cpp"
${LIBCXX_SOURCE_DIR}/src/regex.cpp "${LIBCXX_SOURCE_DIR}/src/regex.cpp"
${LIBCXX_SOURCE_DIR}/src/shared_mutex.cpp "${LIBCXX_SOURCE_DIR}/src/shared_mutex.cpp"
${LIBCXX_SOURCE_DIR}/src/stdexcept.cpp "${LIBCXX_SOURCE_DIR}/src/stdexcept.cpp"
${LIBCXX_SOURCE_DIR}/src/string.cpp "${LIBCXX_SOURCE_DIR}/src/string.cpp"
${LIBCXX_SOURCE_DIR}/src/strstream.cpp "${LIBCXX_SOURCE_DIR}/src/strstream.cpp"
${LIBCXX_SOURCE_DIR}/src/system_error.cpp "${LIBCXX_SOURCE_DIR}/src/system_error.cpp"
${LIBCXX_SOURCE_DIR}/src/thread.cpp "${LIBCXX_SOURCE_DIR}/src/thread.cpp"
${LIBCXX_SOURCE_DIR}/src/typeinfo.cpp "${LIBCXX_SOURCE_DIR}/src/typeinfo.cpp"
${LIBCXX_SOURCE_DIR}/src/utility.cpp "${LIBCXX_SOURCE_DIR}/src/utility.cpp"
${LIBCXX_SOURCE_DIR}/src/valarray.cpp "${LIBCXX_SOURCE_DIR}/src/valarray.cpp"
${LIBCXX_SOURCE_DIR}/src/variant.cpp "${LIBCXX_SOURCE_DIR}/src/variant.cpp"
${LIBCXX_SOURCE_DIR}/src/vector.cpp "${LIBCXX_SOURCE_DIR}/src/vector.cpp"
) )
add_library(cxx ${SRCS}) add_library(cxx ${SRCS})
@ -56,6 +56,11 @@ if (USE_UNWIND)
target_compile_definitions(cxx PUBLIC -DSTD_EXCEPTION_HAS_STACK_TRACE=1) target_compile_definitions(cxx PUBLIC -DSTD_EXCEPTION_HAS_STACK_TRACE=1)
endif () 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++>) target_compile_options(cxx PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-nostdinc++>)
# Third party library may have substandard code. # Third party library may have substandard code.

View File

@ -1,24 +1,24 @@
set(LIBCXXABI_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libcxxabi) set(LIBCXXABI_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libcxxabi")
set(SRCS set(SRCS
${LIBCXXABI_SOURCE_DIR}/src/stdlib_stdexcept.cpp "${LIBCXXABI_SOURCE_DIR}/src/stdlib_stdexcept.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_virtual.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_virtual.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_thread_atexit.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_thread_atexit.cpp"
${LIBCXXABI_SOURCE_DIR}/src/fallback_malloc.cpp "${LIBCXXABI_SOURCE_DIR}/src/fallback_malloc.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_guard.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_guard.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_default_handlers.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_default_handlers.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_personality.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_personality.cpp"
${LIBCXXABI_SOURCE_DIR}/src/stdlib_exception.cpp "${LIBCXXABI_SOURCE_DIR}/src/stdlib_exception.cpp"
${LIBCXXABI_SOURCE_DIR}/src/abort_message.cpp "${LIBCXXABI_SOURCE_DIR}/src/abort_message.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_demangle.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_demangle.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_exception.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_exception.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_handlers.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_handlers.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_exception_storage.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_exception_storage.cpp"
${LIBCXXABI_SOURCE_DIR}/src/private_typeinfo.cpp "${LIBCXXABI_SOURCE_DIR}/src/private_typeinfo.cpp"
${LIBCXXABI_SOURCE_DIR}/src/stdlib_typeinfo.cpp "${LIBCXXABI_SOURCE_DIR}/src/stdlib_typeinfo.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_aux_runtime.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_aux_runtime.cpp"
${LIBCXXABI_SOURCE_DIR}/src/cxa_vector.cpp "${LIBCXXABI_SOURCE_DIR}/src/cxa_vector.cpp"
${LIBCXXABI_SOURCE_DIR}/src/stdlib_new_delete.cpp "${LIBCXXABI_SOURCE_DIR}/src/stdlib_new_delete.cpp"
) )
add_library(cxxabi ${SRCS}) add_library(cxxabi ${SRCS})

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@ ADD_DEFINITIONS(-D_GLIBCXX_USE_NANOSLEEP)
TRY_COMPILE(STRERROR_R_RETURN_INT TRY_COMPILE(STRERROR_R_RETURN_INT
${CMAKE_CURRENT_BINARY_DIR} ${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...'" CMAKE_FLAGS "-DCMAKE_CXX_LINK_EXECUTABLE='echo not linking now...'"
OUTPUT_VARIABLE OUTPUT) OUTPUT_VARIABLE OUTPUT)
@ -36,13 +36,13 @@ ENDIF(STRERROR_R_RETURN_INT)
TRY_COMPILE(HAVE_STEADY_CLOCK TRY_COMPILE(HAVE_STEADY_CLOCK
${CMAKE_CURRENT_BINARY_DIR} ${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...'" CMAKE_FLAGS "-DCMAKE_CXX_LINK_EXECUTABLE='echo not linking now...'"
OUTPUT_VARIABLE OUTPUT) OUTPUT_VARIABLE OUTPUT)
TRY_COMPILE(HAVE_NESTED_EXCEPTION TRY_COMPILE(HAVE_NESTED_EXCEPTION
${CMAKE_CURRENT_BINARY_DIR} ${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...'" CMAKE_FLAGS "-DCMAKE_CXX_LINK_EXECUTABLE='echo not linking now...'"
OUTPUT_VARIABLE OUTPUT) OUTPUT_VARIABLE OUTPUT)

View File

@ -24,9 +24,9 @@ else()
endif() endif()
# project and source dir # project and source dir
set(HDFS3_ROOT_DIR ${ClickHouse_SOURCE_DIR}/contrib/libhdfs3) set(HDFS3_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/libhdfs3")
set(HDFS3_SOURCE_DIR ${HDFS3_ROOT_DIR}/src) set(HDFS3_SOURCE_DIR "${HDFS3_ROOT_DIR}/src")
set(HDFS3_COMMON_DIR ${HDFS3_SOURCE_DIR}/common) set(HDFS3_COMMON_DIR "${HDFS3_SOURCE_DIR}/common")
# module # module
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH}) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
@ -35,165 +35,165 @@ include(Options)
# source # source
set(PROTO_FILES set(PROTO_FILES
#${HDFS3_SOURCE_DIR}/proto/encryption.proto #"${HDFS3_SOURCE_DIR}/proto/encryption.proto"
${HDFS3_SOURCE_DIR}/proto/ClientDatanodeProtocol.proto "${HDFS3_SOURCE_DIR}/proto/ClientDatanodeProtocol.proto"
${HDFS3_SOURCE_DIR}/proto/hdfs.proto "${HDFS3_SOURCE_DIR}/proto/hdfs.proto"
${HDFS3_SOURCE_DIR}/proto/Security.proto "${HDFS3_SOURCE_DIR}/proto/Security.proto"
${HDFS3_SOURCE_DIR}/proto/ProtobufRpcEngine.proto "${HDFS3_SOURCE_DIR}/proto/ProtobufRpcEngine.proto"
${HDFS3_SOURCE_DIR}/proto/ClientNamenodeProtocol.proto "${HDFS3_SOURCE_DIR}/proto/ClientNamenodeProtocol.proto"
${HDFS3_SOURCE_DIR}/proto/IpcConnectionContext.proto "${HDFS3_SOURCE_DIR}/proto/IpcConnectionContext.proto"
${HDFS3_SOURCE_DIR}/proto/RpcHeader.proto "${HDFS3_SOURCE_DIR}/proto/RpcHeader.proto"
${HDFS3_SOURCE_DIR}/proto/datatransfer.proto "${HDFS3_SOURCE_DIR}/proto/datatransfer.proto"
) )
if(USE_PROTOBUF) if(USE_PROTOBUF)
PROTOBUF_GENERATE_CPP(PROTO_SOURCES PROTO_HEADERS ${PROTO_FILES}) PROTOBUF_GENERATE_CPP(PROTO_SOURCES PROTO_HEADERS ${PROTO_FILES})
endif() 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 set(SRCS
${HDFS3_SOURCE_DIR}/network/TcpSocket.cpp "${HDFS3_SOURCE_DIR}/network/TcpSocket.cpp"
${HDFS3_SOURCE_DIR}/network/DomainSocket.cpp "${HDFS3_SOURCE_DIR}/network/DomainSocket.cpp"
${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.cpp "${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.cpp"
${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.cpp "${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.cpp"
${HDFS3_SOURCE_DIR}/client/Pipeline.cpp "${HDFS3_SOURCE_DIR}/client/Pipeline.cpp"
${HDFS3_SOURCE_DIR}/client/Hdfs.cpp "${HDFS3_SOURCE_DIR}/client/Hdfs.cpp"
${HDFS3_SOURCE_DIR}/client/Packet.cpp "${HDFS3_SOURCE_DIR}/client/Packet.cpp"
${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.cpp "${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.cpp"
${HDFS3_SOURCE_DIR}/client/KerberosName.cpp "${HDFS3_SOURCE_DIR}/client/KerberosName.cpp"
${HDFS3_SOURCE_DIR}/client/PacketHeader.cpp "${HDFS3_SOURCE_DIR}/client/PacketHeader.cpp"
${HDFS3_SOURCE_DIR}/client/LocalBlockReader.cpp "${HDFS3_SOURCE_DIR}/client/LocalBlockReader.cpp"
${HDFS3_SOURCE_DIR}/client/UserInfo.cpp "${HDFS3_SOURCE_DIR}/client/UserInfo.cpp"
${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.cpp "${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.cpp"
${HDFS3_SOURCE_DIR}/client/Permission.cpp "${HDFS3_SOURCE_DIR}/client/Permission.cpp"
${HDFS3_SOURCE_DIR}/client/FileSystemImpl.cpp "${HDFS3_SOURCE_DIR}/client/FileSystemImpl.cpp"
${HDFS3_SOURCE_DIR}/client/DirectoryIterator.cpp "${HDFS3_SOURCE_DIR}/client/DirectoryIterator.cpp"
${HDFS3_SOURCE_DIR}/client/FileSystemKey.cpp "${HDFS3_SOURCE_DIR}/client/FileSystemKey.cpp"
${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.cpp "${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.cpp"
${HDFS3_SOURCE_DIR}/client/LeaseRenewer.cpp "${HDFS3_SOURCE_DIR}/client/LeaseRenewer.cpp"
${HDFS3_SOURCE_DIR}/client/PeerCache.cpp "${HDFS3_SOURCE_DIR}/client/PeerCache.cpp"
${HDFS3_SOURCE_DIR}/client/InputStream.cpp "${HDFS3_SOURCE_DIR}/client/InputStream.cpp"
${HDFS3_SOURCE_DIR}/client/FileSystem.cpp "${HDFS3_SOURCE_DIR}/client/FileSystem.cpp"
${HDFS3_SOURCE_DIR}/client/InputStreamImpl.cpp "${HDFS3_SOURCE_DIR}/client/InputStreamImpl.cpp"
${HDFS3_SOURCE_DIR}/client/Token.cpp "${HDFS3_SOURCE_DIR}/client/Token.cpp"
${HDFS3_SOURCE_DIR}/client/PacketPool.cpp "${HDFS3_SOURCE_DIR}/client/PacketPool.cpp"
${HDFS3_SOURCE_DIR}/client/OutputStream.cpp "${HDFS3_SOURCE_DIR}/client/OutputStream.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcClient.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcClient.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcChannel.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcChannel.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcAuth.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcAuth.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcConfig.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcConfig.cpp"
${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.cpp "${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.cpp"
${HDFS3_SOURCE_DIR}/rpc/SaslClient.cpp "${HDFS3_SOURCE_DIR}/rpc/SaslClient.cpp"
${HDFS3_SOURCE_DIR}/server/Datanode.cpp "${HDFS3_SOURCE_DIR}/server/Datanode.cpp"
${HDFS3_SOURCE_DIR}/server/LocatedBlocks.cpp "${HDFS3_SOURCE_DIR}/server/LocatedBlocks.cpp"
${HDFS3_SOURCE_DIR}/server/NamenodeProxy.cpp "${HDFS3_SOURCE_DIR}/server/NamenodeProxy.cpp"
${HDFS3_SOURCE_DIR}/server/NamenodeImpl.cpp "${HDFS3_SOURCE_DIR}/server/NamenodeImpl.cpp"
${HDFS3_SOURCE_DIR}/server/NamenodeInfo.cpp "${HDFS3_SOURCE_DIR}/server/NamenodeInfo.cpp"
${HDFS3_SOURCE_DIR}/common/WritableUtils.cpp "${HDFS3_SOURCE_DIR}/common/WritableUtils.cpp"
${HDFS3_SOURCE_DIR}/common/ExceptionInternal.cpp "${HDFS3_SOURCE_DIR}/common/ExceptionInternal.cpp"
${HDFS3_SOURCE_DIR}/common/SessionConfig.cpp "${HDFS3_SOURCE_DIR}/common/SessionConfig.cpp"
${HDFS3_SOURCE_DIR}/common/StackPrinter.cpp "${HDFS3_SOURCE_DIR}/common/StackPrinter.cpp"
${HDFS3_SOURCE_DIR}/common/Exception.cpp "${HDFS3_SOURCE_DIR}/common/Exception.cpp"
${HDFS3_SOURCE_DIR}/common/Logger.cpp "${HDFS3_SOURCE_DIR}/common/Logger.cpp"
${HDFS3_SOURCE_DIR}/common/CFileWrapper.cpp "${HDFS3_SOURCE_DIR}/common/CFileWrapper.cpp"
${HDFS3_SOURCE_DIR}/common/XmlConfig.cpp "${HDFS3_SOURCE_DIR}/common/XmlConfig.cpp"
${HDFS3_SOURCE_DIR}/common/WriteBuffer.cpp "${HDFS3_SOURCE_DIR}/common/WriteBuffer.cpp"
${HDFS3_SOURCE_DIR}/common/HWCrc32c.cpp "${HDFS3_SOURCE_DIR}/common/HWCrc32c.cpp"
${HDFS3_SOURCE_DIR}/common/MappedFileWrapper.cpp "${HDFS3_SOURCE_DIR}/common/MappedFileWrapper.cpp"
${HDFS3_SOURCE_DIR}/common/Hash.cpp "${HDFS3_SOURCE_DIR}/common/Hash.cpp"
${HDFS3_SOURCE_DIR}/common/SWCrc32c.cpp "${HDFS3_SOURCE_DIR}/common/SWCrc32c.cpp"
${HDFS3_SOURCE_DIR}/common/Thread.cpp "${HDFS3_SOURCE_DIR}/common/Thread.cpp"
${HDFS3_SOURCE_DIR}/network/TcpSocket.h "${HDFS3_SOURCE_DIR}/network/TcpSocket.h"
${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.h "${HDFS3_SOURCE_DIR}/network/BufferedSocketReader.h"
${HDFS3_SOURCE_DIR}/network/Socket.h "${HDFS3_SOURCE_DIR}/network/Socket.h"
${HDFS3_SOURCE_DIR}/network/DomainSocket.h "${HDFS3_SOURCE_DIR}/network/DomainSocket.h"
${HDFS3_SOURCE_DIR}/network/Syscall.h "${HDFS3_SOURCE_DIR}/network/Syscall.h"
${HDFS3_SOURCE_DIR}/client/InputStreamImpl.h "${HDFS3_SOURCE_DIR}/client/InputStreamImpl.h"
${HDFS3_SOURCE_DIR}/client/FileSystem.h "${HDFS3_SOURCE_DIR}/client/FileSystem.h"
${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.h "${HDFS3_SOURCE_DIR}/client/ReadShortCircuitInfo.h"
${HDFS3_SOURCE_DIR}/client/InputStreamInter.h "${HDFS3_SOURCE_DIR}/client/InputStreamInter.h"
${HDFS3_SOURCE_DIR}/client/FileSystemImpl.h "${HDFS3_SOURCE_DIR}/client/FileSystemImpl.h"
${HDFS3_SOURCE_DIR}/client/PacketPool.h "${HDFS3_SOURCE_DIR}/client/PacketPool.h"
${HDFS3_SOURCE_DIR}/client/Pipeline.h "${HDFS3_SOURCE_DIR}/client/Pipeline.h"
${HDFS3_SOURCE_DIR}/client/OutputStreamInter.h "${HDFS3_SOURCE_DIR}/client/OutputStreamInter.h"
${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.h "${HDFS3_SOURCE_DIR}/client/RemoteBlockReader.h"
${HDFS3_SOURCE_DIR}/client/Token.h "${HDFS3_SOURCE_DIR}/client/Token.h"
${HDFS3_SOURCE_DIR}/client/KerberosName.h "${HDFS3_SOURCE_DIR}/client/KerberosName.h"
${HDFS3_SOURCE_DIR}/client/DirectoryIterator.h "${HDFS3_SOURCE_DIR}/client/DirectoryIterator.h"
${HDFS3_SOURCE_DIR}/client/hdfs.h "${HDFS3_SOURCE_DIR}/client/hdfs.h"
${HDFS3_SOURCE_DIR}/client/FileSystemStats.h "${HDFS3_SOURCE_DIR}/client/FileSystemStats.h"
${HDFS3_SOURCE_DIR}/client/FileSystemKey.h "${HDFS3_SOURCE_DIR}/client/FileSystemKey.h"
${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.h "${HDFS3_SOURCE_DIR}/client/DataTransferProtocolSender.h"
${HDFS3_SOURCE_DIR}/client/Packet.h "${HDFS3_SOURCE_DIR}/client/Packet.h"
${HDFS3_SOURCE_DIR}/client/PacketHeader.h "${HDFS3_SOURCE_DIR}/client/PacketHeader.h"
${HDFS3_SOURCE_DIR}/client/FileSystemInter.h "${HDFS3_SOURCE_DIR}/client/FileSystemInter.h"
${HDFS3_SOURCE_DIR}/client/LocalBlockReader.h "${HDFS3_SOURCE_DIR}/client/LocalBlockReader.h"
${HDFS3_SOURCE_DIR}/client/TokenInternal.h "${HDFS3_SOURCE_DIR}/client/TokenInternal.h"
${HDFS3_SOURCE_DIR}/client/InputStream.h "${HDFS3_SOURCE_DIR}/client/InputStream.h"
${HDFS3_SOURCE_DIR}/client/PipelineAck.h "${HDFS3_SOURCE_DIR}/client/PipelineAck.h"
${HDFS3_SOURCE_DIR}/client/BlockReader.h "${HDFS3_SOURCE_DIR}/client/BlockReader.h"
${HDFS3_SOURCE_DIR}/client/Permission.h "${HDFS3_SOURCE_DIR}/client/Permission.h"
${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.h "${HDFS3_SOURCE_DIR}/client/OutputStreamImpl.h"
${HDFS3_SOURCE_DIR}/client/LeaseRenewer.h "${HDFS3_SOURCE_DIR}/client/LeaseRenewer.h"
${HDFS3_SOURCE_DIR}/client/UserInfo.h "${HDFS3_SOURCE_DIR}/client/UserInfo.h"
${HDFS3_SOURCE_DIR}/client/PeerCache.h "${HDFS3_SOURCE_DIR}/client/PeerCache.h"
${HDFS3_SOURCE_DIR}/client/OutputStream.h "${HDFS3_SOURCE_DIR}/client/OutputStream.h"
${HDFS3_SOURCE_DIR}/client/FileStatus.h "${HDFS3_SOURCE_DIR}/client/FileStatus.h"
${HDFS3_SOURCE_DIR}/client/DataTransferProtocol.h "${HDFS3_SOURCE_DIR}/client/DataTransferProtocol.h"
${HDFS3_SOURCE_DIR}/client/BlockLocation.h "${HDFS3_SOURCE_DIR}/client/BlockLocation.h"
${HDFS3_SOURCE_DIR}/rpc/RpcConfig.h "${HDFS3_SOURCE_DIR}/rpc/RpcConfig.h"
${HDFS3_SOURCE_DIR}/rpc/SaslClient.h "${HDFS3_SOURCE_DIR}/rpc/SaslClient.h"
${HDFS3_SOURCE_DIR}/rpc/RpcAuth.h "${HDFS3_SOURCE_DIR}/rpc/RpcAuth.h"
${HDFS3_SOURCE_DIR}/rpc/RpcClient.h "${HDFS3_SOURCE_DIR}/rpc/RpcClient.h"
${HDFS3_SOURCE_DIR}/rpc/RpcCall.h "${HDFS3_SOURCE_DIR}/rpc/RpcCall.h"
${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.h "${HDFS3_SOURCE_DIR}/rpc/RpcContentWrapper.h"
${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.h "${HDFS3_SOURCE_DIR}/rpc/RpcProtocolInfo.h"
${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.h "${HDFS3_SOURCE_DIR}/rpc/RpcRemoteCall.h"
${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.h "${HDFS3_SOURCE_DIR}/rpc/RpcServerInfo.h"
${HDFS3_SOURCE_DIR}/rpc/RpcChannel.h "${HDFS3_SOURCE_DIR}/rpc/RpcChannel.h"
${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.h "${HDFS3_SOURCE_DIR}/rpc/RpcChannelKey.h"
${HDFS3_SOURCE_DIR}/server/BlockLocalPathInfo.h "${HDFS3_SOURCE_DIR}/server/BlockLocalPathInfo.h"
${HDFS3_SOURCE_DIR}/server/LocatedBlocks.h "${HDFS3_SOURCE_DIR}/server/LocatedBlocks.h"
${HDFS3_SOURCE_DIR}/server/DatanodeInfo.h "${HDFS3_SOURCE_DIR}/server/DatanodeInfo.h"
${HDFS3_SOURCE_DIR}/server/RpcHelper.h "${HDFS3_SOURCE_DIR}/server/RpcHelper.h"
${HDFS3_SOURCE_DIR}/server/ExtendedBlock.h "${HDFS3_SOURCE_DIR}/server/ExtendedBlock.h"
${HDFS3_SOURCE_DIR}/server/NamenodeInfo.h "${HDFS3_SOURCE_DIR}/server/NamenodeInfo.h"
${HDFS3_SOURCE_DIR}/server/NamenodeImpl.h "${HDFS3_SOURCE_DIR}/server/NamenodeImpl.h"
${HDFS3_SOURCE_DIR}/server/LocatedBlock.h "${HDFS3_SOURCE_DIR}/server/LocatedBlock.h"
${HDFS3_SOURCE_DIR}/server/NamenodeProxy.h "${HDFS3_SOURCE_DIR}/server/NamenodeProxy.h"
${HDFS3_SOURCE_DIR}/server/Datanode.h "${HDFS3_SOURCE_DIR}/server/Datanode.h"
${HDFS3_SOURCE_DIR}/server/Namenode.h "${HDFS3_SOURCE_DIR}/server/Namenode.h"
${HDFS3_SOURCE_DIR}/common/XmlConfig.h "${HDFS3_SOURCE_DIR}/common/XmlConfig.h"
${HDFS3_SOURCE_DIR}/common/Logger.h "${HDFS3_SOURCE_DIR}/common/Logger.h"
${HDFS3_SOURCE_DIR}/common/WriteBuffer.h "${HDFS3_SOURCE_DIR}/common/WriteBuffer.h"
${HDFS3_SOURCE_DIR}/common/HWCrc32c.h "${HDFS3_SOURCE_DIR}/common/HWCrc32c.h"
${HDFS3_SOURCE_DIR}/common/Checksum.h "${HDFS3_SOURCE_DIR}/common/Checksum.h"
${HDFS3_SOURCE_DIR}/common/SessionConfig.h "${HDFS3_SOURCE_DIR}/common/SessionConfig.h"
${HDFS3_SOURCE_DIR}/common/Unordered.h "${HDFS3_SOURCE_DIR}/common/Unordered.h"
${HDFS3_SOURCE_DIR}/common/BigEndian.h "${HDFS3_SOURCE_DIR}/common/BigEndian.h"
${HDFS3_SOURCE_DIR}/common/Thread.h "${HDFS3_SOURCE_DIR}/common/Thread.h"
${HDFS3_SOURCE_DIR}/common/StackPrinter.h "${HDFS3_SOURCE_DIR}/common/StackPrinter.h"
${HDFS3_SOURCE_DIR}/common/Exception.h "${HDFS3_SOURCE_DIR}/common/Exception.h"
${HDFS3_SOURCE_DIR}/common/WritableUtils.h "${HDFS3_SOURCE_DIR}/common/WritableUtils.h"
${HDFS3_SOURCE_DIR}/common/StringUtil.h "${HDFS3_SOURCE_DIR}/common/StringUtil.h"
${HDFS3_SOURCE_DIR}/common/LruMap.h "${HDFS3_SOURCE_DIR}/common/LruMap.h"
${HDFS3_SOURCE_DIR}/common/Function.h "${HDFS3_SOURCE_DIR}/common/Function.h"
${HDFS3_SOURCE_DIR}/common/DateTime.h "${HDFS3_SOURCE_DIR}/common/DateTime.h"
${HDFS3_SOURCE_DIR}/common/Hash.h "${HDFS3_SOURCE_DIR}/common/Hash.h"
${HDFS3_SOURCE_DIR}/common/SWCrc32c.h "${HDFS3_SOURCE_DIR}/common/SWCrc32c.h"
${HDFS3_SOURCE_DIR}/common/ExceptionInternal.h "${HDFS3_SOURCE_DIR}/common/ExceptionInternal.h"
${HDFS3_SOURCE_DIR}/common/Memory.h "${HDFS3_SOURCE_DIR}/common/Memory.h"
${HDFS3_SOURCE_DIR}/common/FileWrapper.h "${HDFS3_SOURCE_DIR}/common/FileWrapper.h"
) )
# old kernels (< 3.17) doesn't have SYS_getrandom. Always use POSIX implementation to have better compatibility # 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 # target
add_library(hdfs3 ${SRCS} ${PROTO_SOURCES} ${PROTO_HEADERS}) add_library(hdfs3 ${SRCS} ${PROTO_SOURCES} ${PROTO_HEADERS})

View File

@ -1,58 +1,58 @@
set(LIBPQ_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libpq) set(LIBPQ_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libpq")
set(SRCS set(SRCS
${LIBPQ_SOURCE_DIR}/fe-auth.c "${LIBPQ_SOURCE_DIR}/fe-auth.c"
${LIBPQ_SOURCE_DIR}/fe-auth-scram.c "${LIBPQ_SOURCE_DIR}/fe-auth-scram.c"
${LIBPQ_SOURCE_DIR}/fe-connect.c "${LIBPQ_SOURCE_DIR}/fe-connect.c"
${LIBPQ_SOURCE_DIR}/fe-exec.c "${LIBPQ_SOURCE_DIR}/fe-exec.c"
${LIBPQ_SOURCE_DIR}/fe-lobj.c "${LIBPQ_SOURCE_DIR}/fe-lobj.c"
${LIBPQ_SOURCE_DIR}/fe-misc.c "${LIBPQ_SOURCE_DIR}/fe-misc.c"
${LIBPQ_SOURCE_DIR}/fe-print.c "${LIBPQ_SOURCE_DIR}/fe-print.c"
${LIBPQ_SOURCE_DIR}/fe-protocol2.c "${LIBPQ_SOURCE_DIR}/fe-protocol2.c"
${LIBPQ_SOURCE_DIR}/fe-protocol3.c "${LIBPQ_SOURCE_DIR}/fe-protocol3.c"
${LIBPQ_SOURCE_DIR}/fe-secure.c "${LIBPQ_SOURCE_DIR}/fe-secure.c"
${LIBPQ_SOURCE_DIR}/fe-secure-common.c "${LIBPQ_SOURCE_DIR}/fe-secure-common.c"
${LIBPQ_SOURCE_DIR}/fe-secure-openssl.c "${LIBPQ_SOURCE_DIR}/fe-secure-openssl.c"
${LIBPQ_SOURCE_DIR}/legacy-pqsignal.c "${LIBPQ_SOURCE_DIR}/legacy-pqsignal.c"
${LIBPQ_SOURCE_DIR}/libpq-events.c "${LIBPQ_SOURCE_DIR}/libpq-events.c"
${LIBPQ_SOURCE_DIR}/pqexpbuffer.c "${LIBPQ_SOURCE_DIR}/pqexpbuffer.c"
${LIBPQ_SOURCE_DIR}/common/scram-common.c "${LIBPQ_SOURCE_DIR}/common/scram-common.c"
${LIBPQ_SOURCE_DIR}/common/sha2_openssl.c "${LIBPQ_SOURCE_DIR}/common/sha2_openssl.c"
${LIBPQ_SOURCE_DIR}/common/md5.c "${LIBPQ_SOURCE_DIR}/common/md5.c"
${LIBPQ_SOURCE_DIR}/common/saslprep.c "${LIBPQ_SOURCE_DIR}/common/saslprep.c"
${LIBPQ_SOURCE_DIR}/common/unicode_norm.c "${LIBPQ_SOURCE_DIR}/common/unicode_norm.c"
${LIBPQ_SOURCE_DIR}/common/ip.c "${LIBPQ_SOURCE_DIR}/common/ip.c"
${LIBPQ_SOURCE_DIR}/common/jsonapi.c "${LIBPQ_SOURCE_DIR}/common/jsonapi.c"
${LIBPQ_SOURCE_DIR}/common/wchar.c "${LIBPQ_SOURCE_DIR}/common/wchar.c"
${LIBPQ_SOURCE_DIR}/common/base64.c "${LIBPQ_SOURCE_DIR}/common/base64.c"
${LIBPQ_SOURCE_DIR}/common/link-canary.c "${LIBPQ_SOURCE_DIR}/common/link-canary.c"
${LIBPQ_SOURCE_DIR}/common/fe_memutils.c "${LIBPQ_SOURCE_DIR}/common/fe_memutils.c"
${LIBPQ_SOURCE_DIR}/common/string.c "${LIBPQ_SOURCE_DIR}/common/string.c"
${LIBPQ_SOURCE_DIR}/common/pg_get_line.c "${LIBPQ_SOURCE_DIR}/common/pg_get_line.c"
${LIBPQ_SOURCE_DIR}/common/stringinfo.c "${LIBPQ_SOURCE_DIR}/common/stringinfo.c"
${LIBPQ_SOURCE_DIR}/common/psprintf.c "${LIBPQ_SOURCE_DIR}/common/psprintf.c"
${LIBPQ_SOURCE_DIR}/common/encnames.c "${LIBPQ_SOURCE_DIR}/common/encnames.c"
${LIBPQ_SOURCE_DIR}/common/logging.c "${LIBPQ_SOURCE_DIR}/common/logging.c"
${LIBPQ_SOURCE_DIR}/port/snprintf.c "${LIBPQ_SOURCE_DIR}/port/snprintf.c"
${LIBPQ_SOURCE_DIR}/port/strlcpy.c "${LIBPQ_SOURCE_DIR}/port/strlcpy.c"
${LIBPQ_SOURCE_DIR}/port/strerror.c "${LIBPQ_SOURCE_DIR}/port/strerror.c"
${LIBPQ_SOURCE_DIR}/port/inet_net_ntop.c "${LIBPQ_SOURCE_DIR}/port/inet_net_ntop.c"
${LIBPQ_SOURCE_DIR}/port/getpeereid.c "${LIBPQ_SOURCE_DIR}/port/getpeereid.c"
${LIBPQ_SOURCE_DIR}/port/chklocale.c "${LIBPQ_SOURCE_DIR}/port/chklocale.c"
${LIBPQ_SOURCE_DIR}/port/noblock.c "${LIBPQ_SOURCE_DIR}/port/noblock.c"
${LIBPQ_SOURCE_DIR}/port/pg_strong_random.c "${LIBPQ_SOURCE_DIR}/port/pg_strong_random.c"
${LIBPQ_SOURCE_DIR}/port/pgstrcasecmp.c "${LIBPQ_SOURCE_DIR}/port/pgstrcasecmp.c"
${LIBPQ_SOURCE_DIR}/port/thread.c "${LIBPQ_SOURCE_DIR}/port/thread.c"
${LIBPQ_SOURCE_DIR}/port/path.c "${LIBPQ_SOURCE_DIR}/port/path.c"
${LIBPQ_SOURCE_DIR}/port/explicit_bzero.c "${LIBPQ_SOURCE_DIR}/port/explicit_bzero.c"
) )
add_library(libpq ${SRCS}) add_library(libpq ${SRCS})
target_include_directories (libpq PUBLIC ${LIBPQ_SOURCE_DIR}) target_include_directories (libpq PUBLIC ${LIBPQ_SOURCE_DIR})
target_include_directories (libpq PUBLIC ${LIBPQ_SOURCE_DIR}/include) target_include_directories (libpq PUBLIC "${LIBPQ_SOURCE_DIR}/include")
target_include_directories (libpq PRIVATE ${LIBPQ_SOURCE_DIR}/configs) target_include_directories (libpq PRIVATE "${LIBPQ_SOURCE_DIR}/configs")
target_link_libraries (libpq PRIVATE ssl) target_link_libraries (libpq PRIVATE ssl)

View File

@ -1,70 +1,70 @@
set (LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/libpqxx) set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/libpqxx")
set (SRCS set (SRCS
${LIBRARY_DIR}/src/strconv.cxx "${LIBRARY_DIR}/src/strconv.cxx"
${LIBRARY_DIR}/src/array.cxx "${LIBRARY_DIR}/src/array.cxx"
${LIBRARY_DIR}/src/binarystring.cxx "${LIBRARY_DIR}/src/binarystring.cxx"
${LIBRARY_DIR}/src/connection.cxx "${LIBRARY_DIR}/src/connection.cxx"
${LIBRARY_DIR}/src/cursor.cxx "${LIBRARY_DIR}/src/cursor.cxx"
${LIBRARY_DIR}/src/encodings.cxx "${LIBRARY_DIR}/src/encodings.cxx"
${LIBRARY_DIR}/src/errorhandler.cxx "${LIBRARY_DIR}/src/errorhandler.cxx"
${LIBRARY_DIR}/src/except.cxx "${LIBRARY_DIR}/src/except.cxx"
${LIBRARY_DIR}/src/field.cxx "${LIBRARY_DIR}/src/field.cxx"
${LIBRARY_DIR}/src/largeobject.cxx "${LIBRARY_DIR}/src/largeobject.cxx"
${LIBRARY_DIR}/src/notification.cxx "${LIBRARY_DIR}/src/notification.cxx"
${LIBRARY_DIR}/src/pipeline.cxx "${LIBRARY_DIR}/src/pipeline.cxx"
${LIBRARY_DIR}/src/result.cxx "${LIBRARY_DIR}/src/result.cxx"
${LIBRARY_DIR}/src/robusttransaction.cxx "${LIBRARY_DIR}/src/robusttransaction.cxx"
${LIBRARY_DIR}/src/sql_cursor.cxx "${LIBRARY_DIR}/src/sql_cursor.cxx"
${LIBRARY_DIR}/src/stream_from.cxx "${LIBRARY_DIR}/src/stream_from.cxx"
${LIBRARY_DIR}/src/stream_to.cxx "${LIBRARY_DIR}/src/stream_to.cxx"
${LIBRARY_DIR}/src/subtransaction.cxx "${LIBRARY_DIR}/src/subtransaction.cxx"
${LIBRARY_DIR}/src/transaction.cxx "${LIBRARY_DIR}/src/transaction.cxx"
${LIBRARY_DIR}/src/transaction_base.cxx "${LIBRARY_DIR}/src/transaction_base.cxx"
${LIBRARY_DIR}/src/row.cxx "${LIBRARY_DIR}/src/row.cxx"
${LIBRARY_DIR}/src/util.cxx "${LIBRARY_DIR}/src/util.cxx"
${LIBRARY_DIR}/src/version.cxx "${LIBRARY_DIR}/src/version.cxx"
) )
# Need to explicitly include each header file, because in the directory include/pqxx there are also files # Need to explicitly include each header file, because in the directory include/pqxx there are also files
# like just 'array'. So if including the whole directory with `target_include_directories`, it will make # like just 'array'. So if including the whole directory with `target_include_directories`, it will make
# conflicts with all includes of <array>. # conflicts with all includes of <array>.
set (HDRS set (HDRS
${LIBRARY_DIR}/include/pqxx/array.hxx "${LIBRARY_DIR}/include/pqxx/array.hxx"
${LIBRARY_DIR}/include/pqxx/binarystring.hxx "${LIBRARY_DIR}/include/pqxx/binarystring.hxx"
${LIBRARY_DIR}/include/pqxx/composite.hxx "${LIBRARY_DIR}/include/pqxx/composite.hxx"
${LIBRARY_DIR}/include/pqxx/connection.hxx "${LIBRARY_DIR}/include/pqxx/connection.hxx"
${LIBRARY_DIR}/include/pqxx/cursor.hxx "${LIBRARY_DIR}/include/pqxx/cursor.hxx"
${LIBRARY_DIR}/include/pqxx/dbtransaction.hxx "${LIBRARY_DIR}/include/pqxx/dbtransaction.hxx"
${LIBRARY_DIR}/include/pqxx/errorhandler.hxx "${LIBRARY_DIR}/include/pqxx/errorhandler.hxx"
${LIBRARY_DIR}/include/pqxx/except.hxx "${LIBRARY_DIR}/include/pqxx/except.hxx"
${LIBRARY_DIR}/include/pqxx/field.hxx "${LIBRARY_DIR}/include/pqxx/field.hxx"
${LIBRARY_DIR}/include/pqxx/isolation.hxx "${LIBRARY_DIR}/include/pqxx/isolation.hxx"
${LIBRARY_DIR}/include/pqxx/largeobject.hxx "${LIBRARY_DIR}/include/pqxx/largeobject.hxx"
${LIBRARY_DIR}/include/pqxx/nontransaction.hxx "${LIBRARY_DIR}/include/pqxx/nontransaction.hxx"
${LIBRARY_DIR}/include/pqxx/notification.hxx "${LIBRARY_DIR}/include/pqxx/notification.hxx"
${LIBRARY_DIR}/include/pqxx/pipeline.hxx "${LIBRARY_DIR}/include/pqxx/pipeline.hxx"
${LIBRARY_DIR}/include/pqxx/prepared_statement.hxx "${LIBRARY_DIR}/include/pqxx/prepared_statement.hxx"
${LIBRARY_DIR}/include/pqxx/result.hxx "${LIBRARY_DIR}/include/pqxx/result.hxx"
${LIBRARY_DIR}/include/pqxx/robusttransaction.hxx "${LIBRARY_DIR}/include/pqxx/robusttransaction.hxx"
${LIBRARY_DIR}/include/pqxx/row.hxx "${LIBRARY_DIR}/include/pqxx/row.hxx"
${LIBRARY_DIR}/include/pqxx/separated_list.hxx "${LIBRARY_DIR}/include/pqxx/separated_list.hxx"
${LIBRARY_DIR}/include/pqxx/strconv.hxx "${LIBRARY_DIR}/include/pqxx/strconv.hxx"
${LIBRARY_DIR}/include/pqxx/stream_from.hxx "${LIBRARY_DIR}/include/pqxx/stream_from.hxx"
${LIBRARY_DIR}/include/pqxx/stream_to.hxx "${LIBRARY_DIR}/include/pqxx/stream_to.hxx"
${LIBRARY_DIR}/include/pqxx/subtransaction.hxx "${LIBRARY_DIR}/include/pqxx/subtransaction.hxx"
${LIBRARY_DIR}/include/pqxx/transaction.hxx "${LIBRARY_DIR}/include/pqxx/transaction.hxx"
${LIBRARY_DIR}/include/pqxx/transaction_base.hxx "${LIBRARY_DIR}/include/pqxx/transaction_base.hxx"
${LIBRARY_DIR}/include/pqxx/types.hxx "${LIBRARY_DIR}/include/pqxx/types.hxx"
${LIBRARY_DIR}/include/pqxx/util.hxx "${LIBRARY_DIR}/include/pqxx/util.hxx"
${LIBRARY_DIR}/include/pqxx/version.hxx "${LIBRARY_DIR}/include/pqxx/version.hxx"
${LIBRARY_DIR}/include/pqxx/zview.hxx "${LIBRARY_DIR}/include/pqxx/zview.hxx"
) )
add_library(libpqxx ${SRCS} ${HDRS}) add_library(libpqxx ${SRCS} ${HDRS})
target_link_libraries(libpqxx PUBLIC ${LIBPQ_LIBRARY}) target_link_libraries(libpqxx PUBLIC ${LIBPQ_LIBRARY})
target_include_directories (libpqxx PRIVATE ${LIBRARY_DIR}/include) target_include_directories (libpqxx PRIVATE "${LIBRARY_DIR}/include")
# crutch # crutch
set(CM_CONFIG_H_IN "${LIBRARY_DIR}/include/pqxx/config.h.in") set(CM_CONFIG_H_IN "${LIBRARY_DIR}/include/pqxx/config.h.in")

View File

@ -1,83 +1,83 @@
set(RDKAFKA_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/librdkafka/src) set(RDKAFKA_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/librdkafka/src")
set(SRCS set(SRCS
${RDKAFKA_SOURCE_DIR}/crc32c.c "${RDKAFKA_SOURCE_DIR}/crc32c.c"
# ${RDKAFKA_SOURCE_DIR}/lz4.c # "${RDKAFKA_SOURCE_DIR}/lz4.c"
# ${RDKAFKA_SOURCE_DIR}/lz4frame.c # "${RDKAFKA_SOURCE_DIR}/lz4frame.c"
# ${RDKAFKA_SOURCE_DIR}/lz4hc.c # "${RDKAFKA_SOURCE_DIR}/lz4hc.c"
${RDKAFKA_SOURCE_DIR}/rdaddr.c "${RDKAFKA_SOURCE_DIR}/rdaddr.c"
${RDKAFKA_SOURCE_DIR}/rdavl.c "${RDKAFKA_SOURCE_DIR}/rdavl.c"
${RDKAFKA_SOURCE_DIR}/rdbuf.c "${RDKAFKA_SOURCE_DIR}/rdbuf.c"
${RDKAFKA_SOURCE_DIR}/rdcrc32.c "${RDKAFKA_SOURCE_DIR}/rdcrc32.c"
${RDKAFKA_SOURCE_DIR}/rddl.c "${RDKAFKA_SOURCE_DIR}/rddl.c"
${RDKAFKA_SOURCE_DIR}/rdfnv1a.c "${RDKAFKA_SOURCE_DIR}/rdfnv1a.c"
${RDKAFKA_SOURCE_DIR}/rdgz.c "${RDKAFKA_SOURCE_DIR}/rdgz.c"
${RDKAFKA_SOURCE_DIR}/rdhdrhistogram.c "${RDKAFKA_SOURCE_DIR}/rdhdrhistogram.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_admin.c # looks optional "${RDKAFKA_SOURCE_DIR}/rdkafka_admin.c" # looks optional
${RDKAFKA_SOURCE_DIR}/rdkafka_assignment.c "${RDKAFKA_SOURCE_DIR}/rdkafka_assignment.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_assignor.c "${RDKAFKA_SOURCE_DIR}/rdkafka_assignor.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_aux.c # looks optional "${RDKAFKA_SOURCE_DIR}/rdkafka_aux.c" # looks optional
${RDKAFKA_SOURCE_DIR}/rdkafka_background.c "${RDKAFKA_SOURCE_DIR}/rdkafka_background.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_broker.c "${RDKAFKA_SOURCE_DIR}/rdkafka_broker.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_buf.c "${RDKAFKA_SOURCE_DIR}/rdkafka_buf.c"
${RDKAFKA_SOURCE_DIR}/rdkafka.c "${RDKAFKA_SOURCE_DIR}/rdkafka.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_cert.c "${RDKAFKA_SOURCE_DIR}/rdkafka_cert.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_cgrp.c "${RDKAFKA_SOURCE_DIR}/rdkafka_cgrp.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_conf.c "${RDKAFKA_SOURCE_DIR}/rdkafka_conf.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_coord.c "${RDKAFKA_SOURCE_DIR}/rdkafka_coord.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_error.c "${RDKAFKA_SOURCE_DIR}/rdkafka_error.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_event.c "${RDKAFKA_SOURCE_DIR}/rdkafka_event.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_feature.c "${RDKAFKA_SOURCE_DIR}/rdkafka_feature.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_header.c "${RDKAFKA_SOURCE_DIR}/rdkafka_header.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_idempotence.c "${RDKAFKA_SOURCE_DIR}/rdkafka_idempotence.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_interceptor.c "${RDKAFKA_SOURCE_DIR}/rdkafka_interceptor.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_lz4.c "${RDKAFKA_SOURCE_DIR}/rdkafka_lz4.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_metadata.c "${RDKAFKA_SOURCE_DIR}/rdkafka_metadata.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_metadata_cache.c "${RDKAFKA_SOURCE_DIR}/rdkafka_metadata_cache.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_mock.c "${RDKAFKA_SOURCE_DIR}/rdkafka_mock.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_mock_cgrp.c "${RDKAFKA_SOURCE_DIR}/rdkafka_mock_cgrp.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_mock_handlers.c "${RDKAFKA_SOURCE_DIR}/rdkafka_mock_handlers.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_msg.c "${RDKAFKA_SOURCE_DIR}/rdkafka_msg.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_msgset_reader.c "${RDKAFKA_SOURCE_DIR}/rdkafka_msgset_reader.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_msgset_writer.c "${RDKAFKA_SOURCE_DIR}/rdkafka_msgset_writer.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_offset.c "${RDKAFKA_SOURCE_DIR}/rdkafka_offset.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_op.c "${RDKAFKA_SOURCE_DIR}/rdkafka_op.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_partition.c "${RDKAFKA_SOURCE_DIR}/rdkafka_partition.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_pattern.c "${RDKAFKA_SOURCE_DIR}/rdkafka_pattern.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_plugin.c "${RDKAFKA_SOURCE_DIR}/rdkafka_plugin.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_queue.c "${RDKAFKA_SOURCE_DIR}/rdkafka_queue.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_range_assignor.c "${RDKAFKA_SOURCE_DIR}/rdkafka_range_assignor.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_request.c "${RDKAFKA_SOURCE_DIR}/rdkafka_request.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_roundrobin_assignor.c "${RDKAFKA_SOURCE_DIR}/rdkafka_roundrobin_assignor.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_sasl.c "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl.c"
# ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_cyrus.c # optionally included below # "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_cyrus.c" # optionally included below
# ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_oauthbearer.c # optionally included below # "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_oauthbearer.c" # optionally included below
${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_plain.c "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_plain.c"
# ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_scram.c # optionally included below # "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_scram.c" # optionally included below
# ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_win32.c # "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_win32.c"
# ${RDKAFKA_SOURCE_DIR}/rdkafka_ssl.c # optionally included below # "${RDKAFKA_SOURCE_DIR}/rdkafka_ssl.c" # optionally included below
${RDKAFKA_SOURCE_DIR}/rdkafka_sticky_assignor.c "${RDKAFKA_SOURCE_DIR}/rdkafka_sticky_assignor.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_subscription.c "${RDKAFKA_SOURCE_DIR}/rdkafka_subscription.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_timer.c "${RDKAFKA_SOURCE_DIR}/rdkafka_timer.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_topic.c "${RDKAFKA_SOURCE_DIR}/rdkafka_topic.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_transport.c "${RDKAFKA_SOURCE_DIR}/rdkafka_transport.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_txnmgr.c "${RDKAFKA_SOURCE_DIR}/rdkafka_txnmgr.c"
${RDKAFKA_SOURCE_DIR}/rdkafka_zstd.c "${RDKAFKA_SOURCE_DIR}/rdkafka_zstd.c"
${RDKAFKA_SOURCE_DIR}/rdlist.c "${RDKAFKA_SOURCE_DIR}/rdlist.c"
${RDKAFKA_SOURCE_DIR}/rdlog.c "${RDKAFKA_SOURCE_DIR}/rdlog.c"
${RDKAFKA_SOURCE_DIR}/rdmap.c "${RDKAFKA_SOURCE_DIR}/rdmap.c"
${RDKAFKA_SOURCE_DIR}/rdmurmur2.c "${RDKAFKA_SOURCE_DIR}/rdmurmur2.c"
${RDKAFKA_SOURCE_DIR}/rdports.c "${RDKAFKA_SOURCE_DIR}/rdports.c"
${RDKAFKA_SOURCE_DIR}/rdrand.c "${RDKAFKA_SOURCE_DIR}/rdrand.c"
${RDKAFKA_SOURCE_DIR}/rdregex.c "${RDKAFKA_SOURCE_DIR}/rdregex.c"
${RDKAFKA_SOURCE_DIR}/rdstring.c "${RDKAFKA_SOURCE_DIR}/rdstring.c"
${RDKAFKA_SOURCE_DIR}/rdunittest.c "${RDKAFKA_SOURCE_DIR}/rdunittest.c"
${RDKAFKA_SOURCE_DIR}/rdvarint.c "${RDKAFKA_SOURCE_DIR}/rdvarint.c"
${RDKAFKA_SOURCE_DIR}/rdxxhash.c "${RDKAFKA_SOURCE_DIR}/rdxxhash.c"
# ${RDKAFKA_SOURCE_DIR}/regexp.c # "${RDKAFKA_SOURCE_DIR}/regexp.c"
${RDKAFKA_SOURCE_DIR}/snappy.c "${RDKAFKA_SOURCE_DIR}/snappy.c"
${RDKAFKA_SOURCE_DIR}/tinycthread.c "${RDKAFKA_SOURCE_DIR}/tinycthread.c"
${RDKAFKA_SOURCE_DIR}/tinycthread_extra.c "${RDKAFKA_SOURCE_DIR}/tinycthread_extra.c"
) )
if(${ENABLE_CYRUS_SASL}) if(${ENABLE_CYRUS_SASL})
@ -96,28 +96,28 @@ if(OPENSSL_FOUND)
endif() endif()
if(WITH_SSL) if(WITH_SSL)
list(APPEND SRCS ${RDKAFKA_SOURCE_DIR}/rdkafka_ssl.c) list(APPEND SRCS "${RDKAFKA_SOURCE_DIR}/rdkafka_ssl.c")
endif() endif()
if(WITH_SASL_CYRUS) if(WITH_SASL_CYRUS)
list(APPEND SRCS ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_cyrus.c) # needed to support Kerberos, requires cyrus-sasl list(APPEND SRCS "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_cyrus.c") # needed to support Kerberos, requires cyrus-sasl
endif() endif()
if(WITH_SASL_SCRAM) if(WITH_SASL_SCRAM)
list(APPEND SRCS ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_scram.c) list(APPEND SRCS "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_scram.c")
endif() endif()
if(WITH_SASL_OAUTHBEARER) if(WITH_SASL_OAUTHBEARER)
list(APPEND SRCS ${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_oauthbearer.c) list(APPEND SRCS "${RDKAFKA_SOURCE_DIR}/rdkafka_sasl_oauthbearer.c")
endif() endif()
add_library(rdkafka ${SRCS}) add_library(rdkafka ${SRCS})
target_compile_options(rdkafka PRIVATE -fno-sanitize=undefined) target_compile_options(rdkafka PRIVATE -fno-sanitize=undefined)
# target_include_directories(rdkafka SYSTEM PUBLIC include) # target_include_directories(rdkafka SYSTEM PUBLIC include)
target_include_directories(rdkafka SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) # for "librdkafka/rdkafka.h" target_include_directories(rdkafka SYSTEM PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") # for "librdkafka/rdkafka.h"
target_include_directories(rdkafka SYSTEM PUBLIC ${RDKAFKA_SOURCE_DIR}) # Because weird logic with "include_next" is used. target_include_directories(rdkafka SYSTEM PUBLIC ${RDKAFKA_SOURCE_DIR}) # Because weird logic with "include_next" is used.
target_include_directories(rdkafka SYSTEM PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/auxdir) # for "../config.h" target_include_directories(rdkafka SYSTEM PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/auxdir") # for "../config.h"
target_include_directories(rdkafka SYSTEM PRIVATE ${ZSTD_INCLUDE_DIR}/common) # Because wrong path to "zstd_errors.h" is used. target_include_directories(rdkafka SYSTEM PRIVATE "${ZSTD_INCLUDE_DIR}/common") # Because wrong path to "zstd_errors.h" is used.
target_link_libraries(rdkafka PRIVATE lz4 ${ZLIB_LIBRARIES} ${ZSTD_LIBRARY}) target_link_libraries(rdkafka PRIVATE lz4 ${ZLIB_LIBRARIES} ${ZSTD_LIBRARY})
if(OPENSSL_SSL_LIBRARY AND OPENSSL_CRYPTO_LIBRARY) if(OPENSSL_SSL_LIBRARY AND OPENSSL_CRYPTO_LIBRARY)
target_link_libraries(rdkafka PRIVATE ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) target_link_libraries(rdkafka PRIVATE ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
@ -126,7 +126,7 @@ if(${ENABLE_CYRUS_SASL})
target_link_libraries(rdkafka PRIVATE ${CYRUS_SASL_LIBRARY}) target_link_libraries(rdkafka PRIVATE ${CYRUS_SASL_LIBRARY})
endif() endif()
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/auxdir) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/auxdir")
configure_file( configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"

View File

@ -66,7 +66,7 @@
#cmakedefine WITH_SASL_OAUTHBEARER 1 #cmakedefine WITH_SASL_OAUTHBEARER 1
#cmakedefine WITH_SASL_CYRUS 1 #cmakedefine WITH_SASL_CYRUS 1
// crc32chw // crc32chw
#if !defined(__PPC__) && (!defined(__aarch64__) || defined(__ARM_FEATURE_CRC32)) #if !defined(__PPC__) && (!defined(__aarch64__) || defined(__ARM_FEATURE_CRC32)) && !(defined(__aarch64__) && defined(__APPLE__))
#define WITH_CRC32C_HW 1 #define WITH_CRC32C_HW 1
#endif #endif
// regex // regex
@ -75,6 +75,8 @@
#define HAVE_STRNDUP 1 #define HAVE_STRNDUP 1
// strerror_r // strerror_r
#define HAVE_STRERROR_R 1 #define HAVE_STRERROR_R 1
// rand_r
#define HAVE_RAND_R 1
#ifdef __APPLE__ #ifdef __APPLE__
// pthread_setname_np // pthread_setname_np

View File

@ -1,27 +1,27 @@
include(CheckCCompilerFlag) include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
set(LIBUNWIND_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libunwind) set(LIBUNWIND_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libunwind")
set(LIBUNWIND_CXX_SOURCES set(LIBUNWIND_CXX_SOURCES
${LIBUNWIND_SOURCE_DIR}/src/libunwind.cpp "${LIBUNWIND_SOURCE_DIR}/src/libunwind.cpp"
${LIBUNWIND_SOURCE_DIR}/src/Unwind-EHABI.cpp "${LIBUNWIND_SOURCE_DIR}/src/Unwind-EHABI.cpp"
${LIBUNWIND_SOURCE_DIR}/src/Unwind-seh.cpp) "${LIBUNWIND_SOURCE_DIR}/src/Unwind-seh.cpp")
if (APPLE) if (APPLE)
set(LIBUNWIND_CXX_SOURCES ${LIBUNWIND_CXX_SOURCES} ${LIBUNWIND_SOURCE_DIR}/src/Unwind_AppleExtras.cpp) set(LIBUNWIND_CXX_SOURCES ${LIBUNWIND_CXX_SOURCES} "${LIBUNWIND_SOURCE_DIR}/src/Unwind_AppleExtras.cpp")
endif () endif ()
set(LIBUNWIND_C_SOURCES set(LIBUNWIND_C_SOURCES
${LIBUNWIND_SOURCE_DIR}/src/UnwindLevel1.c "${LIBUNWIND_SOURCE_DIR}/src/UnwindLevel1.c"
${LIBUNWIND_SOURCE_DIR}/src/UnwindLevel1-gcc-ext.c "${LIBUNWIND_SOURCE_DIR}/src/UnwindLevel1-gcc-ext.c"
${LIBUNWIND_SOURCE_DIR}/src/Unwind-sjlj.c "${LIBUNWIND_SOURCE_DIR}/src/Unwind-sjlj.c"
# Use unw_backtrace to override libgcc's backtrace symbol for better ABI compatibility # Use unw_backtrace to override libgcc's backtrace symbol for better ABI compatibility
unwind-override.c) unwind-override.c)
set_source_files_properties(${LIBUNWIND_C_SOURCES} PROPERTIES COMPILE_FLAGS "-std=c99") set_source_files_properties(${LIBUNWIND_C_SOURCES} PROPERTIES COMPILE_FLAGS "-std=c99")
set(LIBUNWIND_ASM_SOURCES set(LIBUNWIND_ASM_SOURCES
${LIBUNWIND_SOURCE_DIR}/src/UnwindRegistersRestore.S "${LIBUNWIND_SOURCE_DIR}/src/UnwindRegistersRestore.S"
${LIBUNWIND_SOURCE_DIR}/src/UnwindRegistersSave.S) "${LIBUNWIND_SOURCE_DIR}/src/UnwindRegistersSave.S")
# CMake doesn't pass the correct architecture for Apple prior to CMake 3.19 [1] # CMake doesn't pass the correct architecture for Apple prior to CMake 3.19 [1]
# Workaround these two issues by compiling as C. # Workaround these two issues by compiling as C.

View File

@ -1,54 +1,54 @@
set(LIBXML2_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/libxml2) set(LIBXML2_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/libxml2")
set(LIBXML2_BINARY_DIR ${ClickHouse_BINARY_DIR}/contrib/libxml2) set(LIBXML2_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/libxml2")
set(SRCS set(SRCS
${LIBXML2_SOURCE_DIR}/SAX.c "${LIBXML2_SOURCE_DIR}/SAX.c"
${LIBXML2_SOURCE_DIR}/entities.c "${LIBXML2_SOURCE_DIR}/entities.c"
${LIBXML2_SOURCE_DIR}/encoding.c "${LIBXML2_SOURCE_DIR}/encoding.c"
${LIBXML2_SOURCE_DIR}/error.c "${LIBXML2_SOURCE_DIR}/error.c"
${LIBXML2_SOURCE_DIR}/parserInternals.c "${LIBXML2_SOURCE_DIR}/parserInternals.c"
${LIBXML2_SOURCE_DIR}/parser.c "${LIBXML2_SOURCE_DIR}/parser.c"
${LIBXML2_SOURCE_DIR}/tree.c "${LIBXML2_SOURCE_DIR}/tree.c"
${LIBXML2_SOURCE_DIR}/hash.c "${LIBXML2_SOURCE_DIR}/hash.c"
${LIBXML2_SOURCE_DIR}/list.c "${LIBXML2_SOURCE_DIR}/list.c"
${LIBXML2_SOURCE_DIR}/xmlIO.c "${LIBXML2_SOURCE_DIR}/xmlIO.c"
${LIBXML2_SOURCE_DIR}/xmlmemory.c "${LIBXML2_SOURCE_DIR}/xmlmemory.c"
${LIBXML2_SOURCE_DIR}/uri.c "${LIBXML2_SOURCE_DIR}/uri.c"
${LIBXML2_SOURCE_DIR}/valid.c "${LIBXML2_SOURCE_DIR}/valid.c"
${LIBXML2_SOURCE_DIR}/xlink.c "${LIBXML2_SOURCE_DIR}/xlink.c"
${LIBXML2_SOURCE_DIR}/HTMLparser.c "${LIBXML2_SOURCE_DIR}/HTMLparser.c"
${LIBXML2_SOURCE_DIR}/HTMLtree.c "${LIBXML2_SOURCE_DIR}/HTMLtree.c"
${LIBXML2_SOURCE_DIR}/debugXML.c "${LIBXML2_SOURCE_DIR}/debugXML.c"
${LIBXML2_SOURCE_DIR}/xpath.c "${LIBXML2_SOURCE_DIR}/xpath.c"
${LIBXML2_SOURCE_DIR}/xpointer.c "${LIBXML2_SOURCE_DIR}/xpointer.c"
${LIBXML2_SOURCE_DIR}/xinclude.c "${LIBXML2_SOURCE_DIR}/xinclude.c"
${LIBXML2_SOURCE_DIR}/nanohttp.c "${LIBXML2_SOURCE_DIR}/nanohttp.c"
${LIBXML2_SOURCE_DIR}/nanoftp.c "${LIBXML2_SOURCE_DIR}/nanoftp.c"
${LIBXML2_SOURCE_DIR}/DOCBparser.c "${LIBXML2_SOURCE_DIR}/DOCBparser.c"
${LIBXML2_SOURCE_DIR}/catalog.c "${LIBXML2_SOURCE_DIR}/catalog.c"
${LIBXML2_SOURCE_DIR}/globals.c "${LIBXML2_SOURCE_DIR}/globals.c"
${LIBXML2_SOURCE_DIR}/threads.c "${LIBXML2_SOURCE_DIR}/threads.c"
${LIBXML2_SOURCE_DIR}/c14n.c "${LIBXML2_SOURCE_DIR}/c14n.c"
${LIBXML2_SOURCE_DIR}/xmlstring.c "${LIBXML2_SOURCE_DIR}/xmlstring.c"
${LIBXML2_SOURCE_DIR}/buf.c "${LIBXML2_SOURCE_DIR}/buf.c"
${LIBXML2_SOURCE_DIR}/xmlregexp.c "${LIBXML2_SOURCE_DIR}/xmlregexp.c"
${LIBXML2_SOURCE_DIR}/xmlschemas.c "${LIBXML2_SOURCE_DIR}/xmlschemas.c"
${LIBXML2_SOURCE_DIR}/xmlschemastypes.c "${LIBXML2_SOURCE_DIR}/xmlschemastypes.c"
${LIBXML2_SOURCE_DIR}/xmlunicode.c "${LIBXML2_SOURCE_DIR}/xmlunicode.c"
${LIBXML2_SOURCE_DIR}/triostr.c "${LIBXML2_SOURCE_DIR}/triostr.c"
#${LIBXML2_SOURCE_DIR}/trio.c #"${LIBXML2_SOURCE_DIR}/trio.c"
${LIBXML2_SOURCE_DIR}/xmlreader.c "${LIBXML2_SOURCE_DIR}/xmlreader.c"
${LIBXML2_SOURCE_DIR}/relaxng.c "${LIBXML2_SOURCE_DIR}/relaxng.c"
${LIBXML2_SOURCE_DIR}/dict.c "${LIBXML2_SOURCE_DIR}/dict.c"
${LIBXML2_SOURCE_DIR}/SAX2.c "${LIBXML2_SOURCE_DIR}/SAX2.c"
${LIBXML2_SOURCE_DIR}/xmlwriter.c "${LIBXML2_SOURCE_DIR}/xmlwriter.c"
${LIBXML2_SOURCE_DIR}/legacy.c "${LIBXML2_SOURCE_DIR}/legacy.c"
${LIBXML2_SOURCE_DIR}/chvalid.c "${LIBXML2_SOURCE_DIR}/chvalid.c"
${LIBXML2_SOURCE_DIR}/pattern.c "${LIBXML2_SOURCE_DIR}/pattern.c"
${LIBXML2_SOURCE_DIR}/xmlsave.c "${LIBXML2_SOURCE_DIR}/xmlsave.c"
${LIBXML2_SOURCE_DIR}/xmlmodule.c "${LIBXML2_SOURCE_DIR}/xmlmodule.c"
${LIBXML2_SOURCE_DIR}/schematron.c "${LIBXML2_SOURCE_DIR}/schematron.c"
${LIBXML2_SOURCE_DIR}/xzlib.c "${LIBXML2_SOURCE_DIR}/xzlib.c"
) )
add_library(libxml2 ${SRCS}) add_library(libxml2 ${SRCS})
@ -57,6 +57,6 @@ if(M_LIBRARY)
target_link_libraries(libxml2 PRIVATE ${M_LIBRARY}) target_link_libraries(libxml2 PRIVATE ${M_LIBRARY})
endif() endif()
target_include_directories(libxml2 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/linux_x86_64/include) target_include_directories(libxml2 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/linux_x86_64/include")
target_include_directories(libxml2 PUBLIC ${LIBXML2_SOURCE_DIR}/include) target_include_directories(libxml2 PUBLIC "${LIBXML2_SOURCE_DIR}/include")
target_include_directories(libxml2 SYSTEM BEFORE PRIVATE ${ZLIB_INCLUDE_DIR}) target_include_directories(libxml2 SYSTEM BEFORE PRIVATE ${ZLIB_INCLUDE_DIR})

View File

@ -33,5 +33,5 @@ if (NOT EXTERNAL_LZ4_LIBRARY_FOUND)
if (SANITIZE STREQUAL "undefined") if (SANITIZE STREQUAL "undefined")
target_compile_options (lz4 PRIVATE -fno-sanitize=undefined) target_compile_options (lz4 PRIVATE -fno-sanitize=undefined)
endif () endif ()
target_include_directories(lz4 PUBLIC ${LIBRARY_DIR}/lib) target_include_directories(lz4 PUBLIC "${LIBRARY_DIR}/lib")
endif () endif ()

@ -1 +1 @@
Subproject commit f4476ee7311b35b593750f6ae2cbdb62a4006374 Subproject commit 5f4034a3a6376416504f17186c55fe401c6d8e5e

1
contrib/nanodbc vendored Submodule

@ -0,0 +1 @@
Subproject commit 9fc459675515d491401727ec67fca38db721f28c

View File

@ -0,0 +1,18 @@
if (NOT USE_INTERNAL_NANODBC_LIBRARY)
return ()
endif ()
set (LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/nanodbc")
if (NOT TARGET unixodbc)
message(FATAL_ERROR "Configuration error: unixodbc is not a target")
endif()
set (SRCS
"${LIBRARY_DIR}/nanodbc/nanodbc.cpp"
)
add_library(nanodbc ${SRCS})
target_link_libraries (nanodbc PUBLIC unixodbc)
target_include_directories (nanodbc SYSTEM PUBLIC "${LIBRARY_DIR}/")

View File

@ -1,30 +1,30 @@
set(LIBRARY_DIR ${ClickHouse_SOURCE_DIR}/contrib/NuRaft) set(LIBRARY_DIR "${ClickHouse_SOURCE_DIR}/contrib/NuRaft")
set(SRCS set(SRCS
${LIBRARY_DIR}/src/handle_priority.cxx "${LIBRARY_DIR}/src/handle_priority.cxx"
${LIBRARY_DIR}/src/buffer_serializer.cxx "${LIBRARY_DIR}/src/buffer_serializer.cxx"
${LIBRARY_DIR}/src/peer.cxx "${LIBRARY_DIR}/src/peer.cxx"
${LIBRARY_DIR}/src/global_mgr.cxx "${LIBRARY_DIR}/src/global_mgr.cxx"
${LIBRARY_DIR}/src/buffer.cxx "${LIBRARY_DIR}/src/buffer.cxx"
${LIBRARY_DIR}/src/asio_service.cxx "${LIBRARY_DIR}/src/asio_service.cxx"
${LIBRARY_DIR}/src/handle_client_request.cxx "${LIBRARY_DIR}/src/handle_client_request.cxx"
${LIBRARY_DIR}/src/raft_server.cxx "${LIBRARY_DIR}/src/raft_server.cxx"
${LIBRARY_DIR}/src/snapshot.cxx "${LIBRARY_DIR}/src/snapshot.cxx"
${LIBRARY_DIR}/src/handle_commit.cxx "${LIBRARY_DIR}/src/handle_commit.cxx"
${LIBRARY_DIR}/src/error_code.cxx "${LIBRARY_DIR}/src/error_code.cxx"
${LIBRARY_DIR}/src/crc32.cxx "${LIBRARY_DIR}/src/crc32.cxx"
${LIBRARY_DIR}/src/handle_snapshot_sync.cxx "${LIBRARY_DIR}/src/handle_snapshot_sync.cxx"
${LIBRARY_DIR}/src/stat_mgr.cxx "${LIBRARY_DIR}/src/stat_mgr.cxx"
${LIBRARY_DIR}/src/handle_join_leave.cxx "${LIBRARY_DIR}/src/handle_join_leave.cxx"
${LIBRARY_DIR}/src/handle_user_cmd.cxx "${LIBRARY_DIR}/src/handle_user_cmd.cxx"
${LIBRARY_DIR}/src/handle_custom_notification.cxx "${LIBRARY_DIR}/src/handle_custom_notification.cxx"
${LIBRARY_DIR}/src/handle_vote.cxx "${LIBRARY_DIR}/src/handle_vote.cxx"
${LIBRARY_DIR}/src/launcher.cxx "${LIBRARY_DIR}/src/launcher.cxx"
${LIBRARY_DIR}/src/srv_config.cxx "${LIBRARY_DIR}/src/srv_config.cxx"
${LIBRARY_DIR}/src/snapshot_sync_req.cxx "${LIBRARY_DIR}/src/snapshot_sync_req.cxx"
${LIBRARY_DIR}/src/handle_timeout.cxx "${LIBRARY_DIR}/src/handle_timeout.cxx"
${LIBRARY_DIR}/src/handle_append_entries.cxx "${LIBRARY_DIR}/src/handle_append_entries.cxx"
${LIBRARY_DIR}/src/cluster_config.cxx "${LIBRARY_DIR}/src/cluster_config.cxx"
) )
@ -37,9 +37,9 @@ else()
target_compile_definitions(nuraft PRIVATE USE_BOOST_ASIO=1 BOOST_ASIO_STANDALONE=1) target_compile_definitions(nuraft PRIVATE USE_BOOST_ASIO=1 BOOST_ASIO_STANDALONE=1)
endif() endif()
target_include_directories (nuraft SYSTEM PRIVATE ${LIBRARY_DIR}/include/libnuraft) target_include_directories (nuraft SYSTEM PRIVATE "${LIBRARY_DIR}/include/libnuraft")
# for some reason include "asio.h" directly without "boost/" prefix. # for some reason include "asio.h" directly without "boost/" prefix.
target_include_directories (nuraft SYSTEM PRIVATE ${ClickHouse_SOURCE_DIR}/contrib/boost/boost) target_include_directories (nuraft SYSTEM PRIVATE "${ClickHouse_SOURCE_DIR}/contrib/boost/boost")
target_link_libraries (nuraft PRIVATE boost::headers_only boost::coroutine) target_link_libraries (nuraft PRIVATE boost::headers_only boost::coroutine)
@ -47,4 +47,4 @@ if(OPENSSL_SSL_LIBRARY AND OPENSSL_CRYPTO_LIBRARY)
target_link_libraries (nuraft PRIVATE ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) target_link_libraries (nuraft PRIVATE ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
endif() endif()
target_include_directories (nuraft SYSTEM PUBLIC ${LIBRARY_DIR}/include) target_include_directories (nuraft SYSTEM PUBLIC "${LIBRARY_DIR}/include")

View File

@ -1,4 +1,4 @@
set(OPENLDAP_SOURCE_DIR ${ClickHouse_SOURCE_DIR}/contrib/openldap) set(OPENLDAP_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/openldap")
# How these lists were generated? # How these lists were generated?
# I compiled the original OpenLDAP with it's original build system and copied the list of source files from build commands. # I compiled the original OpenLDAP with it's original build system and copied the list of source files from build commands.
@ -12,9 +12,9 @@ set(OPENLDAP_VERSION_STRING "2.5.X")
macro(mkversion _lib_name) macro(mkversion _lib_name)
add_custom_command( add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-version.c OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-version.c"
COMMAND ${CMAKE_COMMAND} -E env bash -c "${OPENLDAP_SOURCE_DIR}/build/mkversion -v '${OPENLDAP_VERSION_STRING}' liblber.la > ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-version.c" COMMAND ${CMAKE_COMMAND} -E env bash -c "${OPENLDAP_SOURCE_DIR}/build/mkversion -v '${OPENLDAP_VERSION_STRING}' liblber.la > \"${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}-version.c\""
MAIN_DEPENDENCY ${OPENLDAP_SOURCE_DIR}/build/mkversion MAIN_DEPENDENCY "${OPENLDAP_SOURCE_DIR}/build/mkversion"
WORKING_DIRECTORY ${OPENLDAP_SOURCE_DIR} WORKING_DIRECTORY ${OPENLDAP_SOURCE_DIR}
VERBATIM VERBATIM
) )
@ -37,23 +37,23 @@ endif()
set(_extra_build_dir "${CMAKE_CURRENT_SOURCE_DIR}/${_system_name}_${_system_processor}") set(_extra_build_dir "${CMAKE_CURRENT_SOURCE_DIR}/${_system_name}_${_system_processor}")
set(_lber_srcs set(_lber_srcs
${OPENLDAP_SOURCE_DIR}/libraries/liblber/assert.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/assert.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/decode.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/decode.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/encode.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/encode.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/io.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/io.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/bprint.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/bprint.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/debug.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/debug.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/memory.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/memory.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/options.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/options.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/sockbuf.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/sockbuf.c"
${OPENLDAP_SOURCE_DIR}/libraries/liblber/stdio.c "${OPENLDAP_SOURCE_DIR}/libraries/liblber/stdio.c"
) )
mkversion(lber) mkversion(lber)
add_library(lber ${_libs_type} add_library(lber ${_libs_type}
${_lber_srcs} ${_lber_srcs}
${CMAKE_CURRENT_BINARY_DIR}/lber-version.c "${CMAKE_CURRENT_BINARY_DIR}/lber-version.c"
) )
target_link_libraries(lber target_link_libraries(lber
@ -62,8 +62,8 @@ target_link_libraries(lber
target_include_directories(lber target_include_directories(lber
PRIVATE ${_extra_build_dir}/include PRIVATE ${_extra_build_dir}/include
PRIVATE ${OPENLDAP_SOURCE_DIR}/include PRIVATE "${OPENLDAP_SOURCE_DIR}/include"
PRIVATE ${OPENLDAP_SOURCE_DIR}/libraries/liblber PRIVATE "${OPENLDAP_SOURCE_DIR}/libraries/liblber"
PRIVATE ${OPENSSL_INCLUDE_DIR} PRIVATE ${OPENSSL_INCLUDE_DIR}
) )
@ -72,78 +72,78 @@ target_compile_definitions(lber
) )
set(_ldap_srcs set(_ldap_srcs
${OPENLDAP_SOURCE_DIR}/libraries/libldap/bind.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/bind.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/open.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/open.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/result.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/result.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/error.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/error.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/compare.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/compare.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/search.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/search.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/controls.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/controls.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/messages.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/messages.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/references.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/references.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/extended.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/extended.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/cyrus.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/cyrus.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/modify.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/modify.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/add.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/add.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/modrdn.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/modrdn.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/delete.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/delete.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/abandon.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/abandon.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/sasl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/sasl.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/sbind.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/sbind.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/unbind.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/unbind.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/cancel.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/cancel.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/filter.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/filter.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/free.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/free.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/sort.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/sort.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/passwd.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/passwd.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/whoami.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/whoami.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/vc.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/vc.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/getdn.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/getdn.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/getentry.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/getentry.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/getattr.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/getattr.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/getvalues.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/getvalues.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/addentry.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/addentry.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/request.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/request.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/os-ip.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/os-ip.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/url.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/url.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/pagectrl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/pagectrl.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/sortctrl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/sortctrl.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/vlvctrl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/vlvctrl.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/init.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/init.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/options.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/options.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/print.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/print.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/string.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/string.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/util-int.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/util-int.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/schema.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/schema.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/charray.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/charray.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/os-local.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/os-local.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/dnssrv.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/dnssrv.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/utf-8.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/utf-8.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/utf-8-conv.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/utf-8-conv.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/tls2.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/tls2.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/tls_o.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/tls_o.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/tls_g.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/tls_g.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/turn.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/turn.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/ppolicy.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/ppolicy.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/dds.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/dds.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/txn.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/txn.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/ldap_sync.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/ldap_sync.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/stctrl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/stctrl.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/assertion.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/assertion.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/deref.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/deref.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/ldifutil.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/ldifutil.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/ldif.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/ldif.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/fetch.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/fetch.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/lbase64.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/lbase64.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/msctrl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/msctrl.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap/psearchctrl.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap/psearchctrl.c"
) )
mkversion(ldap) mkversion(ldap)
add_library(ldap ${_libs_type} add_library(ldap ${_libs_type}
${_ldap_srcs} ${_ldap_srcs}
${CMAKE_CURRENT_BINARY_DIR}/ldap-version.c "${CMAKE_CURRENT_BINARY_DIR}/ldap-version.c"
) )
target_link_libraries(ldap target_link_libraries(ldap
@ -153,8 +153,8 @@ target_link_libraries(ldap
target_include_directories(ldap target_include_directories(ldap
PRIVATE ${_extra_build_dir}/include PRIVATE ${_extra_build_dir}/include
PRIVATE ${OPENLDAP_SOURCE_DIR}/include PRIVATE "${OPENLDAP_SOURCE_DIR}/include"
PRIVATE ${OPENLDAP_SOURCE_DIR}/libraries/libldap PRIVATE "${OPENLDAP_SOURCE_DIR}/libraries/libldap"
PRIVATE ${OPENSSL_INCLUDE_DIR} PRIVATE ${OPENSSL_INCLUDE_DIR}
) )
@ -163,16 +163,16 @@ target_compile_definitions(ldap
) )
set(_ldap_r_specific_srcs set(_ldap_r_specific_srcs
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/threads.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/threads.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/rdwr.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/rdwr.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/tpool.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/tpool.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/rq.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/rq.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_posix.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_posix.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_thr.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_thr.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_nt.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_nt.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_pth.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_pth.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_stub.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_stub.c"
${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_debug.c "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r/thr_debug.c"
) )
mkversion(ldap_r) mkversion(ldap_r)
@ -180,7 +180,7 @@ mkversion(ldap_r)
add_library(ldap_r ${_libs_type} add_library(ldap_r ${_libs_type}
${_ldap_r_specific_srcs} ${_ldap_r_specific_srcs}
${_ldap_srcs} ${_ldap_srcs}
${CMAKE_CURRENT_BINARY_DIR}/ldap_r-version.c "${CMAKE_CURRENT_BINARY_DIR}/ldap_r-version.c"
) )
target_link_libraries(ldap_r target_link_libraries(ldap_r
@ -190,9 +190,9 @@ target_link_libraries(ldap_r
target_include_directories(ldap_r target_include_directories(ldap_r
PRIVATE ${_extra_build_dir}/include PRIVATE ${_extra_build_dir}/include
PRIVATE ${OPENLDAP_SOURCE_DIR}/include PRIVATE "${OPENLDAP_SOURCE_DIR}/include"
PRIVATE ${OPENLDAP_SOURCE_DIR}/libraries/libldap_r PRIVATE "${OPENLDAP_SOURCE_DIR}/libraries/libldap_r"
PRIVATE ${OPENLDAP_SOURCE_DIR}/libraries/libldap PRIVATE "${OPENLDAP_SOURCE_DIR}/libraries/libldap"
PRIVATE ${OPENSSL_INCLUDE_DIR} PRIVATE ${OPENSSL_INCLUDE_DIR}
) )

View File

@ -0,0 +1,63 @@
/* include/lber_types.h. Generated from lber_types.hin by configure. */
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2020 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
/*
* LBER types
*/
#ifndef _LBER_TYPES_H
#define _LBER_TYPES_H
#include <ldap_cdefs.h>
LDAP_BEGIN_DECL
/* LBER boolean, enum, integers (32 bits or larger) */
#define LBER_INT_T int
/* LBER tags (32 bits or larger) */
#define LBER_TAG_T long
/* LBER socket descriptor */
#define LBER_SOCKET_T int
/* LBER lengths (32 bits or larger) */
#define LBER_LEN_T long
/* ------------------------------------------------------------ */
/* booleans, enumerations, and integers */
typedef LBER_INT_T ber_int_t;
/* signed and unsigned versions */
typedef signed LBER_INT_T ber_sint_t;
typedef unsigned LBER_INT_T ber_uint_t;
/* tags */
typedef unsigned LBER_TAG_T ber_tag_t;
/* "socket" descriptors */
typedef LBER_SOCKET_T ber_socket_t;
/* lengths */
typedef unsigned LBER_LEN_T ber_len_t;
/* signed lengths */
typedef signed LBER_LEN_T ber_slen_t;
LDAP_END_DECL
#endif /* _LBER_TYPES_H */

View File

@ -0,0 +1,74 @@
/* include/ldap_config.h. Generated from ldap_config.hin by configure. */
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2020 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
/*
* This file works in conjunction with OpenLDAP configure system.
* If you do no like the values below, adjust your configure options.
*/
#ifndef _LDAP_CONFIG_H
#define _LDAP_CONFIG_H
/* directory separator */
#ifndef LDAP_DIRSEP
#ifndef _WIN32
#define LDAP_DIRSEP "/"
#else
#define LDAP_DIRSEP "\\"
#endif
#endif
/* directory for temporary files */
#if defined(_WIN32)
# define LDAP_TMPDIR "C:\\." /* we don't have much of a choice */
#elif defined( _P_tmpdir )
# define LDAP_TMPDIR _P_tmpdir
#elif defined( P_tmpdir )
# define LDAP_TMPDIR P_tmpdir
#elif defined( _PATH_TMPDIR )
# define LDAP_TMPDIR _PATH_TMPDIR
#else
# define LDAP_TMPDIR LDAP_DIRSEP "tmp"
#endif
/* directories */
#ifndef LDAP_BINDIR
#define LDAP_BINDIR "/tmp/ldap-prefix/bin"
#endif
#ifndef LDAP_SBINDIR
#define LDAP_SBINDIR "/tmp/ldap-prefix/sbin"
#endif
#ifndef LDAP_DATADIR
#define LDAP_DATADIR "/tmp/ldap-prefix/share/openldap"
#endif
#ifndef LDAP_SYSCONFDIR
#define LDAP_SYSCONFDIR "/tmp/ldap-prefix/etc/openldap"
#endif
#ifndef LDAP_LIBEXECDIR
#define LDAP_LIBEXECDIR "/tmp/ldap-prefix/libexec"
#endif
#ifndef LDAP_MODULEDIR
#define LDAP_MODULEDIR "/tmp/ldap-prefix/libexec/openldap"
#endif
#ifndef LDAP_RUNDIR
#define LDAP_RUNDIR "/tmp/ldap-prefix/var"
#endif
#ifndef LDAP_LOCALEDIR
#define LDAP_LOCALEDIR ""
#endif
#endif /* _LDAP_CONFIG_H */

View File

@ -0,0 +1,61 @@
/* include/ldap_features.h. Generated from ldap_features.hin by configure. */
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 1998-2020 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted only as authorized by the OpenLDAP
* Public License.
*
* A copy of this license is available in file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
/*
* LDAP Features
*/
#ifndef _LDAP_FEATURES_H
#define _LDAP_FEATURES_H 1
/* OpenLDAP API version macros */
#define LDAP_VENDOR_VERSION 20501
#define LDAP_VENDOR_VERSION_MAJOR 2
#define LDAP_VENDOR_VERSION_MINOR 5
#define LDAP_VENDOR_VERSION_PATCH X
/*
** WORK IN PROGRESS!
**
** OpenLDAP reentrancy/thread-safeness should be dynamically
** checked using ldap_get_option().
**
** The -lldap implementation is not thread-safe.
**
** The -lldap_r implementation is:
** LDAP_API_FEATURE_THREAD_SAFE (basic thread safety)
** but also be:
** LDAP_API_FEATURE_SESSION_THREAD_SAFE
** LDAP_API_FEATURE_OPERATION_THREAD_SAFE
**
** The preprocessor flag LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE
** can be used to determine if -lldap_r is available at compile
** time. You must define LDAP_THREAD_SAFE if and only if you
** link with -lldap_r.
**
** If you fail to define LDAP_THREAD_SAFE when linking with
** -lldap_r or define LDAP_THREAD_SAFE when linking with -lldap,
** provided header definitions and declarations may be incorrect.
**
*/
/* is -lldap_r available or not */
#define LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE 1
/* LDAP v2 Referrals */
/* #undef LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS */
#endif /* LDAP_FEATURES */

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More