TLUSTY/new/build.sh

119 lines
3.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# ==============================================================================
# TLUSTY 和 SYNSPEC 构建脚本
# ==============================================================================
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 默认配置
BUILD_TYPE="Release"
INSTALL_DIR="${INSTALL_DIR:-../install}"
CLEAN_BUILD=false
PARALLEL_JOBS=$(nproc)
# 打印帮助信息
print_usage() {
echo "用法:$0 [选项]"
echo ""
echo "选项:"
echo " -d, --debug 使用 Debug 模式编译默认Release"
echo " -c, --clean 清理构建目录后重新编译"
echo " -i, --install DIR 指定安装目录(默认:../install"
echo " -j, --jobs N 设置并行编译任务数(默认:$(nproc)"
echo " -h, --help 显示此帮助信息"
echo ""
echo "示例:"
echo " $0 # 使用默认设置编译"
echo " $0 -d # Debug 模式编译"
echo " $0 -c -j 8 # 清理并使用 8 个任务编译"
echo " $0 -i /opt/tlusty # 安装到指定目录"
}
# 解析命令行参数
while [[ $# -gt 0 ]]; do
case $1 in
-d|--debug)
BUILD_TYPE="Debug"
shift
;;
-c|--clean)
CLEAN_BUILD=true
shift
;;
-i|--install)
INSTALL_DIR="$2"
shift 2
;;
-j|--jobs)
PARALLEL_JOBS="$2"
shift 2
;;
-h|--help)
print_usage
exit 0
;;
*)
echo -e "${RED}未知选项:$1${NC}"
print_usage
exit 1
;;
esac
done
# 获取脚本所在目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}TLUSTY/SYNSPEC 构建脚本${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
# 创建构建目录
BUILD_DIR="${SCRIPT_DIR}/build"
if [ "$CLEAN_BUILD" = true ]; then
echo -e "${YELLOW}清理构建目录...${NC}"
rm -rf "$BUILD_DIR"
fi
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"
# 运行 CMake 配置
echo -e "${YELLOW}运行 CMake 配置...${NC}"
cmake .. \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
-DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
-DBUILD_TLUSTY=ON \
-DBUILD_SYNSPEC=ON \
-DBUILD_TESTS=OFF \
-DENABLE_LARGE_MODEL=ON
# 编译
echo -e "${YELLOW}开始编译(使用 $PARALLEL_JOBS 个任务)...${NC}"
make -j"$PARALLEL_JOBS"
# 安装
echo -e "${YELLOW}安装到 $INSTALL_DIR ...${NC}"
make install
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}构建完成!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo "可执行文件位置:"
echo " TLUSTY: $INSTALL_DIR/bin/tlusty.exe"
echo " SYNSPEC: $INSTALL_DIR/bin/synspec.exe"
echo ""
echo "模块文件位置:"
echo " TLUSTY 模块: $INSTALL_DIR/include/tlusty/"
echo " SYNSPEC 模块: $INSTALL_DIR/include/synspec/"
echo ""