Files
create/src/Mod/Material/Gui/CMakeLists.txt
ᴩʜᴏɴᴇᴅʀᴏɪᴅ 84dc354b56 SPDX [ 25 ][ Src / Mod / Material ] (#24979)
* [ Material ]: Update SPDX License Identifiers

* [ Material ]: Correct Test Material License

---------

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>
2025-11-03 11:57:40 -06:00

208 lines
4.9 KiB
CMake

# SPDX-License-Identifier: LGPL-2.1-or-later
if(MSVC)
add_definitions(-DHAVE_ACOSH -DHAVE_ATANH -DHAVE_ASINH)
else(MSVC)
add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H)
endif(MSVC)
if(BUILD_MATERIAL_EXTERNAL)
add_definitions(-DBUILD_MATERIAL_EXTERNAL)
endif(BUILD_MATERIAL_EXTERNAL)
set(MatGui_LIBS
Materials
FreeCADGui
)
list(APPEND MatGui_LIBS
${QtConcurrent_LIBRARIES}
)
set(Material_TR_QRC ${CMAKE_CURRENT_BINARY_DIR}/Resources/Material_translation.qrc)
qt_find_and_add_translation(QM_SRCS "Resources/translations/*_*.ts"
${CMAKE_CURRENT_BINARY_DIR}/Resources/translations)
qt_create_resource_file(${Material_TR_QRC} ${QM_SRCS})
qt_add_resources(MatGui_QRC_SRCS Resources/Material.qrc ${Material_TR_QRC})
generate_from_py(MaterialTreeWidget)
SET(Python_SRCS
MaterialTreeWidget.pyi
MaterialTreeWidgetPyImp.cpp
)
SOURCE_GROUP("Python" FILES ${Python_SRCS})
set(MatGui_UIC_SRCS
Array2D.ui
Array3D.ui
DlgDisplayProperties.ui
DlgInspectAppearance.ui
DlgInspectMaterial.ui
DlgMaterial.ui
DlgSettingsDefaultMaterial.ui
DlgSettingsMaterial.ui
ImageEdit.ui
ListEdit.ui
MaterialSave.ui
MaterialsEditor.ui
ModelSelect.ui
TextEdit.ui
)
if(BUILD_MATERIAL_EXTERNAL)
list(APPEND MatGui_UIC_SRCS
DlgSettingsExternal.ui
TaskMigrateExternal.ui
)
endif(BUILD_MATERIAL_EXTERNAL)
SET(MatGui_SRCS
${Python_SRCS}
${MatGui_QRC_SRCS}
${MatGui_UIC_HDRS}
AppearancePreview.h
AppearancePreview.cpp
AppMatGui.cpp
Array2D.cpp
Array2D.h
Array2D.ui
Array3D.cpp
Array3D.h
Array3D.ui
ArrayDelegate.cpp
ArrayDelegate.h
ArrayModel.cpp
ArrayModel.h
BaseDelegate.cpp
BaseDelegate.h
Command.cpp
DlgDisplayPropertiesImp.cpp
DlgDisplayPropertiesImp.h
DlgDisplayProperties.ui
DlgInspectAppearance.cpp
DlgInspectAppearance.h
DlgInspectAppearance.ui
DlgInspectMaterial.cpp
DlgInspectMaterial.h
DlgInspectMaterial.ui
DlgMaterialImp.cpp
DlgMaterialImp.h
DlgMaterial.ui
DlgSettingsDefaultMaterial.cpp
DlgSettingsDefaultMaterial.h
DlgSettingsDefaultMaterial.ui
DlgSettingsMaterial.cpp
DlgSettingsMaterial.h
DlgSettingsMaterial.ui
ImageEdit.cpp
ImageEdit.h
ImageEdit.ui
ListDelegate.cpp
ListDelegate.h
ListEdit.cpp
ListEdit.h
ListEdit.ui
ListModel.cpp
ListModel.h
MaterialDelegate.cpp
MaterialDelegate.h
MaterialSave.cpp
MaterialSave.h
MaterialSave.ui
MaterialsEditor.cpp
MaterialsEditor.h
MaterialsEditor.ui
MaterialTreeWidget.cpp
MaterialTreeWidget.h
ModelSelect.cpp
ModelSelect.h
ModelSelect.ui
PreCompiled.h
TextEdit.cpp
TextEdit.h
TextEdit.ui
Workbench.cpp
Workbench.h
WorkbenchManipulator.cpp
WorkbenchManipulator.h
)
if(BUILD_MATERIAL_EXTERNAL)
list(APPEND MatGui_SRCS
DlgSettingsExternal.cpp
DlgSettingsExternal.h
DlgSettingsExternal.ui
TaskMigrateExternal.cpp
TaskMigrateExternal.h
TaskMigrateExternal.ui
)
endif(BUILD_MATERIAL_EXTERNAL)
SET(MatGuiIcon_SVG
Resources/icons/list.svg
Resources/icons/Material_Edit.svg
Resources/icons/MaterialWorkbench.svg
Resources/icons/multiline.svg
Resources/icons/preferences-material.svg
Resources/icons/preview-rendered.svg
Resources/icons/preview-vector.svg
Resources/icons/table.svg
)
SET(MatGuiImages
Resources/images/default_image.png
)
SET(Material_Ui_Files
Resources/ui/materials-editor.ui
)
add_library(MatGui SHARED
${MatGui_SRCS}
${MatGuiIcon_SVG}
${MatGuiImages}
${Material_Ui_Files}
)
if(FREECAD_USE_PCH)
target_precompile_headers(MatGui PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:"${CMAKE_CURRENT_LIST_DIR}/PreCompiled.h">
)
endif(FREECAD_USE_PCH)
target_include_directories(
MatGui
PRIVATE
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/src
${CMAKE_BINARY_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
)
target_include_directories(
MatGui
SYSTEM
PUBLIC
${QtConcurrent_INCLUDE_DIRS}
)
target_link_libraries(MatGui ${MatGui_LIBS})
if (MSVC)
target_compile_options(MatGui PRIVATE /wd4251 /wd4273)
endif()
if (FREECAD_WARN_ERROR)
target_compile_warn_error(MatGui)
endif()
SET_BIN_DIR(MatGui MatGui /Mod/Material)
SET_PYTHON_PREFIX_SUFFIX(MatGui)
fc_copy_sources(MatGui "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Material" ${MatGuiIcon_SVG})
fc_copy_sources(MatGui "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Material" ${MatGuiImages})
fc_copy_sources(MatGui "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/Mod/Material" ${Material_Ui_Files})
INSTALL(TARGETS MatGui DESTINATION ${CMAKE_INSTALL_LIBDIR})
INSTALL(FILES ${MatGuiIcon_SVG} DESTINATION "${CMAKE_INSTALL_DATADIR}/Mod/Material/Resources/icons")
INSTALL(FILES ${MatGuiImages} DESTINATION "${CMAKE_INSTALL_DATADIR}/Mod/Material/Resources/images")
INSTALL(FILES ${Material_Ui_Files} DESTINATION "Mod/Material/Resources/ui")