cmake_minimum_required(VERSION 3.2 FATAL_ERROR)

project(impl VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 14)



add_library(pattern
  src/Pattern.cpp)
target_include_directories(pattern PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE src)


add_library(janmatcher
  src/JanMatcher.cpp)
target_include_directories(janmatcher PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE src)
target_link_libraries(janmatcher util campers pattern)

add_library(libneumannmatcher
  src/NeumannMatcher.cpp)
target_include_directories(libneumannmatcher PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE src)
target_link_libraries(libneumannmatcher util campers pattern)

add_executable(main
  src/tMain.cpp)
target_include_directories(main PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE src)
target_compile_definitions(main PRIVATE MATCHER=1)
target_link_libraries(main util libneumannmatcher janmatcher jemalloc tbb)

add_executable(neumannmatcher
  src/tMain.cpp)
target_include_directories(neumannmatcher PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE src)
target_compile_definitions(neumannmatcher PRIVATE MATCHER=2)
target_link_libraries(neumannmatcher util libneumannmatcher janmatcher jemalloc tbb)
#enable_testing()
#find_package(GTest REQUIRED)
#add_executable(reference_tester src/tester.cpp)
#target_link_libraries(reference_tester baseline GTest::GTest GTest::Main)
#GTEST_ADD_TESTS(reference_tester "" AUTO)
