cmake_minimum_required(VERSION 3.10)
project(encoding_detector_library VERSION 1.0.0 LANGUAGES CXX C)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Source files from compact_enc_det
set(COMPACT_ENC_DET_SOURCES
  ../src/compact_enc_det/compact_enc_det.cc
  ../src/compact_enc_det/compact_enc_det_hint_code.cc
  ../src/util/encodings/encodings.cc
  ../src/util/languages/languages.cc
)

# Bridge source
set(BRIDGE_SOURCES
  ../src/encoding_detector_bridge.cc
)

# Create library
add_library(encoding_detector SHARED
  ${COMPACT_ENC_DET_SOURCES}
  ${BRIDGE_SOURCES}
)

# Include directories
target_include_directories(encoding_detector
  PUBLIC
    ../src
    ../src/compact_enc_det
    ../src/util
)

# Compiler flags for Windows
if(MSVC)
  target_compile_options(encoding_detector PRIVATE /W4 /MT)
else()
  target_compile_options(encoding_detector PRIVATE -Wall -Wextra -O2)
endif()

# Set output name
set_target_properties(encoding_detector PROPERTIES
  OUTPUT_NAME "encoding_detector"
  RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
  LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)
