File size: 3,121 Bytes
985c397 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | # SPDX-License-Identifier: LGPL-2.1-or-later
add_library(MeshPart SHARED)
if (SMESH_FOUND)
add_definitions(-DHAVE_SMESH)
if(SMESH_VERSION_MAJOR LESS_EQUAL 9 AND SMESH_VERSION_MINOR LESS 10 )
add_definitions(-DHAVE_MEFISTO)
endif()
endif(SMESH_FOUND)
if(BUILD_FEM_NETGEN)
add_definitions(-DHAVE_NETGEN)
endif(BUILD_FEM_NETGEN)
target_include_directories(
MeshPart
PRIVATE
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/src
${pybind11_INCLUDE_DIR}
)
target_include_directories(
MeshPart
SYSTEM
PUBLIC
${SMESH_INCLUDE_DIR}
${VTK_INCLUDE_DIRS}
)
target_include_directories(
MeshPart
SYSTEM
PRIVATE
${pybind11_INCLUDE_DIR}
)
target_link_directories(MeshPart PUBLIC ${SMESH_LIB_PATH})
set(MeshPart_LIBS
Part
Mesh
)
if (FREECAD_USE_EXTERNAL_SMESH)
list(APPEND MeshPart_LIBS ${EXTERNAL_SMESH_LIBS})
else()
if (BUILD_FEM_NETGEN)
list(APPEND MeshPart_LIBS StdMeshers NETGENPlugin SMESH SMDS)
elseif (BUILD_SMESH)
list(APPEND MeshPart_LIBS StdMeshers SMESH SMDS)
endif()
endif()
SET(MeshPart_SRCS
AppMeshPart.cpp
AppMeshPartPy.cpp
CurveProjector.cpp
CurveProjector.h
MeshAlgos.cpp
MeshAlgos.h
Mesher.cpp
Mesher.h
PreCompiled.h
)
set(MeshPart_Scripts
../Init.py
)
if(FREECAD_USE_PCH)
target_precompile_headers(MeshPart PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
)
endif(FREECAD_USE_PCH)
# Suppress -Wundefined-var-template
if (MINGW AND CMAKE_COMPILER_IS_CLANGXX)
unset(_flag_found CACHE)
check_cxx_compiler_flag("-Wno-undefined-var-template" _flag_found)
if (_flag_found)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-undefined-var-template")
endif()
endif()
target_sources(MeshPart PRIVATE ${MeshPart_SRCS} ${MeshPart_Scripts})
target_link_libraries(MeshPart ${MeshPart_LIBS})
if (MSVC)
target_compile_options(MeshPart PRIVATE /wd4275)
endif()
if (FREECAD_WARN_ERROR)
target_compile_warn_error(MeshPart)
endif()
fc_target_copy_resource_flat(MeshPart
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_BINARY_DIR}/Mod/MeshPart
${MeshPart_Scripts}
)
SET_BIN_DIR(MeshPart MeshPart /Mod/MeshPart)
SET_PYTHON_PREFIX_SUFFIX(MeshPart)
INSTALL(TARGETS MeshPart DESTINATION ${CMAKE_INSTALL_LIBDIR})
################################ flat mesh ###############################
if (BUILD_FLAT_MESH)
SET(FLATMESH_SRCS
MeshFlattening.cpp
MeshFlattening.h
MeshFlatteningNurbs.h
MeshFlatteningNurbs.cpp
MeshFlatteningLscmRelax.h
MeshFlatteningLscmRelax.cpp
MeshFlatteningPy.cpp
)
add_library(flatmesh SHARED ${FLATMESH_SRCS})
SET_PYTHON_PREFIX_SUFFIX(flatmesh)
target_include_directories(flatmesh PRIVATE ${pybind11_INCLUDE_DIR})
target_link_libraries(flatmesh ${Python3_LIBRARIES} ${MeshPart_LIBS})
SET_BIN_DIR(flatmesh flatmesh /Mod/MeshPart)
install(TARGETS flatmesh DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif(BUILD_FLAT_MESH)
############################################################################
|