cmake_minimum_required(VERSION 3.11.0)
project(ujson)

find_package(PythonExtensions REQUIRED)

# Dependencies
include_directories(${CMAKE_SOURCE_DIR}/src/ujson/deps/double-conversion/double-conversion)
include_directories(${CMAKE_SOURCE_DIR}/src/ujson/python)
include_directories(${CMAKE_SOURCE_DIR}/src/ujson/lib)

add_definitions(-D_GNU_SOURCE)

set(WINDOWS_MODULE_SUFFIX ".pyd")


set(ujson_SRCS

    src/ujson/deps/double-conversion/double-conversion/bignum.cc
    src/ujson/deps/double-conversion/double-conversion/bignum-dtoa.cc
    src/ujson/deps/double-conversion/double-conversion/cached-powers.cc
    src/ujson/deps/double-conversion/double-conversion/double-to-string.cc
    src/ujson/deps/double-conversion/double-conversion/fast-dtoa.cc
    src/ujson/deps/double-conversion/double-conversion/fixed-dtoa.cc
    src/ujson/deps/double-conversion/double-conversion/string-to-double.cc
    src/ujson/deps/double-conversion/double-conversion/strtod.cc
    src/ujson/lib/dconv_wrapper.cc
    src/ujson/python/ujson.c
    src/ujson/python/objToJSON.c
    src/ujson/python/JSONtoObj.c
    src/ujson/lib/ultrajsonenc.c
    src/ujson/lib/ultrajsondec.c
)

add_library(ujson MODULE ${ujson_SRCS})
#target_link_libraries(builder ${LIBXML2_LIBRARY} ${LIBXSLT_LIBRARIES} ${LIBXSLT_EXSLT_LIBRARIES})
python_extension_module(ujson MODULE_SUFFIX ${WINDOWS_MODULE_SUFFIX})
install(TARGETS ujson LIBRARY DESTINATION lib/python3.8/site-packages)

