How to build the test widget using app-templates/cmake-apps-module
Defining CMake targets
Now that the test tree has been created, in each directory you have to create
a CMakeLists.txt file to hold the CMake's target definition. For each target
you need to specify a LABELS depending on the purpose of the files for each
directory. There are more explanations about using the cmake-apps-module (the
former app-templates submodule) in the documentation website.
Here is a cheat sheet to map the LABELS target for each classic test tree directory:
- etcuses the label TEST-CONFIG
- fixturesuses the label TEST-DATA
- testsuses the label TEST-DATA
i.e the etc folder:
PROJECT_TARGET_ADD(test-config)
    file(GLOB CONF_FILES "*.json")
    add_input_files("${CONF_FILES}")
    SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
        LABELS "TEST-CONFIG"
        OUTPUT_NAME ${TARGET_NAME}
    )
i.e the fixtures folder:
PROJECT_TARGET_ADD(test-fixtures)
    # Change the glob pattern to match your file's type
    file(GLOB DATA_FILES "*.sh" "*.data")
    add_input_files("${DATA_FILES}")
    SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
        LABELS "TEST-DATA"
        OUTPUT_NAME ${TARGET_NAME}
    )
i.e the tests folder:
PROJECT_TARGET_ADD(tests)
    file(GLOB CONF_FILES "*.lua")
    add_input_files("${CONF_FILES}")
    SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
        LABELS "TEST-DATA"
        OUTPUT_NAME ${TARGET_NAME}
    )
CAUTION: make sure that you have CMakeLists files that include your subdirectories target (cf: previous chapter
Write the tests).
Build the test widget
By default, the test widget is not built, you have to specify that you want to build it or use a special target.
Building at the same time than classic widget
Specify the option BUILD_TEST_WGT=TRUE when you configure your build.
ie:
cd build
cmake -DBUILD_TEST_WIDGET=TRUE ..
make
make widget
Building separately only the test widget
Just use the target test_widget after a classic build.
ie:
cd build
cmake ..
make
make test_widget