202 lines
4.5 KiB
CMake
202 lines
4.5 KiB
CMake
cmake_minimum_required (VERSION 3.8)
|
||
|
||
set(EIGEN3
|
||
"Eigen/Eigen"
|
||
)
|
||
|
||
set(JSON
|
||
"nlohmann/json.hpp"
|
||
"nlohmann/json_fwd.hpp"
|
||
)
|
||
|
||
set(PARSER
|
||
"parser/mpCompat.h"
|
||
"parser/mpDefines.h"
|
||
"parser/mpError.cpp"
|
||
"parser/mpError.h"
|
||
"parser/mpFuncCmplx.cpp"
|
||
"parser/mpFuncCmplx.h"
|
||
"parser/mpFuncCommon.cpp"
|
||
"parser/mpFuncCommon.h"
|
||
"parser/mpFuncMatrix.cpp"
|
||
"parser/mpFuncMatrix.h"
|
||
"parser/mpFuncNonCmplx.cpp"
|
||
"parser/mpFuncNonCmplx.h"
|
||
"parser/mpFuncStr.cpp"
|
||
"parser/mpFuncStr.h"
|
||
"parser/mpFwdDecl.h"
|
||
"parser/mpICallback.cpp"
|
||
"parser/mpICallback.h"
|
||
"parser/mpIfThenElse.cpp"
|
||
"parser/mpIfThenElse.h"
|
||
"parser/mpIOprt.cpp"
|
||
"parser/mpIOprt.h"
|
||
"parser/mpIOprtBinShortcut.cpp"
|
||
"parser/mpIOprtBinShortcut.h"
|
||
"parser/mpIPackage.cpp"
|
||
"parser/mpIPackage.h"
|
||
"parser/mpIPrecedence.h"
|
||
"parser/mpIToken.cpp"
|
||
"parser/mpIToken.h"
|
||
"parser/mpIValReader.cpp"
|
||
"parser/mpIValReader.h"
|
||
"parser/mpIValue.cpp"
|
||
"parser/mpIValue.h"
|
||
"parser/mpMatrix.h"
|
||
"parser/mpMatrixError.h"
|
||
"parser/mpOprtBinAssign.cpp"
|
||
"parser/mpOprtBinAssign.h"
|
||
"parser/mpOprtBinCommon.cpp"
|
||
"parser/mpOprtBinCommon.h"
|
||
"parser/mpOprtBinShortcut.cpp"
|
||
"parser/mpOprtBinShortcut.h"
|
||
"parser/mpOprtCmplx.cpp"
|
||
"parser/mpOprtCmplx.h"
|
||
"parser/mpOprtIndex.cpp"
|
||
"parser/mpOprtIndex.h"
|
||
"parser/mpOprtMatrix.cpp"
|
||
"parser/mpOprtMatrix.h"
|
||
"parser/mpOprtNonCmplx.cpp"
|
||
"parser/mpOprtNonCmplx.h"
|
||
"parser/mpOprtPostfixCommon.cpp"
|
||
"parser/mpOprtPostfixCommon.h"
|
||
"parser/mpPackageCmplx.cpp"
|
||
"parser/mpPackageCmplx.h"
|
||
"parser/mpPackageCommon.cpp"
|
||
"parser/mpPackageCommon.h"
|
||
"parser/mpPackageMatrix.cpp"
|
||
"parser/mpPackageMatrix.h"
|
||
"parser/mpPackageNonCmplx.cpp"
|
||
"parser/mpPackageNonCmplx.h"
|
||
"parser/mpPackageStr.cpp"
|
||
"parser/mpPackageStr.h"
|
||
"parser/mpPackageUnit.cpp"
|
||
"parser/mpPackageUnit.h"
|
||
"parser/mpParser.cpp"
|
||
"parser/mpParser.h"
|
||
"parser/mpParserBase.cpp"
|
||
"parser/mpParserBase.h"
|
||
"parser/mpParserMessageProvider.cpp"
|
||
"parser/mpParserMessageProvider.h"
|
||
"parser/mpRPN.cpp"
|
||
"parser/mpRPN.h"
|
||
"parser/mpScriptTokens.cpp"
|
||
"parser/mpScriptTokens.h"
|
||
"parser/mpStack.h"
|
||
"parser/mpTest.cpp"
|
||
"parser/mpTest.h"
|
||
"parser/mpTokenReader.cpp"
|
||
"parser/mpTokenReader.h"
|
||
"parser/mpTypes.h"
|
||
"parser/mpValReader.cpp"
|
||
"parser/mpValReader.h"
|
||
"parser/mpValue.cpp"
|
||
"parser/mpValue.h"
|
||
"parser/mpValueCache.cpp"
|
||
"parser/mpValueCache.h"
|
||
"parser/mpVariable.cpp"
|
||
"parser/mpVariable.h"
|
||
"parser/suSortPred.h"
|
||
"parser/suStringTokens.h"
|
||
"parser/utGeneric.h"
|
||
)
|
||
|
||
set(COMMON
|
||
"common/define.h"
|
||
"common/util.cpp"
|
||
"common/util.h"
|
||
)
|
||
|
||
set(GAUSS
|
||
"function/Gauss.h"
|
||
"function/Gauss.cpp"
|
||
"function/Gauss_Line.h"
|
||
"function/Gauss_Prism.h"
|
||
"function/Gauss_Quadrangle.h"
|
||
"function/Gauss_Tetrahedron.h"
|
||
"function/Gauss_Triangle.h"
|
||
)
|
||
|
||
set(BF
|
||
"function/BF.h"
|
||
"function/BF.cpp"
|
||
"function/BF_Line.cpp"
|
||
"function/BF_Prism.cpp"
|
||
"function/BF_Quadrangle.cpp"
|
||
"function/BF_Tetrahedron.cpp"
|
||
"function/BF_Triangle.cpp"
|
||
)
|
||
|
||
set(MESH
|
||
"mesh/Mesh_Base.cpp"
|
||
"mesh/Mesh_Base.h"
|
||
"mesh/Mesh_Find.cpp"
|
||
"mesh/Mesh_Interface.cpp"
|
||
)
|
||
|
||
set(MATERIAL
|
||
"material/Material_Base.h"
|
||
"material/Material_Base.cpp"
|
||
"material/Material_Interface.cpp"
|
||
)
|
||
|
||
set(PHY
|
||
"phy/Phy_Base.h"
|
||
"phy/Phy_Base.cpp"
|
||
"phy/Phy_Interface.cpp"
|
||
)
|
||
|
||
set(SOLVER
|
||
"solver/Solver_Base.cpp"
|
||
"solver/Solver_Base.h"
|
||
"solver/interface.cpp"
|
||
"solver/interface.h"
|
||
"solver/framework.h"
|
||
"solver/Solver_Interface.cpp"
|
||
"solver/eigen_solver.h"
|
||
"solver/eigen_solver.cpp"
|
||
)
|
||
|
||
set(POST
|
||
"post/Post_Base.h"
|
||
"post/Post_Base.cpp"
|
||
"post/Post_Power.cpp"
|
||
"post/Post_CalEletric.cpp"
|
||
"post/Post_Output.cpp"
|
||
)
|
||
|
||
set(KERNEL
|
||
"kernel/Assemble_Base.h"
|
||
"kernel/Assemble_Base.cpp"
|
||
"kernel/Assemble_EigenFreq_Boundary.cpp"
|
||
"kernel/Assemble_EigenFreq_Equation.cpp"
|
||
"kernel/Assemble_EigenMode_Boundary.cpp"
|
||
"kernel/Assemble_EigenMode_Equation.cpp"
|
||
"kernel/Assemble_kernel.cpp"
|
||
"kernel/Assemble_Scatter_2D_Boundary.cpp"
|
||
"kernel/Assemble_Scatter_3D_Boundary.cpp"
|
||
|
||
"kernel/Assemble_Scatter_Equation.cpp"
|
||
|
||
)
|
||
|
||
set(TEST
|
||
"test/Test_ReadData.cpp"
|
||
"test/Test_OutputData.cpp"
|
||
"test/interfaceClass.h"
|
||
)
|
||
|
||
set(INTERFACE
|
||
"Interface/FEM_Interface.h"
|
||
"Interface/FEM_Interface.cpp"
|
||
)
|
||
|
||
add_executable (OpticsFEM "test/Test_Main.cpp" ${EIGEN3} ${JSON} ${PARSER} ${COMMON} ${GAUSS} ${BF} ${MESH} ${MATERIAL} ${PHY} ${SOLVER} ${POST} ${KERNEL} ${TEST} ${INTERFACE} "post/Post_GetEb.cpp")
|
||
|
||
#add_library (OpticsFEM SHARED ${EIGEN3} ${JSON} ${PARSER} ${COMMON} ${GAUSS} ${BF} ${MESH} ${MATERIAL} ${PHY} ${SOLVER} ${POST} ${KERNEL} ${TEST} ${INTERFACE})
|
||
|
||
# 静态链接 eigen_solver.cpp,不再依赖 lib/eigensolver.lib
|
||
target_compile_definitions(OpticsFEM PRIVATE EIGENSOLVER_STATIC)
|
||
|
||
set(CMAKE_CXX_STANDARD 17)
|