cmake_minimum_required(VERSION 3.22)

# Projet principal (binaire)
project(FASTiso VERSION 1.0 LANGUAGES CXX)

# Options globales
if(CMAKE_BUILD_TYPE STREQUAL "")
   set(CMAKE_BUILD_TYPE Release)
endif()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# Dossiers de sortie
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})

# -----------------------
# Binaire principal
# -----------------------
file(GLOB_RECURSE FASTISO_SOURCES src/*.cpp)
file(GLOB_RECURSE FASTISO_HEADERS header/*.hpp)

add_executable(${PROJECT_NAME} ${FASTISO_SOURCES} ${FASTISO_HEADERS} fast_iso.cpp)

configure_file(FASTiso_config.h.in FASTiso_config.hpp)

target_include_directories(${PROJECT_NAME}
    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/header
)

target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_BINARY_DIR})

# Installation du binaire
install(TARGETS ${PROJECT_NAME}
    RUNTIME DESTINATION bin
)

# -----------------------
# Librairie C++ cppfastiso
# -----------------------
add_subdirectory(cppfastiso)


# -----------------------
# python module
# -----------------------
add_subdirectory(fastiso)