Merge pull request #18783 from tritao/cmake-coin-target

CMake: Coin3D build fixes
This commit is contained in:
Chris Hennes
2025-01-18 12:50:57 -05:00
committed by GitHub
3 changed files with 23 additions and 13 deletions

View File

@@ -69,7 +69,6 @@ if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER OR FREECAD_LIB
# OPENGL_gl_LIBRARY empty that results into linker errors
SetupOpenGL()
endif(BUILD_GUI)
SetupBoost()
SetupSalomeSMESH()
if (BUILD_FEM_NETGEN)
find_package(NETGEN)
@@ -89,6 +88,9 @@ if(NOT FREECAD_LIBPACK_USE OR FREECAD_LIBPACK_CHECKFILE_CLBUNDLER OR FREECAD_LIB
SetupShibokenAndPyside()
SetupMatplotlib()
endif(BUILD_GUI)
# SetupCoin3D can overwrite find_package(Boost) output so keep this after.
SetupBoost()
endif()
if(BUILD_VR)

View File

@@ -6,16 +6,19 @@ macro(SetupCoin3D)
find_library(COIN3D_LIBRARIES Coin)
endif ()
# Try MODULE mode
find_package(Coin3D)
if (NOT COIN3D_FOUND)
# Try CONFIG mode
find_package(Coin CONFIG REQUIRED)
if (Coin_FOUND)
set(COIN3D_INCLUDE_DIRS ${Coin_INCLUDE_DIR})
set(COIN3D_LIBRARIES ${Coin_LIBRARIES})
# Try CONFIG mode
find_package(Coin CONFIG)
if (Coin_FOUND)
set(COIN3D_INCLUDE_DIRS ${Coin_INCLUDE_DIR})
set(COIN3D_LIBRARIES ${Coin_LIBRARIES})
set(COIN3D_LIB_DIRS ${Coin_LIB_DIR})
else ()
# Try MODULE mode (FindCoin3D.cmake, included by CMake)
find_package(Coin3D)
if (NOT COIN3D_FOUND)
message(FATAL_ERROR "Could not find Coin3D")
endif ()
ENDIF ()
endif ()
IF (NOT COIN3D_VERSION)
file(READ "${COIN3D_INCLUDE_DIRS}/Inventor/C/basic.h" _coin3d_basic_h)

View File

@@ -58,7 +58,6 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR}/DAGView
${Boost_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIR}
${COIN3D_INCLUDE_DIRS}
${PYTHON_INCLUDE_DIRS}
${XercesC_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIR}
@@ -74,7 +73,6 @@ endif(MSVC)
if(MSVC)
set(FreeCADGui_LIBS
FreeCADApp
${COIN3D_LIBRARIES}
${OPENGL_gl_LIBRARY}
)
@@ -87,13 +85,20 @@ if(MSVC)
else(MSVC)
set(FreeCADGui_LIBS
FreeCADApp
${COIN3D_LIBRARIES}
${Boost_LIBRARIES}
${OPENGL_gl_LIBRARY}
${3DCONNEXION_LINKFLAGS}
)
endif(MSVC)
if (TARGET Coin::Coin)
list(APPEND FreeCADGui_LIBS Coin::Coin)
else()
include_directories(${COIN3D_INCLUDE_DIRS})
link_directories(${COIN3D_LIB_DIRS})
list(APPEND FreeCADGui_LIBS ${COIN3D_LIBRARIES})
endif()
if (WIN32)
if(FREECAD_QT_MAJOR_VERSION EQUAL 6)
list(APPEND FreeCADGui_LIBS