31 lines
955 B
CMake
31 lines
955 B
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(Assignment2)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(SOURCE_FILES
|
|
Assignment2.cpp)
|
|
add_executable(hw Assignment2.cpp)
|
|
add_executable(RandDistributions ${SOURCE_FILES})
|
|
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
|
target_compile_options(RandDistributions PRIVATE /W4 /permissive-)
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
target_compile_options(RandDistributions PRIVATE -Wall -Wextra -pedantic)
|
|
endif()
|
|
|
|
find_program(CLANG_FORMAT "clang-format")
|
|
if(CLANG_FORMAT)
|
|
unset(SOURCE_FILES_PATHS)
|
|
foreach(SOURCE_FILE ${SOURCE_FILES})
|
|
get_source_file_property(WHERE ${SOURCE_FILE} LOCATION)
|
|
set(SOURCE_FILES_PATHS ${SOURCE_FILES_PATHS} ${WHERE})
|
|
endforeach()
|
|
|
|
add_custom_target(
|
|
ClangFormatCOMMAND
|
|
${CLANG_FORMAT}
|
|
-i
|
|
-style=file
|
|
${SOURCE_FILES_PATHS})
|
|
add_dependencies(Assignment2 ClangFormat)
|
|
endif() |