FreeCAD / src /Mod /Material /App /CMakeLists.txt
AbdulElahGwaith's picture
Upload folder using huggingface_hub
985c397 verified
# SPDX-License-Identifier: LGPL-2.1-or-later
if(MSVC)
add_definitions(-DFCAppMaterial -DHAVE_ACOSH -DHAVE_ASINH -DHAVE_ATANH)
else(MSVC)
add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H)
endif(MSVC)
add_definitions(-DYAML_CPP_STATIC_DEFINE)
if(BUILD_MATERIAL_EXTERNAL)
add_definitions(-DBUILD_MATERIAL_EXTERNAL)
endif(BUILD_MATERIAL_EXTERNAL)
set(Materials_LIBS
FreeCADApp
)
list(APPEND Materials_LIBS
${QtConcurrent_LIBRARIES}
)
if(yaml-cpp_VERSION VERSION_LESS 0.8.0)
list(APPEND Materials_LIBS
${YAML_CPP_LIBRARIES}
)
else()
list(APPEND Materials_LIBS
yaml-cpp::yaml-cpp
)
endif()
generate_from_py(Array2D)
generate_from_py(Array3D)
generate_from_py(MaterialFilter)
generate_from_py(MaterialFilterOptions)
generate_from_py(MaterialLibrary)
generate_from_py(MaterialManager)
generate_from_py(Material)
generate_from_py(ModelManager)
generate_from_py(ModelProperty)
generate_from_py(MaterialProperty)
generate_from_py(Model)
generate_from_py(UUIDs)
SET(MaterialsAPI_Files
MaterialAPI/__init__.py
MaterialAPI/MaterialManagerExternal.py
)
SET(MaterialsAPI_Files
MaterialAPI/__init__.py
MaterialAPI/MaterialManagerExternal.py
)
SET(Python_SRCS
Exceptions.cpp
Array2D.pyi
Array2DPyImp.cpp
Array3D.pyi
Array3DPyImp.cpp
MaterialFilterOptions.pyi
MaterialFilterOptionsPyImp.cpp
MaterialFilter.pyi
MaterialFilterPyImp.cpp
MaterialLibrary.pyi
MaterialLibraryPyImp.cpp
MaterialManager.pyi
MaterialManagerPyImp.cpp
MaterialProperty.pyi
MaterialPropertyPyImp.cpp
Material.pyi
MaterialPyImp.cpp
ModelManager.pyi
ModelManagerPyImp.cpp
ModelProperty.pyi
ModelPropertyPyImp.cpp
Model.pyi
ModelPyImp.cpp
UUIDs.pyi
UUIDsPyImp.cpp
)
SOURCE_GROUP("Python" FILES ${Python_SRCS})
SET(Materials_SRCS
${Python_SRCS}
AppMaterial.cpp
FolderTree.h
Library.cpp
Library.h
MaterialConfigLoader.cpp
MaterialConfigLoader.h
MaterialFilter.cpp
MaterialFilter.h
MaterialLibrary.cpp
MaterialLibrary.h
MaterialLoader.cpp
MaterialLoader.h
MaterialManager.cpp
MaterialManager.h
MaterialManagerLocal.cpp
MaterialManagerLocal.h
Materials.cpp
Materials.h
MaterialValue.cpp
MaterialValue.h
Model.cpp
Model.h
ModelLibrary.cpp
ModelLibrary.h
ModelLoader.cpp
ModelLoader.h
ModelManager.cpp
ModelManager.h
ModelManagerLocal.cpp
ModelManagerLocal.h
ModelUuids.cpp
ModelUuids.h
PreCompiled.h
PropertyMaterial.cpp
PropertyMaterial.h
PyVariants.cpp
PyVariants.h
trim.h
)
if(BUILD_MATERIAL_EXTERNAL)
list(APPEND Materials_SRCS
ExternalManager.cpp
ExternalManager.h
MaterialManagerExternal.cpp
MaterialManagerExternal.h
ModelManagerExternal.cpp
ModelManagerExternal.h
)
endif(BUILD_MATERIAL_EXTERNAL)
add_library(Materials SHARED ${Materials_SRCS})
if(FREECAD_USE_PCH)
target_precompile_headers(Materials PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
)
endif(FREECAD_USE_PCH)
target_include_directories(
Materials
PRIVATE
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
target_include_directories(
Materials
SYSTEM
PUBLIC
${YAML_CPP_INCLUDE_DIR}
${QtConcurrent_INCLUDE_DIRS}
)
if(BUILD_MATERIAL_EXTERNAL)
target_include_directories(Materials PUBLIC ${CMAKE_SOURCE_DIR}/src/3rdParty/lru-cache/include)
endif(BUILD_MATERIAL_EXTERNAL)
target_link_directories(Materials PUBLIC ${YAML_CPP_LIBRARY_DIR})
target_link_libraries(Materials ${Materials_LIBS})
if (MSVC)
target_compile_options(Materials PRIVATE /wd4251 /wd4273)
endif()
if(FREECAD_WARN_ERROR)
target_compile_warn_error(Materials)
endif()
SET_BIN_DIR(Materials Materials /Mod/Material)
SET_PYTHON_PREFIX_SUFFIX(Materials)
INSTALL(TARGETS Materials DESTINATION ${CMAKE_INSTALL_LIBDIR})
ADD_CUSTOM_TARGET(MaterialsAPILib ALL
SOURCES ${MaterialsAPI_Files} ${Material_QRC_SRCS}
)
fc_target_copy_resource(MaterialsAPILib
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_BINARY_DIR}/Mod/Material
${MaterialsAPI_Files})
INSTALL(FILES ${MaterialsAPI_Files} DESTINATION Mod/Material/MaterialAPI)