cmake_minimum_required(VERSION 3.20)

# define project metadata

    project(lab5 LANGUAGES C CXX
                    DESCRIPTION "lab5"
                    HOMEPAGE_URL "https://sgit.iue.tuwien.ac.at/360050/lab5")

# setting required language standards

    set(CMAKE_C_STANDARD 11)
    set(CMAKE_C_STANDARD_REQUIRED True)
    set(CMAKE_C_EXTENSIONS OFF)

    set(CMAKE_CXX_STANDARD 20)
    set(CMAKE_CXX_STANDARD_REQUIRED True)
    set(CMAKE_CXX_EXTENSIONS OFF)

# misc settings 

    # generate a compile_commands.json
    set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 
    # make all symbols visible on windows (which is default on unix)
    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) 

# find math library and link to all targets

    find_library(MATH_LIBRARY m)
    link_libraries(${MATH_LIBRARY})

# global includes

    include_directories(modules)

# include own targets

    add_executable(taskA taskA.c)
    add_executable(taskB taskB.c)
    add_executable(taskC taskC.c)

