Merge pull request #23746 from 3x380V/cmake

CMake: Use scoped include and library directories
This commit is contained in:
Chris Hennes
2025-09-10 21:54:51 -05:00
committed by GitHub
45 changed files with 509 additions and 349 deletions

View File

@@ -10,35 +10,10 @@ if(BUILD_MATERIAL_EXTERNAL)
add_definitions(-DBUILD_MATERIAL_EXTERNAL)
endif(BUILD_MATERIAL_EXTERNAL)
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
include_directories(
SYSTEM
${YAML_CPP_INCLUDE_DIR}
)
if(BUILD_MATERIAL_EXTERNAL)
include_directories(
${CMAKE_SOURCE_DIR}/src/3rdParty/lru-cache/include
)
endif(BUILD_MATERIAL_EXTERNAL)
link_directories(${YAML_CPP_LIBRARY_DIR})
set(Materials_LIBS
FreeCADApp
)
include_directories(
SYSTEM
${QtConcurrent_INCLUDE_DIRS}
)
list(APPEND Materials_LIBS
${QtConcurrent_LIBRARIES}
)
@@ -166,6 +141,29 @@ if(FREECAD_USE_PCH)
endif(FREECAD_USE_PCH)
add_library(Materials SHARED ${Materials_SRCS})
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(FREECAD_WARN_ERROR)

View File

@@ -8,22 +8,11 @@ if(BUILD_MATERIAL_EXTERNAL)
add_definitions(-DBUILD_MATERIAL_EXTERNAL)
endif(BUILD_MATERIAL_EXTERNAL)
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/src
${CMAKE_BINARY_DIR}/src
${CMAKE_CURRENT_BINARY_DIR}
)
set(MatGui_LIBS
Materials
FreeCADGui
)
include_directories(
SYSTEM
${QtConcurrent_INCLUDE_DIRS}
)
list(APPEND MatGui_LIBS
${QtConcurrent_LIBRARIES}
)
@@ -172,7 +161,28 @@ SET(Material_Ui_Files
Resources/ui/materials-editor.ui
)
add_library(MatGui SHARED ${MatGui_SRCS} ${MatGuiIcon_SVG} ${MatGuiImages} ${Material_Ui_Files})
add_library(MatGui SHARED
${MatGui_SRCS}
${MatGuiIcon_SVG}
${MatGuiImages}
${Material_Ui_Files}
)
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 (FREECAD_WARN_ERROR)
target_compile_warn_error(MatGui)