cmake_minimum_required(VERSION 3.16..3.30)

project(PairwiseEncoding
    VERSION "1.0"
    LANGUAGES CXX
)
set(TARGET_NAME pairwise-encoder)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
include(plugin)

# Extension definition
# ====================
# Declare the binding
add_library(${TARGET_NAME}
	SHARED  # compile as an *.so
    encoder.cpp
	encoder.hpp
)
set_target_properties(${TARGET_NAME}
    PROPERTIES
    LINKER_LANGUAGE CXX
    POSITION_INDEPENDENT_CODE ON
)

target_link_libraries(${TARGET_NAME}
	PUBLIC
    Paramita::interfaces
)

# Testing
# =======
if (PARAMITA_TEST_PLUGINS)
    set(TEST_TARGET "test-${TARGET_NAME}")

    # Create test target
    add_executable(${TEST_TARGET} test_pairwise.cpp)
    target_link_libraries(${TEST_TARGET}
            PRIVATE
            ${TARGET_NAME}
    )
    ParamitaInterfaces_discover_tests(${TEST_TARGET})
endif ()

# How to install
install(
	TARGETS ${TARGET_NAME}
	LIBRARY DESTINATION pb-to-cnf-encoders
)
