#
# 加载全局配置、公共模块，按分组逐级调用子目录，实现分组开关控制
#

cmake_minimum_required(VERSION 3.16)

# 固定 cmake 脚本目录
set(CMAKE_SCRIPT_DIR "${CMAKE_SOURCE_DIR}/cmake")

# 【关键】用完整路径引入公共脚本，不再依赖 MODULE_PATH
include(${CMAKE_SCRIPT_DIR}/Common.cmake)
include(${CMAKE_SCRIPT_DIR}/Software.cmake)

# 先检测并自动安装编译器
CheckAndInstallCompiler()

# 编译器就绪后再初始化工程与语言
project(
    SoftwareDeploy
    VERSION 1.0.0
    DESCRIPTION "Sunhpc hpc soft build scripts application"
    HOMEPAGE_URL "https://www.sunhpc.com"
)
enable_language(C CXX)

# 引入其余通用脚本
include(${CMAKE_SCRIPT_DIR}/DnfInstall.cmake)
include(${CMAKE_SCRIPT_DIR}/SrcBuild.cmake)
include(${CMAKE_SCRIPT_DIR}/ModuleEnv.cmake)

# 宏调用：去掉括号和函数之间的空格！CMake 宏语法要求
DEPLOY_MSG("===== Start Software Deployment Framework =====")
DEPLOY_MSG("Install Root: ${INSTALL_ROOT}")
DEPLOY_MSG("Modules Root: ${MODULES_ROOT}")

# 分组加载
if(ENABLE_SOFT_GROUP)
    DEPLOY_MSG(">>> Enter Core Software Group (MPI/VASP/Amber)")
    add_subdirectory(groups/soft_group)
endif()

if(ENABLE_TOOL_GROUP)
    DEPLOY_MSG(">>> Enter System Tool Group (DHCPD/HTTPD)")
    add_subdirectory(groups/tool_group)
endif()

if(ENABLE_ASST_GROUP)
    DEPLOY_MSG(">>> Enter Assist & Modules Env Group")
    add_subdirectory(groups/asst_group)
endif()

if(INSTALL_FFTW)
    DEPLOY_MSG(">>> Enter FFTW & Module Env Group")
    add_subdirectory(groups/soft_group)
endif()

if(INSTALL_HTTPD)
    DEPLOY_MSG(">>> Enter DNF/YUM Install ...")
    add_subdirectory(groups/tool_group)
endif()

if(INSTALL_DHCPD)
    DEPLOY_MSG(">>> Enter DNF/YUM Install ...")
    add_subdirectory(groups/tool_group)
endif()
