# ============================================================================== # TLUSTY 和 SYNSPEC 套件顶层 CMake 配置文件 # ============================================================================== cmake_minimum_required(VERSION 3.15) project(TLUSTY_SYNSPEC_SUITE Fortran) # 项目版本 set(PROJECT_VERSION "208.54") # CMake 策略 cmake_policy(SET CMP0048 NEW) # ============================================================================== # 编译选项 # ============================================================================== option(BUILD_TLUSTY "Build TLUSTY" ON) option(BUILD_SYNSPEC "Build SYNSPEC" ON) option(BUILD_TESTS "Build and enable tests" OFF) option(ENABLE_LARGE_MODEL "Enable large memory model" ON) # ============================================================================== # 全局编译设置 # ============================================================================== set(CMAKE_FORTRAN_COMPILER gfortran) # 基础编译标志 set(CMAKE_Fortran_FLAGS "-O3 -fno-automatic") # 大内存模型选项(如果需要) if(ENABLE_LARGE_MODEL) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -mcmodel=medium") endif() # 调试标志 set(CMAKE_Fortran_FLAGS_DEBUG "-g -O0 -fcheck=all -Wall -Wextra") # Release 标志 set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -funroll-loops") # ============================================================================== # 子目录配置 # ============================================================================== if(BUILD_TLUSTY) message(STATUS "Building TLUSTY...") add_subdirectory(tlusty) endif() if(BUILD_SYNSPEC) message(STATUS "Building SYNSPEC...") add_subdirectory(synspec) endif() # ============================================================================== # 测试配置 # ============================================================================== if(BUILD_TESTS) enable_testing() message(STATUS "Building tests...") # add_subdirectory(tests) endif() # ============================================================================== # 安装配置 # ============================================================================== install(DIRECTORY DESTINATION ${CMAKE_INSTALL_PREFIX}/data) install(DIRECTORY DESTINATION ${CMAKE_INSTALL_PREFIX}/tests) # ============================================================================== # 打印总结信息 # ============================================================================== message(STATUS "") message(STATUS "========================================") message(STATUS "TLUSTY/SYNSPEC 套件配置总结") message(STATUS "========================================") message(STATUS " 版本:${PROJECT_VERSION}") message(STATUS " 编译器:${CMAKE_FORTRAN_COMPILER}") message(STATUS " 编译标志:${CMAKE_Fortran_FLAGS}") message(STATUS " 安装前缀:${CMAKE_INSTALL_PREFIX}") message(STATUS " 构建 TLUSTY: ${BUILD_TLUSTY}") message(STATUS " 构建 SYNSPEC: ${BUILD_SYNSPEC}") message(STATUS " 构建测试:${BUILD_TESTS}") message(STATUS " 大内存模型:${ENABLE_LARGE_MODEL}") message(STATUS "========================================") message(STATUS "")