Making QtTest optional
Alex Merry
alex.merry at kde.org
Wed May 28 11:06:41 UTC 2014
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
More information about the Kde-buildsystem
mailing list