cmake_minimum_required(VERSION 3.20)

set(func_name "")

file(GLOB src_files "*.f")

foreach(ff IN LISTS src_files)
    get_filename_component(sn ${ff} NAME_WE)
    list(APPEND func_name ${sn})
endforeach()

# message(STATUS "${func_name}")

string(REPLACE ";" " " func_str "${func_name}")

# message(STATUS ${func_str})

enable_language(Fortran CXX)

include(FortranCInterface)
FortranCInterface_HEADER(
    FortranCInterface.h
    MACRO_NAMESPACE "FC_"
    # SYMBOL_NAMESPACE "fp_"
    SYMBOL_NAMESPACE ""
    # SYMBOLS ${func_str}
    SYMBOLS ${func_name}
)
FortranCInterface_VERIFY(CXX)

# set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

# add_library(fitpack_project STATIC EXCLUDE_FROM_ALL ${src_files} mcc_bsplines.h)
# add_library(fitpack_project STATIC EXCLUDE_FROM_ALL ${src_files})
add_library(fitpack_project STATIC ${src_files})

# get_target_property(FP_LIBDIR fitpack_project LIBRARY_OUTPUT_DIRECTORY)
# message(STATUS "FP_LIBDIR: ${FP_LIBDIR}")

add_library(fitpack STATIC IMPORTED GLOBAL)
set_target_properties(
    fitpack
    PROPERTIES
        IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/libfitpack_project.a
    # PROPERTIES IMPORTED_LOCATION ${FP_LIBDIR}/libfitpack_project.a
    # IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/fitpack/libfitpack_project.a
)
set_target_properties(
    fitpack
    PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}"
    # "${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR}"
)
add_dependencies(fitpack fitpack_project)
