ClickHouse® is a real-time analytics DBMS
Go to file
Azat Khuzhin a5cb0aed12
Sanitize LINK_LIBRARIES property for the directories (#12160)
When you will try to link target with the directory (that exists), cmake will
skip this without an error, only the following warning will be reported:

    target_link_libraries(main /tmp)

    WARNING: Target "main" requests linking to directory "/tmp".  Targets may link only to libraries.  CMake is dropping the item.

And there is no cmake policy that controls this.
(I guess the reason that it is allowed is because of FRAMEWORK for OSX).

So to avoid error-prone cmake rules, this can be sanitized.
There are the following ways:
- overwrite target_link_libraries()/link_libraries() and check *before*
  calling real macro, but this requires duplicate all supported syntax
  -- too complex
- overwrite target_link_libraries() and check LINK_LIBRARIES property, this
  works great
  -- but cannot be used with link_libraries()
- use BUILDSYSTEM_TARGETS property to get list of all targets and sanitize
  -- this will work.

I also tested it with the following patch:

    $ git di
    diff --git a/base/daemon/CMakeLists.txt b/base/daemon/CMakeLists.txt
    index 26d59a57e7..35e6ff6432 100644
    --- a/base/daemon/CMakeLists.txt
    +++ b/base/daemon/CMakeLists.txt
    @@ -9,4 +9,5 @@ target_link_libraries (daemon PUBLIC loggers PRIVATE clickhouse_common_io clickh

     if (USE_SENTRY)
         target_link_libraries (daemon PRIVATE ${SENTRY_LIBRARY})
    +    target_link_libraries (daemon PRIVATE /tmp)
     endif ()

And it works:

    CMake Error at cmake/sanitize_target_link_libraries.cmake:48 (message):
       daemon requested to link with directory: /tmp
    Call Stack (most recent call first):
      cmake/sanitize_target_link_libraries.cmake:55 (sanitize_link_libraries)
      CMakeLists.txt:425 (include)

Refs: #12041
2020-07-07 19:22:41 +03:00
.github [anchore] more detailed Dockerfile scan reports (#12159) 2020-07-06 11:19:48 +03:00
base Merge pull request #12145 from ClickHouse/fix-suggest-word-break-chars 2020-07-06 08:51:35 +03:00
benchmark Move all folders inside /dbms one level up (#9974) 2020-04-02 02:51:21 +03:00
cmake Sanitize LINK_LIBRARIES property for the directories (#12160) 2020-07-07 19:22:41 +03:00
contrib Merge pull request #11662 from Avogar/orc_output_format 2020-07-06 18:51:35 +04:00
debian Auto version update to [20.6.1.1] [54436] 2020-06-22 20:40:26 +03:00
docker Merge pull request #12168 from qoega/compose-inside-docker 2020-07-07 18:43:27 +03:00
docs [docs] refactor Domains overview (#12186) 2020-07-07 17:45:04 +03:00
programs Merge pull request #12165 from vitlibar/fix-split-dictionary-source-table-name 2020-07-07 11:49:36 +03:00
src style fix for #12152 2020-07-07 13:28:45 +03:00
tests Merge pull request #12168 from qoega/compose-inside-docker 2020-07-07 18:43:27 +03:00
utils changelog fixes 2020-07-07 13:50:32 +03:00
website [website] add apple-touch-icon (#12164) 2020-07-06 23:25:21 +03:00
.arcignore Added .arcignore 2020-05-21 09:17:03 +03:00
.clang-format Fixed wrong code around Memory Profiler 2020-03-03 03:24:44 +03:00
.clang-tidy Enable clang-tidy for programs and utils 2020-05-18 04:19:50 +03:00
.editorconfig Changed tabs to spaces in editor configs and in style guide [#CLICKHOUSE-3]. 2017-04-01 11:35:09 +03:00
.gitattributes Decreased warning threshold [#MOBMET-3248] 2016-06-07 11:23:15 +03:00
.gitignore Add integration test 2020-05-29 22:53:16 +03:00
.gitmodules Merge branch 'master' into add-storage-rabbitmq-read-only 2020-07-02 16:08:29 +03:00
.potato.yml Update comments in .potato.yml 2019-10-20 12:50:33 +08:00
.vimrc Changed tabs to spaces in editor configs and in style guide [#CLICKHOUSE-3]. 2017-04-01 11:35:09 +03:00
AUTHORS Update AUTHORS 2020-01-23 17:36:05 +03:00
CHANGELOG.md changelog fixes 2020-07-07 13:50:32 +03:00
CMakeLists.txt Sanitize LINK_LIBRARIES property for the directories (#12160) 2020-07-07 19:22:41 +03:00
CODE_OF_CONDUCT.md Add minimal code of conduct #9676 2020-03-16 12:44:28 +03:00
CONTRIBUTING.md Update CONTRIBUTING.md 2020-01-27 21:03:30 +03:00
docker-compose.yml Updated docker-compose.yml #1025 2017-07-26 20:05:32 +03:00
format_sources allow several <graphite> targets (#603) 2017-03-21 23:08:09 +04:00
LICENSE Update LICENSE 2020-01-23 17:38:30 +03:00
PreLoad.cmake Disable ninja for CLion 2019-09-11 10:23:20 +03:00
README.md Update README.md 2020-07-03 12:16:44 +03:00
release Added auto-generated machine-readable file with list of stable versions 2020-05-02 21:53:55 +03:00
SECURITY.md Update SECURITY.md (#12161) 2020-07-06 13:41:32 +03:00
uncrustify.cfg Better .clang-format and uncrustify.cfg 2018-11-29 15:45:34 +03:00
ya.make Changes required for auto-sync with Arcadia 2020-04-16 15:31:57 +03:00

ClickHouse — open source distributed column-oriented DBMS

ClickHouse is an open-source column-oriented database management system that allows generating analytical data reports in real time.

  • Official website has quick high-level overview of ClickHouse on main page.
  • Tutorial shows how to set up and query small ClickHouse cluster.
  • Documentation provides more in-depth information.
  • YouTube channel has a lot of content about ClickHouse in video format.
  • Slack and Telegram allow to chat with ClickHouse users in real-time.
  • Blog contains various ClickHouse-related articles, as well as announces and reports about events.
  • Yandex.Messenger channel shares announcements and useful links in Russian.
  • Contacts can help to get your questions answered if there are any.
  • You can also fill this form to meet Yandex ClickHouse team in person.

Upcoming Events