add_executable(app main.cpp)
add_library(helper STATIC helper.cpp)
target_sources(app PRIVATE plain.cpp)

if(WIN32)
    target_sources(app PRIVATE win.cpp)
    target_sources(app PRIVATE FILE_SET HEADERS BASE_DIRS ./ FILES win.h)
    target_sources(app PRIVATE sub/nested.cpp)
    target_sources(app PRIVATE "listed1.cpp;listed2.cpp")
    target_sources(app PRIVATE absent.cpp)
    target_sources(app PRIVATE ${GENERATED}.cpp)
    target_sources(app PRIVATE *.cpp)
    target_sources(app PRIVATE build/generated.cpp)
    my_wrapper(app wrapped.cpp)
    add_executable(tool tool.cpp)
    source_group(grouped FILES grouped.cpp)
    install(FILES installed.cpp DESTINATION .)
    include(helper.cmake)
    set(DOC readme.md)
    set(EXTRA extra.cpp)
    list(APPEND MORE more.cpp)
elseif(APPLE)
    target_sources(helper PRIVATE mac.cpp)
else()
    target_sources(app PRIVATE other.cpp)
endif()

target_sources(app PRIVATE ${EXTRA})

function(some_helper)
    if(WIN32)
        target_sources(app PRIVATE inhelper.cpp)
    endif()
endfunction()
