# Boost #TODO: remove filesystem usage, as it is already implemented in C++17 set(Boost_USE_STATIC_LIBS ON) find_package(Boost 1.67.0 REQUIRED COMPONENTS filesystem ) # Add source to this project's executable. add_library(meshBase "ElementTypes.cpp" "Element.cpp" "Node.cpp" "MeshEntity.cpp" "Face.h" "Face.cpp") add_library(mesh "Gmsh_IO.cpp" "Mesh.cpp" "MeshToVtkWriter.cpp" "MeshGenerator.cpp" "MeshingData.cpp" "MeshParameters.cpp" "AutoMeshSize.cpp" "Mesh_IO.h" "Gmsh_IO.cpp" "OFMesh_IO.cpp" "ElmerMesh_IO.h" "ElmerMesh_IO.cpp" "Face.h" "Face.cpp" "AnalyzeMesh.cpp") add_library(meshBase_api "ElementTypes.cpp" "Element.cpp" "Node.cpp" "MeshEntity.cpp" "Face.h" "Face.cpp") add_library(mesh_api "Gmsh_IO.cpp" "Mesh.cpp" "MeshToVtkWriter.cpp" "MeshGenerator.cpp" "MeshingData.cpp" "MeshParameters.cpp" "AutoMeshSize.cpp" "Mesh_IO.h" "Gmsh_IO.cpp" "OFMesh_IO.cpp" "ElmerMesh_IO.h" "ElmerMesh_IO.cpp" "Face.h" "Face.cpp" "AnalyzeMesh.cpp") find_library(vtkIOLegacy_LIB vtkIOLegacy-8.2 HINTS ${VTK_LIB_DIR}) target_include_directories(mesh PRIVATE ${PROJECT_SOURCE_DIR}/src ${THIRD_PARTY_DIR} ${Boost_INCLUDE_DIRS} ${VTK_INC_DIR} ${NETGEN_INCLUDE_DIRS} ${OpenCASCADE_INCLUDE_DIR} ${RYML_INC_DIR}) target_include_directories(meshBase PRIVATE ${PROJECT_SOURCE_DIR}/src ${THIRD_PARTY_DIR} ${OpenCASCADE_INCLUDE_DIR}) target_include_directories(mesh_api PRIVATE ${PROJECT_SOURCE_DIR}/src ${THIRD_PARTY_DIR} ${Boost_INCLUDE_DIRS} ${VTK_INC_DIR} ${NETGEN_INCLUDE_DIRS} ${OpenCASCADE_INCLUDE_DIR} ${RYML_INC_DIR}) target_include_directories(meshBase_api PRIVATE ${PROJECT_SOURCE_DIR}/src ${THIRD_PARTY_DIR} ${OpenCASCADE_INCLUDE_DIR}) find_library(vtkCommonDataModel_LIB vtkCommonDataModel-8.2 HINTS ${VTK_LIB_DIR}) set(VTK_MESH_LIBS ${vtkCommonDataModel_LIB}) # Libraries target_link_libraries(mesh PUBLIC ${Boost_LIBRARIES} ${VTK_MESH_LIBS} NetgenWrapper topology) target_link_libraries(meshBase PUBLIC ${Boost_LIBRARIES} NetgenWrapper topology) target_link_libraries(mesh_api PUBLIC ${Boost_LIBRARIES} ${VTK_MESH_LIBS} NetgenWrapper topology_api) target_link_libraries(meshBase_api PUBLIC ${Boost_LIBRARIES} NetgenWrapper topology_api) target_compile_definitions(meshBase_api PUBLIC CENOS_API=1) target_compile_definitions(mesh_api PUBLIC CENOS_API=1)