build: cmake: Improve OCC_LIBRARY_DIR detection

This commit is contained in:
Priit Laes
2021-03-06 17:13:47 +02:00
committed by Thomas Krijnen
parent e4640df6f0
commit 28d168b96c
+35 -26
View File
@@ -224,48 +224,57 @@ endfunction()
if(BUILD_IFCGEOM) if(BUILD_IFCGEOM)
IF(MSVC) IF(MSVC)
add_debug_variants(LIBXML2_LIBRARIES "${LIBXML2_LIBRARIES}" d) add_debug_variants(LIBXML2_LIBRARIES "${LIBXML2_LIBRARIES}" d)
ENDIF() ENDIF()
# Open CASCADE headers # Open CASCADE
IF("${OCC_INCLUDE_DIR}" STREQUAL "") IF("${OCC_INCLUDE_DIR}" STREQUAL "")
FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx FIND_PATH(OCC_INCLUDE_DIR Standard_Version.hxx
[PATHS [PATHS
/usr/include/occt /usr/include/occt
/usr/include/oce /usr/include/oce
/usr/include/opencascade /usr/include/opencascade
] ]
REQUIRED REQUIRED
) )
IF(OCC_INCLUDE_DIR) IF(OCC_INCLUDE_DIR)
MESSAGE(STATUS "Found Open CASCADE include files in: ${OCC_INCLUDE_DIR}") MESSAGE(STATUS "Found Open CASCADE include files in: ${OCC_INCLUDE_DIR}")
ELSE() ELSE()
MESSAGE(FATAL_ERROR "Unable to find Open CASCADE include directory, specify OCC_INCLUDE_DIR manually.") MESSAGE(FATAL_ERROR "Unable to find Open CASCADE include directory, specify OCC_INCLUDE_DIR manually.")
ENDIF() ENDIF()
ELSE() ELSE()
SET(OCC_INCLUDE_DIR ${OCC_INCLUDE_DIR} CACHE FILEPATH "Open CASCADE header files") SET(OCC_INCLUDE_DIR ${OCC_INCLUDE_DIR} CACHE FILEPATH "Open CASCADE header files")
MESSAGE(STATUS "Looking for Open CASCADE include files in: ${OCC_INCLUDE_DIR}") MESSAGE(STATUS "Looking for Open CASCADE include files in: ${OCC_INCLUDE_DIR}")
ENDIF() ENDIF()
SET(OPENCASCADE_LIBRARY_NAMES SET(OPENCASCADE_LIBRARY_NAMES
TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO
TKFillet TKSTEP TKSTEPBase TKSTEPAttr TKXSBase TKSTEP209 TKIGES TKOffset TKHLR TKFillet TKSTEP TKSTEPBase TKSTEPAttr TKXSBase TKSTEP209 TKIGES TKOffset TKHLR
) )
IF("${OCC_LIBRARY_DIR}" STREQUAL "") IF("${OCC_LIBRARY_DIR}" STREQUAL "")
SET(OCC_LIBRARY_DIR "/usr/lib/" CACHE FILEPATH "Open CASCADE library files") find_library(OCC_LIBRARY TKernel
MESSAGE(STATUS "Looking for Open CASCADE library files in: ${OCC_LIBRARY_DIR}") [PATHS
MESSAGE(STATUS "Use OCC_LIBRARY_DIR to specify another directory") /usr/lib
]
REQUIRED
)
IF(OCC_LIBRARY)
GET_FILENAME_COMPONENT(OCC_LIBRARY_DIR ${OCC_LIBRARY} PATH)
MESSAGE(STATUS "Found Open CASCADE library files in: ${OCC_LIBRARY_DIR}")
ELSE()
MESSAGE(FATAL_ERROR "Unable find Open CASCADE library directory, specify OCC_LIBRARY_DIR manually.")
ENDIF()
ELSE() ELSE()
SET(OCC_LIBRARY_DIR ${OCC_LIBRARY_DIR} CACHE FILEPATH "Open CASCADE library files") SET(OCC_LIBRARY_DIR ${OCC_LIBRARY_DIR} CACHE FILEPATH "Open CASCADE library files")
MESSAGE(STATUS "Looking for Open CASCADE library files in: ${OCC_LIBRARY_DIR}") MESSAGE(STATUS "Looking for Open CASCADE library files in: ${OCC_LIBRARY_DIR}")
ENDIF() ENDIF()
FIND_LIBRARY(libTKernel NAMES TKernel TKerneld PATHS ${OCC_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(libTKernel NAMES TKernel TKerneld PATHS ${OCC_LIBRARY_DIR} NO_DEFAULT_PATH)
IF(libTKernel) IF(libTKernel)
MESSAGE(STATUS "Library files found") MESSAGE(STATUS "Required Open Cascade Library files found")
ELSE() ELSE()
MESSAGE(FATAL_ERROR "Unable to find library files, aborting") MESSAGE(FATAL_ERROR "Unable to find Open Cascade library files, aborting")
ENDIF() ENDIF()
# Use the found libTKernel as a template for all other OCC libraries # Use the found libTKernel as a template for all other OCC libraries