set(BINDINGS_LIB_NAME borco_shiboken_example)

shiboken_add_bindings(
    ${BINDINGS_LIB_NAME}
    WRAPPED_LIB core_lib
    BINDINGS_HEADER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/bindings.h
    BINDINGS_TYPESYSTEM_FILE ${CMAKE_CURRENT_SOURCE_DIR}/bindings.xml

    BINDINGS_GENERATED_SOURCES
    ${CMAKE_CURRENT_BINARY_DIR}/${BINDINGS_LIB_NAME}/${BINDINGS_LIB_NAME}_module_wrapper.cpp
    ${CMAKE_CURRENT_BINARY_DIR}/${BINDINGS_LIB_NAME}/dog_wrapper.cpp
    ${CMAKE_CURRENT_BINARY_DIR}/${BINDINGS_LIB_NAME}/icecream_wrapper.cpp
    ${CMAKE_CURRENT_BINARY_DIR}/${BINDINGS_LIB_NAME}/truck_wrapper.cpp

    BINDINGS_INSTALL_DIR ${BINDINGS_INSTALL_DIR}/${BINDINGS_LIB_NAME}

    SHIBOKEN_GENERATOR_OPTIONS
    --avoid-protected-hack
    --enable-parent-ctor-heuristic
    --enable-return-value-heuristic
    --generator-set=shiboken
    --output-directory=${CMAKE_CURRENT_BINARY_DIR}
    --use-isnull-as-nb-bool
    -T${CMAKE_CURRENT_SOURCE_DIR}

    SHIBOKEN_GENERATOR_INCLUDE_OTHER_PATHS ${CMAKE_CURRENT_SOURCE_DIR}

    # TODO: make these use the defaults returned by find_shiboken() if not set explicitly
    SHIBOKEN_GENERATOR ${SHIBOKEN_GENERATOR}
    SHIBOKEN_GENERATOR_INCLUDE_PATH ${SHIBOKEN_GENERATOR_INCLUDE_PATH}
    SHIBOKEN_PYSIDE_INCLUDE_PATH ${SHIBOKEN_PYSIDE_INCLUDE_PATH}
    SHIBOKEN_PYSIDE_SHARED_LIBRARIES_CMAKE ${SHIBOKEN_PYSIDE_SHARED_LIBRARIES_CMAKE}
    SHIBOKEN_MODULE_SHARED_LIBRARIES_CMAKE ${SHIBOKEN_MODULE_SHARED_LIBRARIES_CMAKE}
)
