You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (Jira)" <ji...@apache.org> on 2019/10/10 22:57:00 UTC
[jira] [Closed] (THRIFT-4560) The logic of CMAKE_DEPENDENT_OPTION
seems wrong and can break the build
[ https://issues.apache.org/jira/browse/THRIFT-4560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer closed THRIFT-4560.
------------------------------
> The logic of CMAKE_DEPENDENT_OPTION seems wrong and can break the build
> -----------------------------------------------------------------------
>
> Key: THRIFT-4560
> URL: https://issues.apache.org/jira/browse/THRIFT-4560
> Project: Thrift
> Issue Type: Bug
> Components: Build Process
> Reporter: Mario Emmenlauer
> Assignee: James E. King III
> Priority: Minor
> Fix For: 0.13.0
>
>
> 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 unused.
> 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
(v8.3.4#803005)