thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mario Emmenlauer (JIRA)" <>
Subject [jira] [Commented] (THRIFT-4560) The logic of CMAKE_DEPENDENT_OPTION seems wrong and can break the build
Date Thu, 21 Jun 2018 10:16:00 GMT


Mario Emmenlauer commented on THRIFT-4560:

Thanks Aki! I will provide a PR for your review!

BTW, I agree that it could be considered a bug in a {{Find*.cmake}} script that it will fail
if Qt is incompletely installed. However I guess the cleanest solution is not to require {{find_package(Qt5)}}
at all if {{-DWITH_QT=OFF}}.

> The logic of CMAKE_DEPENDENT_OPTION seems wrong and can break the build
> -----------------------------------------------------------------------
>                 Key: THRIFT-4560
>                 URL:
>             Project: Thrift
>          Issue Type: Bug
>          Components: Build Process
>    Affects Versions: 1.0
>            Reporter: Mario Emmenlauer
>            Priority: Minor
> The cmake build uses {{CMAKE_DEPENDENT_OPTION}} in several places. But according to my
understanding, the resulting logic is wrong and can lead to problems. Consider the following
example for building with Qt4 or Qt5 from {{build/cmake/DefineOptions.cmake}}:
> {noformat}
>     find_package(Qt5 QUIET COMPONENTS Core Network)
>     CMAKE_DEPENDENT_OPTION(WITH_QT5 "Build with Qt5 support" ON
>                            "Qt5_FOUND" OFF)
> {noformat}
> If a user configures thrift with {{cmake -DWITH_QT5=ON}} but does not have Qt5 installed,
they will not get an error. They will just get a warning that the option {{WITH_QT5}} was
> Furthermore, if the user disables Qt5 (i.e. because its broken), then {{cmake -DWITH_QT5=OFF}}
will **not** disable the search for Qt5. If the {{find_package(Qt5 QUIET COMPONENTS Core Network)}}
fails in error, the build will fail, despite the explicit request for {{cmake -DWITH_QT5=OFF}}.
> My expected behavior is that if {{WITH_QT5=OFF}} is specified, that no Qt5 checks are
run and that a missing/broken Qt5 would not impact thrift in any way.

This message was sent by Atlassian JIRA

View raw message