Making QtTest optional

Michael Palimaka kensington at gentoo.org
Wed May 28 13:00:32 UTC 2014


On 05/28/2014 09:06 PM, Alex Merry wrote:
> On 28/05/14 11:37, Michael Palimaka wrote:
>> On 05/28/2014 07:51 AM, Alex Merry wrote:
>>> On 27/05/14 13:14, Michael Palimaka wrote:
>>>> Hi,
>>>>
>>>> In most projects ported to KF5 with tests, I see that Qt5Test is being
>>>> hard-required regardless of whether tests are being built or not.
>>>> It's not a big issue, but it's not strictly correct either.
>>>>
>>>> In a couple of workspaces projects the following approach is used:
>>>>
>>>> find_package(Qt5Test ${QT_MIN_VERSION} CONFIG QUIET)
>>>> set_package_properties(Qt5Test PROPERTIES
>>>>          PURPOSE "Required for tests"
>>>>          TYPE OPTIONAL
>>>>          )
>>>> add_feature_info("Qt5Test" Qt5Test_FOUND "Required for building tests")
>>>> if (NOT Qt5Test_FOUND)
>>>>     set(BUILD_TESTING OFF CACHE BOOL "Build the testing tree.")
>>>> endif()
>>>>
>>>> Frameworks uses a different approach because of unified test locations,
>>>> but Qt5Test will only be pulled in if tests are built.
>>>>
>>>> Any thoughts?
>>>
>>> I think the current "best practice" for Frameworks is to make the
>>> add_subdirectory(autotests) conditional on BUILD_TESTING being set, and
>>> put the find_package(Qt5Test) in autotests/CMakeLists.txt. See, for
>>> example, KService.
>>>
>>> However, not all the frameworks have been changed to do this yet.
>>>
>>> Alex
>>>
>>
>> This is working fine for frameworks, but doesn't map well to
>> non-frameworks projects bests tests are often split between multiple
>> directories.
> 
> Ah, sorry, I clearly didn't read your email properly :-)
> 
> I'm actually not certain how such a set() command interacts with
> option() (which is what KDECMakeSettings uses to create the
> BUILD_TESTING option), but in principle I think that's a reasonable
> approach.
> 
> Alex
> 

It works fine (the snippet is from kwin) but it's worth noting set()
must be called before including KDECMakeSettings in order to have any
effect.



More information about the Kde-buildsystem mailing list