cmake_minimum_required(VERSION 3.15...4.3)
project(extensionlib_example_cmake LANGUAGES C)

find_package(
  Python
  COMPONENTS Interpreter Development.Module
  REQUIRED)

python_add_library(_core MODULE example.c WITH_SOABI)
if(SKBUILD_STATE STREQUAL "editable")
  # Keep multi-config generators from adding a Release/Debug subdir.
  set_target_properties(
    _core PROPERTIES LIBRARY_OUTPUT_DIRECTORY
                     "${CMAKE_CURRENT_LIST_DIR}/../src/hatchling_example$<0:>")
endif()
install(TARGETS _core DESTINATION .)

if(NOT DEFINED SKBUILD_HATCHLING)
  message(
    FATAL_ERROR "This project should be built using scikit-build & hatchling")
endif()

# Testing metadata
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/metadata_file.txt" "Testing")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/metadata_file.txt"
        DESTINATION "${SKBUILD_METADATA_DIR}/extra_metadata/")

# Testing scripts
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/myscript"
     "#!/usr/bin/env python\nprint('Hello from myscript.py')")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/myscript"
        DESTINATION "${SKBUILD_SCRIPTS_DIR}")

# Testing data
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/data_file.txt" "Data")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/data_file.txt"
        DESTINATION "${SKBUILD_DATA_DIR}")
