CMakeLists.txt 1.25 KB
set(GOOGLE_TEST_INDIVIDUAL ON)
include(AddGoogletest)

set(CLI_TESTS
    HelpersTest
    IniTest
    SimpleTest
    AppTest
    CreationTest
    SubcommandTest
    HelpTest
    NewParseTest
    )

set(CLI_MULTIONLY_TESTS
    TimerTest
    )

# Only affects current directory, so safe
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

foreach(T ${CLI_TESTS})

    add_executable(${T} ${T}.cpp ${CLI_headers})
    target_link_libraries(${T} PUBLIC CLI11)
    add_gtest(${T})

    if(CLI_SINGLE_FILE AND CLI_SINGLE_FILE_TESTS)
        add_executable(${T}_Single ${T}.cpp)
        target_link_libraries(${T}_Single PUBLIC CLI11_SINGLE)
        add_gtest(${T}_Single)
        set_target_properties(${T}_Single
            PROPERTIES
            FOLDER "Tests Single File")
    endif()

endforeach()

foreach(T ${CLI_MULTIONLY_TESTS})

    add_executable(${T} ${T}.cpp ${CLI_headers})
    target_link_libraries(${T} PUBLIC CLI11)
    add_gtest(${T})

endforeach()


# Link test (build error if inlines missing)
add_library(link_test_1 link_test_1.cpp)
target_link_libraries(link_test_1 PUBLIC CLI11)
set_target_properties(link_test_1 PROPERTIES FOLDER "Tests")
add_executable(link_test_2 link_test_2.cpp)
target_link_libraries(link_test_2 PUBLIC CLI11 link_test_1)
add_gtest(link_test_2)