gctl_potential/CMakeLists.txt
2024-12-18 23:20:06 +08:00

88 lines
2.8 KiB
CMake
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.

cmake_minimum_required(VERSION 3.15.2)
# 设置项目名称与语言
project(GCTL_POTENTIAL VERSION 1.0)
# 添加配置配件编写的函数
include(CMakePackageConfigHelpers)
# 添加编译选项
option(GCTL_POTENTIAL_FFTW3 "Use the FFTW3 library" ON)
option(GCTL_POTENTIAL_TESS "Use the Tess library" ON)
option(GCTL_POTENTIAL_MAGTESS "Use the MagTess library" ON)
option(GCTL_POTENTIAL_OPENMP "Use the OpenMP library" ON)
option(GCTL_POTENTIAL_AUTODIFF "Use the autodiff library" ON)
option(GCTL_POTENTIAL_EXPRTK "Use the exprtk library." ON)
# 传递安装地址给编译期宏变量
option(GCTL_POTENTIAL_INSTALL_PREFIX "Pass the install directory." ON)
set(DIR_VAR ${CMAKE_INSTALL_PREFIX})
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX})
message(STATUS "Processor: " ${CMAKE_HOST_SYSTEM_PROCESSOR})
message(STATUS "[GCTL_POTENTIAL] Use the FFTW3 library: " ${GCTL_POTENTIAL_FFTW3})
message(STATUS "[GCTL_POTENTIAL] Use the Tess library: " ${GCTL_POTENTIAL_TESS})
message(STATUS "[GCTL_POTENTIAL] Use the MagTess library: " ${GCTL_POTENTIAL_MAGTESS})
message(STATUS "[GCTL_POTENTIAL] Use the OpenMP library: " ${GCTL_POTENTIAL_OPENMP})
message(STATUS "[GCTL_POTENTIAL] Use the autodiff library: " ${GCTL_POTENTIAL_AUTODIFF})
message(STATUS "[GCTL_POTENTIAL] Use the exprtk library: " ${GCTL_POTENTIAL_EXPRTK})
find_package(GCTL REQUIRED)
include_directories(${GCTL_INC_DIR})
find_package(GCTL_GRAPHIC REQUIRED)
include_directories(${GCTL_GRAPHIC_INC_DIR})
find_package(GCTL_MESH REQUIRED)
include_directories(${GCTL_MESH_INC_DIR})
find_package(GCTL_OPTIMIZATION REQUIRED)
include_directories(${GCTL_OPTIMIZATION_INC_DIR})
if(GCTL_POTENTIAL_FFTW3)
if(NOT FFTW3_FOUND)
find_package(FFTW3 REQUIRED)
message(STATUS "Found FFTW3")
include_directories(${FFTW3_INC_DIR})
endif()
endif()
if(GCTL_POTENTIAL_TESS)
if(NOT LibTess_FOUND)
find_package(LibTess REQUIRED)
message(STATUS "Found LibTess")
include_directories(${LibTess_INC_DIR})
endif()
endif()
if(GCTL_POTENTIAL_MAGTESS)
if(NOT LibMagTess_FOUND)
find_package(LibMagTess REQUIRED)
message(STATUS "Found LibMagTess")
include_directories(${LibMagTess_INC_DIR})
endif()
endif()
if(GCTL_POTENTIAL_AUTODIFF)
if(NOT autodiff_FOUND)
find_package(Eigen3 REQUIRED)
if(EIGEN3_FOUND)
message(STATUS "Eigen3 Found.")
include_directories(${EIGEN3_INCLUDE_DIR})
endif()
find_package(autodiff REQUIRED)
if(autodiff_FOUND)
message(STATUS "autodiff Found.")
endif()
endif()
endif()
# 加入一个头文件配置让cmake对源码进行操作
configure_file(
"${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_SOURCE_DIR}/lib/potential/gctl_potential_config.h"
)
# 添加库源文件地址
add_subdirectory(lib)
add_subdirectory(example)
add_subdirectory(tool)