Mario Emmenlauer created THRIFT-4560:
----------------------------------------
Summary: 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
Affects Versions: 1.0
Reporter: Mario Emmenlauer
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}}:
{{{
find_package(Qt5 QUIET COMPONENTS Core Network)
CMAKE_DEPENDENT_OPTION(WITH_QT5 "Build with Qt5 support" ON
"Qt5_FOUND" OFF)
}}}
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 must disable 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 {{cmake -DWITH_QT5=OFF}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)