2023-05-08 06:32:41 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 工程属性设置
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 指定所需cmake的最低版本
|
|
|
|
|
cmake_minimum_required(VERSION 3.21 FATAL_ERROR)
|
|
|
|
|
# 设置项目名称 语言
|
2024-03-20 07:33:49 +00:00
|
|
|
|
project(LAMPCAE
|
2023-05-08 06:32:41 +00:00
|
|
|
|
VERSION 2.5.0
|
|
|
|
|
LANGUAGES CXX
|
2024-03-20 07:33:49 +00:00
|
|
|
|
DESCRIPTION "LAMPCAE ,基于 FastCAE,一款免费的CAE仿真软件研发支撑平台。"
|
|
|
|
|
HOMEPAGE_URL "http://www.LAMPCAE.com/"
|
2023-05-08 06:32:41 +00:00
|
|
|
|
)
|
|
|
|
|
|
2024-04-02 18:37:27 +00:00
|
|
|
|
set(PROJECT_VERSION 2.5.0)
|
|
|
|
|
set(PROJECT_VERSION_MAJOR 2)
|
|
|
|
|
set(PROJECT_VERSION_MINOR 5)
|
|
|
|
|
set(PROJECT_VERSION_PATCH 0)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 编译系统设置
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# c++语言标准
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
# 指定是否使用编译器特定的扩展
|
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
# 是否强制要求C++标准为${CMAKE_CXX_STANDARD},如果为OFF则可能使用旧的标准
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
# 默认编译动态库
|
|
|
|
|
set(BUILD_SHARED_LIBS ON)
|
2024-04-11 08:13:53 +00:00
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
|
set(CMAKE_AUTORCC ON)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 检测操作系统
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
2024-03-20 07:33:49 +00:00
|
|
|
|
set(LAMPCAE_LINUX True)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
|
|
|
set(CMAKE_INSTALL_PREFIX "/opt/${PROJECT_NAME}" CACHE PATH "${PROJECT_NAME}的安装路径" FORCE)
|
|
|
|
|
endif()
|
|
|
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
2024-03-20 07:33:49 +00:00
|
|
|
|
set(LAMPCAE_WIN True)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
|
|
|
set(CMAKE_INSTALL_PREFIX "c:/Program Files/${PROJECT_NAME}" CACHE PATH "${PROJECT_NAME}的安装路径" FORCE)
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
message(SEND_ERROR "No Support System!")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2023-05-08 07:16:46 +00:00
|
|
|
|
# 测试环境定义(如果在支持cmake系统的IDE中编写代码,可以打开以下注释,并将路径修改为自己的Qt路径)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
set(LAMPCAE_WIN ON)
|
2023-12-07 09:20:26 +00:00
|
|
|
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install")
|
2023-05-08 06:32:41 +00:00
|
|
|
|
message(STATUS "${PROJECT_NAME} will be installed to ${CMAKE_INSTALL_PREFIX}")
|
|
|
|
|
|
|
|
|
|
if (NOT DEFINED Qt5_DIR)
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_LINUX)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
set(Qt5_DIR "/opt/Qt5.14.2/5.14.2/gcc_64/lib/cmake/Qt5" CACHE PATH "Qt5Config.cmake所在目录" FORCE)
|
2024-03-20 07:33:49 +00:00
|
|
|
|
elseif(LAMPCAE_WIN)
|
|
|
|
|
set(Qt5_DIR "C:/Qt/5.15.2/msvc2019_64/lib/cmake/Qt5" CACHE PATH "Qt5Config.cmake所在目录" FORCE)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
endif()
|
2023-12-07 09:20:26 +00:00
|
|
|
|
endif()
|
2023-05-08 06:32:41 +00:00
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 编译选项设置
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 是否需要编译调试程序
|
2024-03-20 07:33:49 +00:00
|
|
|
|
option(LAMPCAE_ENABLE_DEV "ON:开启代码调试,OFF:仅安装程序" ON)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
# 是否自动下载依赖库
|
2024-03-20 07:33:49 +00:00
|
|
|
|
option(LAMPCAE_AUTO_DOWNLOAD "如果extlib不存在,则自动下载(git)依赖库" ON)
|
|
|
|
|
option(LAMPCAE_ENABLE_OPENMP "使用OpenMP" OFF)
|
|
|
|
|
option(LAMPCAE_ENABLE_MPI "使用MPI" OFF)
|
|
|
|
|
option(LAMPCAE_DOXYGEN_DOC "生成Doxygen文档" ON)
|
|
|
|
|
option(LAMPCAE_INSTALLATION_PACKAGE "生成${PROJECT_NAME}安装包" ON)
|
|
|
|
|
option(LAMPCAE_DEBUG_INFO "输出调试信息" ON)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 指定编译选项
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 仅对单配制编译器(Makefile Generators or Ninja)生效
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
|
|
|
set(CMAKE_BUILD_TYPE "Release")
|
|
|
|
|
endif()
|
|
|
|
|
if (POLICY CMP0091)
|
|
|
|
|
cmake_policy(SET CMP0091 NEW)
|
|
|
|
|
endif (POLICY CMP0091)
|
|
|
|
|
if(MSVC)
|
|
|
|
|
add_definitions(-DUNICODE -D_UNICODE)
|
|
|
|
|
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
|
|
|
|
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
|
|
|
|
add_compile_options(
|
|
|
|
|
$<$<CONFIG:>:/MD>
|
|
|
|
|
$<$<CONFIG:Debug>:/MDd>
|
|
|
|
|
$<$<CONFIG:Release>:/MD>
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 从系统查找OpenMP(动态库引入使用:OpenMP::OpenMP_CXX)
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_ENABLE_OPENMP)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
find_package(OpenMP)
|
|
|
|
|
if(OpenMP_CXX_FOUND)
|
2024-03-20 07:33:49 +00:00
|
|
|
|
add_definitions(-DLAMPCAE_HAS_OPENMP)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 从系统查找MPI(头文件路径:${MPI_CXX_INCLUDE_DIRS} 动态库引入使用:MPI::MPI_CXX)
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_ENABLE_MPI)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
find_package(MPI)
|
|
|
|
|
if(MPI_CXX_FOUND)
|
2024-03-20 07:33:49 +00:00
|
|
|
|
add_definitions(-DLAMPCAE_HAS_MPI)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
2023-06-07 02:15:08 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 输出调试信息
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_DEBUG_INFO)
|
2023-06-07 02:15:08 +00:00
|
|
|
|
add_definitions(-DOUTPUT_DEBUG_INFO)
|
|
|
|
|
endif()
|
|
|
|
|
|
2023-05-08 06:32:41 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 从系统查找Qt模块,开启Qt中间文件的自动生成
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
|
|
|
|
|
|
list(APPEND QtNeededModules
|
|
|
|
|
Core
|
|
|
|
|
Widgets
|
|
|
|
|
Gui
|
|
|
|
|
Xml
|
|
|
|
|
Svg # Qwt
|
|
|
|
|
OpenGL # Qwt
|
|
|
|
|
PrintSupport # QwtPolar
|
|
|
|
|
DBus
|
2024-04-02 18:37:27 +00:00
|
|
|
|
Qml DataVisualization Charts
|
2024-04-07 15:51:25 +00:00
|
|
|
|
|
2023-05-08 06:32:41 +00:00
|
|
|
|
)
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_LINUX)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
list(APPEND QtNeededModules XcbQpa)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_package(Qt5 COMPONENTS ${QtNeededModules} REQUIRED)
|
|
|
|
|
if(Qt5_FOUND)
|
|
|
|
|
message(STATUS "Found Qt5: ${Qt5_DIR}")
|
|
|
|
|
if(Qt5_POSITION_INDEPENDENT_CODE)
|
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
set(Qt5_DIR "Qt5_DIR-NOTFOUND" CACHE PATH "Qt5_DIR")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 从远程检索依赖库
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_AUTO_DOWNLOAD AND NOT EXISTS ${CMAKE_SOURCE_DIR}/extlib)
|
|
|
|
|
if(LAMPCAE_WIN)
|
|
|
|
|
set(_extlibGitAddr "https://gitee.com/DISOGitee/LAMPCAEWinExtlib.git")
|
|
|
|
|
elseif(LAMPCAE_LINUX)
|
|
|
|
|
set(_extlibGitAddr "https://gitee.com/DISOGitee/LAMPCAELinuxExtlib.git")
|
2023-05-08 06:32:41 +00:00
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_package(Git REQUIRED)
|
|
|
|
|
if(Git_FOUND)
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND
|
|
|
|
|
${GIT_EXECUTABLE} clone ${_extlibGitAddr} extlib
|
|
|
|
|
WORKING_DIRECTORY
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
|
RESULT_VARIABLE _status
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "Not Found Git")
|
|
|
|
|
message(STATUS "Please execute the command[git clone ${_extlibGitAddr} extlib] under the directory ${CMAKE_SOURCE_DIR}")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
# 引入LAMPCAE的依赖库
|
2023-05-08 06:32:41 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
|
|
|
|
|
|
|
|
|
# VTK
|
2024-03-20 07:33:49 +00:00
|
|
|
|
find_package(VTK REQUIRED)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
|
|
|
|
|
# OpenCASCADE
|
|
|
|
|
find_package(OpenCASCADE REQUIRED)
|
|
|
|
|
|
|
|
|
|
# Qwt
|
|
|
|
|
find_package(Qwt REQUIRED)
|
|
|
|
|
|
|
|
|
|
# HDF5
|
|
|
|
|
find_package(HDF5 REQUIRED)
|
|
|
|
|
|
|
|
|
|
# CGNS
|
|
|
|
|
find_package(CGNS REQUIRED)
|
|
|
|
|
|
|
|
|
|
# TecIO
|
|
|
|
|
find_package(TecIO REQUIRED)
|
|
|
|
|
|
|
|
|
|
# QuaZIP
|
|
|
|
|
find_package(QuaZIP REQUIRED)
|
|
|
|
|
|
|
|
|
|
# Gmsh
|
|
|
|
|
find_package(Gmsh REQUIRED)
|
|
|
|
|
|
|
|
|
|
# Python
|
|
|
|
|
find_package(Python REQUIRED)
|
|
|
|
|
|
2024-04-07 15:51:25 +00:00
|
|
|
|
# OpenMesh
|
|
|
|
|
find_package(OpenMesh CONFIG REQUIRED)
|
|
|
|
|
|
|
|
|
|
# VCGLIB
|
|
|
|
|
find_path(VCGLIB_INCLUDE_DIRS "img/img.h")
|
|
|
|
|
# FFTW3
|
|
|
|
|
find_package(FFTW3 CONFIG REQUIRED)
|
|
|
|
|
# gsl
|
|
|
|
|
find_package(GSL REQUIRED)
|
|
|
|
|
#GDAL
|
|
|
|
|
find_package(GDAL CONFIG REQUIRED)
|
2024-04-11 08:13:53 +00:00
|
|
|
|
#
|
|
|
|
|
find_package(unofficial-sqlite3 CONFIG REQUIRED)
|
2024-04-07 15:51:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-02 18:37:27 +00:00
|
|
|
|
message("CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 初始化其他导入文件
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# boost
|
|
|
|
|
include_directories(D:/vcpkg/installed/x64-windows/include)
|
|
|
|
|
|
|
|
|
|
# pcl
|
|
|
|
|
include_directories(SYSTEM C:/PCL/3rdParty/FLANN/include)
|
|
|
|
|
include_directories(SYSTEM C:/PCL/3rdParty/VTK/include/vtk-9.3)
|
|
|
|
|
include_directories(SYSTEM C:/PCL/include/pcl-1.14)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
2024-04-11 08:13:53 +00:00
|
|
|
|
find_package(Qt5 REQUIRED COMPONENTS Test Core Quick Sql Core Xml Opengl Gui Svg Xmlpatterns Uitools Widgets Qml Printsupport Sensors Quickwidgets Quick Concurrent Openglextensions Charts Datavisualization Network)
|
2024-04-02 18:37:27 +00:00
|
|
|
|
find_package(PCL)
|
|
|
|
|
include_directories(${PCL_INCLUDE_DIRS})
|
2024-04-07 15:51:25 +00:00
|
|
|
|
include_directories(${VCGLIB_INCLUDE_DIRS})
|
2024-04-02 18:37:27 +00:00
|
|
|
|
link_directories(${PCL_LIBRARY_DIRS})
|
|
|
|
|
add_definitions(${PCL_DEFINITIONS})
|
|
|
|
|
|
|
|
|
|
|
2023-05-08 06:32:41 +00:00
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 检索系统python(需要修改cmake搜索路径)
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
#find_package(PythonInterp REQUIRED)
|
|
|
|
|
#find_package(Python COMPONENTS Interpreter Development REQUIRED)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 开启项目分组
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
|
# 可以修改cmake预定义的target分组名称
|
|
|
|
|
#set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "Predefined")
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 定义GNU标准的安装目录(GNUInstallDirs.cmake)
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
include(GNUInstallDirs)
|
2024-04-07 15:51:25 +00:00
|
|
|
|
set(CMAKE_INSTALL_LIBDIR "lib" )
|
2023-05-08 06:32:41 +00:00
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 定义项目构建中间文件的生成目录
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_WIN)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Debug)
|
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Debug)
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Debug)
|
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/Release)
|
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/Release)
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/Release)
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_ENABLE_DEV)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
set(DEVRUNTIME_BINDIR_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG})
|
|
|
|
|
set(DEVRUNTIME_BINDIR_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE})
|
|
|
|
|
endif()
|
2024-03-20 07:33:49 +00:00
|
|
|
|
elseif(LAMPCAE_LINUX)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_ENABLE_DEV)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
set(DEVRUNTIME_BINDIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
|
|
|
|
set(DEVRUNTIME_LIBDIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 定义变量作为项目的安装路径
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
set(INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR})
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_WIN)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
set(INSTALL_LIBDIR ${CMAKE_INSTALL_BINDIR})
|
|
|
|
|
else()
|
|
|
|
|
set(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
|
endif()
|
|
|
|
|
#set(INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 编译位置无关的代码
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
|
|
|
|
|
|
# 定义源码路径
|
|
|
|
|
add_subdirectory(src)
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 单元测试Ctest
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
option(LAMPCAE_ENABLE_TEST "开启单元测试(尚未开发完成)" OFF)
|
|
|
|
|
if(LAMPCAE_ENABLE_TEST)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
# 开启测试
|
|
|
|
|
enable_testing()
|
|
|
|
|
#添加测试项目
|
|
|
|
|
add_subdirectory(test)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 生成文档(Doxygen + Breathe + Sphinx)
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_DOXYGEN_DOC)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
find_package(Doxygen REQUIRED)
|
|
|
|
|
if(DOXYGEN_FOUND)
|
|
|
|
|
message(STATUS "Found doc generate Tool: Doxygen")
|
|
|
|
|
include(UseDoxygen)
|
|
|
|
|
# 文档生成依赖Python解释器、Sphinx
|
|
|
|
|
#[[find_package(PythonInterp)
|
|
|
|
|
find_package(Sphinx)
|
|
|
|
|
|
|
|
|
|
if(PYTHONINTERP_FOUND AND SPHINX_FOUND)
|
|
|
|
|
message(STATUS "Found doc generate Tool: Sphinx")
|
|
|
|
|
include(FindPythonModule)
|
|
|
|
|
# Python的breathe模块负责协调Doxygen和Sphinx
|
|
|
|
|
find_python_module(breathe REQUIRED)
|
|
|
|
|
if(breathe_FOUND)
|
|
|
|
|
message(STATUS "Python module(breathe) version: ${breathe_VERSION}")
|
|
|
|
|
include(UseSphinx)
|
|
|
|
|
else()
|
|
|
|
|
message(STATUS "Generate sphinx documentation need python module: breathe")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
endif()]]
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
# 安装包生成(windows环境光需要NSIS 3.03+)
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2024-03-20 07:33:49 +00:00
|
|
|
|
if(LAMPCAE_INSTALLATION_PACKAGE)
|
|
|
|
|
if (LAMPCAE_WIN)
|
2023-05-08 06:32:41 +00:00
|
|
|
|
find_program(NSIS_EXECUTABLE NSIS.exe)
|
|
|
|
|
# WIX尚未调试,暂时取消
|
|
|
|
|
#find_program(WIX_EXECUTABLE candle.exe)
|
|
|
|
|
#if(NSIS_EXECUTABLE OR WIX_EXECUTABLE)
|
|
|
|
|
if(NSIS_EXECUTABLE)
|
|
|
|
|
include(${CMAKE_SOURCE_DIR}/cmake/CMakePack.cmake)
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
include(${CMAKE_SOURCE_DIR}/cmake/CMakePack.cmake)
|
|
|
|
|
endif ()
|
|
|
|
|
# 以下include必须放在主CMakeLists.txt文件最后面,否则在Visual Studio中不会生成PACKAGE(打包)目标
|
|
|
|
|
include(CPack)
|
|
|
|
|
endif()
|