cmake_minimum_required(VERSION 3.15)

project(llvm-mutaet)

# set(CMAKE_BUILD_TYPE Debug)

find_package(LLVM 11.1 REQUIRED)
Message(STATUS "LLVM detection: ${LLVM_VERSION}")
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")

include(AddLLVM)

add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})
link_directories(${LLVM_LIBRARY_DIRS})

add_subdirectory(Mutate)

set_target_properties(Mutate PROPERTIES
			SUFFIX ".so.${LLVM_VERSION_MAJOR}"
			POSITION_INDEPENDENT_CODE ON
                        CXX_STANDARD 17
			)

set(LLVM_VERSION_STRING ${LLVM_VERSION_MAJOR})
set(LLVM_BIN_FOLDER_STRING ${LLVM_TOOLS_BINARY_DIR})
configure_file(_llvm.py.in _llvm.py)

enable_testing()
file(COPY tests DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME unittest COMMAND find ./ -name "*.ll" -exec lit -v {} +)

# INSTALL_PROGRAMS(/bin llvm-mutate)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_llvm.py DESTINATION .)
install(TARGETS Mutate DESTINATION .)
