cmake_minimum_required(VERSION 3.5)

project(crc16 LANGUAGES C)
project(crc32 LANGUAGES C)
project(jamcrc LANGUAGES C)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(LIBCRC_HEADERS
    libcrc-2.0/include/checksum.h
)

set(CRC16_SOURCES
    src/plugin_crc16.c
    libcrc-2.0/src/crc16.c
)

set(CRC32_SOURCES
    src/plugin_crc32.c
    libcrc-2.0/src/crc32.c
)

set(JAMCRC_SOURCES
    src/plugin_jamcrc.c
)

add_library(crc16 SHARED
    ${LIBCRC_HEADERS}
    ${CRC16_SOURCES}
)

add_library(crc32 SHARED
    ${LIBCRC_HEADERS}
    ${CRC32_SOURCES}
)

add_library(jamcrc SHARED
    ${LIBCRC_HEADERS}
    ${JAMCRC_SOURCES}
)

target_include_directories(crc16 PRIVATE libcrc-2.0/include)
target_include_directories(crc32 PRIVATE libcrc-2.0/include)
target_include_directories(jamcrc PRIVATE libcrc-2.0/include)

install(TARGETS crc16 DESTINATION share/checkbrute/plugins)
install(TARGETS crc32 DESTINATION share/checkbrute/plugins)
install(TARGETS jamcrc DESTINATION share/checkbrute/plugins)