# !! Please read the generic detection procedure in SalomeMacros.cmake !!
#
+# TODO: RNV: Check different OCCT layouts !!!
SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(OpenCASCADE OpenCASCADE_INCLUDE_DIR 2)
IF(OpenCASCADE_FOUND)
- SET(OPENCASCADE_VERSION_STR "${OpenCASCADE_MAJOR_VERSION}.${OpenCASCADE_MINOR_VERSION}.${OpenCASCADE_MAINTENANCE_VERSION}")
IF(NOT CAS_FIND_QUIETLY)
- IF(OpenCASCADE_DEVELOPMENT_VERSION)
- MESSAGE(STATUS "Found OpenCascade version: ${OPENCASCADE_VERSION_STR} (development)")
- ELSE()
- MESSAGE(STATUS "Found OpenCascade version: ${OPENCASCADE_VERSION_STR}")
- ENDIF()
+ MESSAGE(STATUS "Found OpenCascade version: ${OpenCASCADE_VERSION}")
ENDIF()
- # OPENCASCADE libraries
- SET(OPENCASCADE_INCLUDE_DIRS ${OpenCASCADE_INCLUDE_DIR})
- SET(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES})
- SET(OPENCASCADE_KERNEL ${OpenCASCADE_FoundationClasses_LIBRARIES})
- SET(OPENCASCADE_VISUALIZATION ${OpenCASCADE_Visualization_LIBRARIES})
- SET(OPENCASCADE_MODELINGDATA ${OpenCASCADE_ModelingData_LIBRARIES})
- SET(OPENCASCADE_MODELINGALGO ${OpenCASCADE_ModelingAlgorithms_LIBRARIES})
- SET(OPENCASCADE_OCAF ${OpenCASCADE_ApplicationFramework_LIBRARIES})
-
# OPENCASCADE definitions
- SET(OPENCASCADE_DEFINITIONS ${OpenCASCADE_C_FLAGS} ${OpenCASCADE_CXX_FLAGS} ${OpenCASCADE_LINKER_FLAGS} -DLIN)
- SET(OPENCASCADE_DEFINITIONS ${OPENCASCADE_DEFINITIONS} -DLIN) # Is it really necessary ???
+ SET(OpenCascade_DEFINITIONS ${OpenCASCADE_C_FLAGS} ${OpenCASCADE_CXX_FLAGS})
+ SET(OpenCascade_LDFLAGS ${OpenCASCADE_LINKER_FLAGS})
# Workaround: detect and add freetype to CAS_INCLUDE_DIRS
# It will be suppressed after the correction of the several bugs in
# the OCCT CMake configuration.
- SET(Freetype_DIR $ENV{FREETYPE_ROOT_DIR})
- FIND_PACKAGE(Freetype)
+ IF(OpenCASCADE_VERSION VERSION_LESS "7.1.1")
+ SET(Freetype_DIR $ENV{FREETYPE_ROOT_DIR})
+ FIND_PACKAGE(Freetype)
- # Standard CMake Findfreetype.cmake doesn't find ft2build.h, do it manually:
- # 1. Find custom freetype
- FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
+ # Standard CMake Findfreetype.cmake doesn't find ft2build.h, do it manually:
+ # 1. Find custom freetype
+ FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
PATHS $ENV{FREETYPE_ROOT_DIR}
PATH_SUFFIXES include/freetype2 include freetype2
NO_DEFAULT_PATH )
- # 2. Find native freetype, if custom doesn't found:
- IF(NOT FREETYPE_INCLUDE_DIR_ft2build)
- FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
- PATH_SUFFIXES include/freetype2 include freetype2 )
+ # 2. Find native freetype, if custom doesn't found:
+ IF(NOT FREETYPE_INCLUDE_DIR_ft2build)
+ FIND_PATH( FREETYPE_INCLUDE_DIR_ft2build ft2build.h
+ PATH_SUFFIXES include/freetype2 include freetype2 )
+ ENDIF()
+ SET(OpenCASCADE_INCLUDE_DIR ${OpenCASCADE_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIR_freetype2} ${FREETYPE_INCLUDE_DIR_ft2build})
ENDIF()
- SET(OPENCASCADE_INCLUDE_DIRS ${OPENCASCADE_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIR_freetype2} ${FREETYPE_INCLUDE_DIR_ft2build})
# End of workaround
-
+
+ SALOME_ACCUMULATE_HEADERS(OpenCASCADE_INCLUDE_DIR)
+ SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${OpenCASCADE_LIBRARY_DIR})
+
ELSE()
+ # TODO: Detect OpenCASCADE if it is distributed without CMake configuration.
IF(NOT CAS_FIND_QUIETLY)
MESSAGE(STATUS "Could not find OpenCASCADE ...")
ENDIF()