cmake_minimum_required(VERSION 3.1)
project(Stream C)

# Set default build type
if(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE Release)
endif()

# Add OpenMP flags
find_package(OpenMP)
if(OPENMP_FOUND)
    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
endif()

# Add memory model flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcmodel=medium")

add_executable(stream stream.c)

# The C standard whose features are requested to build this target. See:
# https://cmake.org/cmake/help/latest/prop_tgt/C_STANDARD.html
set_property(TARGET stream PROPERTY C_STANDARD 11)
set_property(TARGET stream PROPERTY C_STANDARD_REQUIRED ON)

install (TARGETS stream DESTINATION bin)
