89 lines
2.8 KiB
CMake
89 lines
2.8 KiB
CMake
|
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(tool)
|
|||
|
add_subdirectory(example)
|