86 lines
3.1 KiB
CMake
86 lines
3.1 KiB
CMake
# ==============================================================================
|
|
# 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 "")
|