set(CMAKE_SWIG_FLAGS "")
list(APPEND CMAKE_SWIG_FLAGS "-py3;-DPY3")
set(CMAKE_SWIG_OUTDIR csmapi)
set_source_files_properties(../csmapi.i
                            PROPERTIES CPLUSPLUS ON)

#Find dependencies
find_package(Python3 REQUIRED COMPONENTS Development)
find_path(CSM_INCLUDE_DIR NAMES csm.h
                          PATH_SUFFIXES csm)
find_library(CSM_LIBRARY NAMES csmapi)
message("-- Found CSM Include: ${CSM_INCLUDE_DIR}")
message("-- Found CSM Lib: ${CSM_LIBRARY}")
include_directories(${CSM_INCLUDE_DIR})

# Add and link
swig_add_library(csmapi
                 LANGUAGE python
                 SOURCES ../csmapi.i)
swig_link_libraries(csmapi ${CSM_LIBRARY} Python3::Module)
set_property(TARGET csmapi PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES TRUE)

set_target_properties(csmapi PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SWIG_OUTDIR})

SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")

if (APPLE)
     set_target_properties(csmapi PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
endif()

# Build out a standard directory structure
# file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests)

# Move the static files to move
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in
               ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/__init__.py
               ${CMAKE_CURRENT_BINARY_DIR}/csmapi/__init__.py
               COPYONLY)

# Setup the tests
enable_testing()
add_test(NAME python-wrapper-tests
        COMMAND python -m pytest ${CMAKE_SOURCE_DIR}/python/tests --lib ${CMAKE_CURRENT_BINARY_DIR}/../fixture/libfixturecsm${CMAKE_SHARED_LIBRARY_SUFFIX}
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})