144 lines
6.8 KiB
CMake
144 lines
6.8 KiB
CMake
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.15.0 FATAL_ERROR)
|
|||
|
|
|
|||
|
|
set(CMAKE_CXX_STANDARD 17)
|
|||
|
|
|
|||
|
|
PROJECT(PostEnv)
|
|||
|
|
|
|||
|
|
# 设置项目库文件前缀和后缀,设置项目库文件的输出目录
|
|||
|
|
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
|
|||
|
|
SET(PROJECT_BUILD_TYPE_POSTFIX "d")
|
|||
|
|
ELSE()
|
|||
|
|
SET(PROJECT_BUILD_TYPE_POSTFIX "")
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
#=========================引入外部依赖库=======================================
|
|||
|
|
# 设置第三方库目录
|
|||
|
|
SET(LIBRARY_THIRDPARTY_DIR ${PROJECT_SOURCE_DIR}/ThirdpartyLibs)
|
|||
|
|
|
|||
|
|
# 设置第三方依赖库的目录
|
|||
|
|
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|||
|
|
|
|||
|
|
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|||
|
|
SET(Qt5_DIR D:/Qt/Qt5.12.12/5.12.12/msvc2017_64/lib/cmake/Qt5)
|
|||
|
|
SET(SUBDIR_THIRDPARTY_DIR ${LIBRARY_THIRDPARTY_DIR}/Libs/windows-x86_64)
|
|||
|
|
SET(MODULE_VTK_DIR ${SUBDIR_THIRDPARTY_DIR}/vtk)
|
|||
|
|
SET(MODULE_ElaWidgetTools_DIR ${SUBDIR_THIRDPARTY_DIR}/ElaWidgetTools)
|
|||
|
|
SET(MODULE_QCustomPlot_DIR ${SUBDIR_THIRDPARTY_DIR}/QCustomPlot)
|
|||
|
|
SET(MODULE_PYTHON_DIR ${SUBDIR_THIRDPARTY_DIR}/python37)
|
|||
|
|
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
# 检查第三方依赖库目录是否存在
|
|||
|
|
IF(NOT EXISTS ${Qt5_DIR})
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified Qt5Config.cmake location!~ Qt5_DIR = ${Qt5_DIR}")
|
|||
|
|
ENDIF()
|
|||
|
|
IF(NOT EXISTS ${MODULE_VTK_DIR})
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified Module directory!~ MODULE_VTK_DIR = ${MODULE_VTK_DIR}")
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
# 设置第三方依赖库的头文件目录
|
|||
|
|
SET(LIBRARY_VTK_INCLUDE ${MODULE_VTK_DIR}/include)
|
|||
|
|
|
|||
|
|
# 设置第三方依赖库库文件目录,并检查是否存在额
|
|||
|
|
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|||
|
|
#Set FastCAE Linux Dependencies Libraries Path
|
|||
|
|
|
|||
|
|
#VTK
|
|||
|
|
SET(VTK_SO_DIR ${VTK_DIR2}/lib)
|
|||
|
|
IF(NOT EXISTS ${VTK_SO_DIR})
|
|||
|
|
MESSAGE(SEND_ERROR "VTK_SO_DIR is null, please specified VTK so directory!~")
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|||
|
|
#VTK
|
|||
|
|
#SET(MODULE_VTK_DIR D:/WorkSpace/comac_desk_app/ThirdpartyLibs/Libs/windows-x86_64/vtk)
|
|||
|
|
IF(NOT EXISTS ${MODULE_VTK_DIR})
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified Module directory!~ MODULE_VTK_DIR = ${MODULE_VTK_DIR}")
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
SET(LIBRARY_VTK_INCLUDE ${MODULE_VTK_DIR}/include)
|
|||
|
|
SET(LIBRARY_VTK_LIBDIR ${MODULE_VTK_DIR}/lib${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
SET(LIBRARY_VTK_BINDIR ${MODULE_VTK_DIR}/bin${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
FILE(GLOB LIBRARY_VTK_LIBS "${LIBRARY_VTK_LIBDIR}/*.lib")
|
|||
|
|
FILE(GLOB LIBRARY_VTK_BINS "${LIBRARY_VTK_BINDIR}/*.dll")
|
|||
|
|
IF(NOT LIBRARY_VTK_LIBS)
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified lib directory!~ LIBRARY_VTK_LIBDIR=${LIBRARY_VTK_LIBDIR}")
|
|||
|
|
ENDIF()
|
|||
|
|
IF(NOT LIBRARY_VTK_BINS)
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified bin directory!~ LIBRARY_VTK_BINDIR=${LIBRARY_VTK_BINDIR}")
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
# UI组件库
|
|||
|
|
SET(LIBRARY_ElaWidgetTools_INCLUDE ${MODULE_ElaWidgetTools_DIR}/include)
|
|||
|
|
SET(LIBRARY_ElaWidgetTools_LIBDIR ${MODULE_ElaWidgetTools_DIR}/lib${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
SET(LIBRARY_ElaWidgetTools_BINDIR ${MODULE_ElaWidgetTools_DIR}/bin${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
FILE(GLOB LIBRARY_ElaWidgetTools_LIBS "${LIBRARY_ElaWidgetTools_LIBDIR}/*.lib")
|
|||
|
|
FILE(GLOB LIBRARY_ElaWidgetTools_BINS "${LIBRARY_ElaWidgetTools_BINDIR}/*.dll")
|
|||
|
|
IF(NOT LIBRARY_ElaWidgetTools_BINS)
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified bin directory!~ LIBRARY_ElaWidgetTools_BINS=${LIBRARY_ElaWidgetTools_BINS}")
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
# QCustomPlot
|
|||
|
|
SET(LIBRARY_QCustomPlot_INCLUDE ${MODULE_QCustomPlot_DIR}/include)
|
|||
|
|
SET(LIBRARY_QCustomPlot_LIBDIR ${MODULE_QCustomPlot_DIR}/lib${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
SET(LIBRARY_QCustomPlot_BINDIR ${MODULE_QCustomPlot_DIR}/bin${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
FILE(GLOB LIBRARY_QCustomPlot_LIBS "${LIBRARY_QCustomPlot_LIBDIR}/*.lib")
|
|||
|
|
FILE(GLOB LIBRARY_QCustomPlot_BINS "${LIBRARY_QCustomPlot_BINDIR}/*.dll")
|
|||
|
|
IF(NOT LIBRARY_QCustomPlot_BINS)
|
|||
|
|
MESSAGE(SEND_ERROR "Please specified bin directory!~ LIBRARY_QCustomPlot_BINS=${LIBRARY_QCustomPlot_BINS}")
|
|||
|
|
ENDIF()
|
|||
|
|
ENDIF()
|
|||
|
|
|
|||
|
|
|
|||
|
|
set(outputDir_EXE ${PROJECT_SOURCE_DIR}/output/bin${PROJECT_BUILD_TYPE_POSTFIX})
|
|||
|
|
|
|||
|
|
# 复制第三方依赖库文件
|
|||
|
|
MESSAGE(STATUS "Start copying third-party dependent library files.")
|
|||
|
|
FILE(COPY ${LIBRARY_VTK_BINS}
|
|||
|
|
DESTINATION ${outputDir_EXE})
|
|||
|
|
|
|||
|
|
# 复制qt插件文件
|
|||
|
|
MESSAGE(STATUS "Start copying qt plugins files.")
|
|||
|
|
FILE(COPY ${Qt5_DIR}/../../../plugins/platforms
|
|||
|
|
${Qt5_DIR}/../../../plugins/imageformats
|
|||
|
|
${Qt5_DIR}/../../../plugins/platformthemes
|
|||
|
|
${Qt5_DIR}/../../../plugins/styles
|
|||
|
|
#${Qt5_DIR}/../../../plugins/audio
|
|||
|
|
DESTINATION ${outputDir_EXE}/plugins)
|
|||
|
|
|
|||
|
|
# 复制qwebengine翻译文件
|
|||
|
|
#MESSAGE(STATUS "Start copying qwebengine translations files.")
|
|||
|
|
#FILE(COPY ${Qt5_DIR}/../../../translations/qtwebengine_locales/zh-CN.pak
|
|||
|
|
# ${Qt5_DIR}/../../../translations/qtwebengine_locales/en-US.pak
|
|||
|
|
# DESTINATION ${outputDir_EXE}/translations/qtwebengine_locales)
|
|||
|
|
|
|||
|
|
# 复制qt库文件
|
|||
|
|
MESSAGE(STATUS "Start copying resource files and QT library files.")
|
|||
|
|
FILE(COPY ${Qt5_DIR}/../../../bin/Qt5Core${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
${Qt5_DIR}/../../../bin/Qt5Gui${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
${Qt5_DIR}/../../../bin/Qt5Widgets${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
${Qt5_DIR}/../../../bin/Qt5Xml${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5Network${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5WebChannel${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5Quick${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5Qml${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5WebEngineCore${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5WebEngineWidgets${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5WebView${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5QuickWidgets${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5QmlModels${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
${Qt5_DIR}/../../../bin/Qt5PrintSupport${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5Positioning${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/Qt5Multimedia${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../bin/QtWebEngineProcess${PROJECT_BUILD_TYPE_POSTFIX}.exe
|
|||
|
|
${Qt5_DIR}/../../../bin/libEGL${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
${Qt5_DIR}/../../../bin/libGLESv2${PROJECT_BUILD_TYPE_POSTFIX}.dll
|
|||
|
|
#${Qt5_DIR}/../../../resources
|
|||
|
|
DESTINATION ${outputDir_EXE})
|
|||
|
|
|
|||
|
|
#SET(POST_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/output)
|
|||
|
|
|
|||
|
|
ADD_SUBDIRECTORY(ComacMainProgram)
|
|||
|
|
ADD_SUBDIRECTORY(PostProcessing)
|
|||
|
|
ADD_SUBDIRECTORY(GenerateReport)
|