diff --git a/CMakeLists.txt b/CMakeLists.txt index 11b2662..ed5face 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1300,6 +1300,9 @@ if(ENABLE_OCC) else() set(OCC_SYS_NAME ${CMAKE_SYSTEM_NAME}) endif() + find_package(OpenCASCADE CONFIG REQUIRED) + set(OCC_VERSION "${OpenCASCADE_VERSION}") + if(0) find_path(OCC_INC "Standard_Version.hxx" HINTS ENV CASROOT PATH_SUFFIXES inc include include/oce opencascade include/opencascade occt include/occt) @@ -1318,11 +1321,12 @@ if(ENABLE_OCC) message(STATUS "Found OpenCASCADE version ${OCC_VERSION} in ${OCC_INC}") endif() endif() + endif() if(OCC_VERSION AND OCC_VERSION VERSION_LESS ${OCC_MINIMAL_VERSION}) message(WARNING "Gmsh requires OpenCASCADE >= ${OCC_MINIMAL_VERSION}. " "Use CMAKE_PREFIX_PATH or the CASROOT environment variable " "to explicitly specify the installation path of OpenCASCADE") - elseif(OCC_INC) + elseif(1) if(OCC_VERSION AND OCC_VERSION VERSION_GREATER_EQUAL "7.8.0") set(OCC_LIBS_REQUIRED # subset of DataExchange @@ -1356,6 +1360,10 @@ if(ENABLE_OCC) else() set(OCC_LIBS) foreach(OCC ${OCC_LIBS_REQUIRED}) + if(NOT TARGET ${OCC}) + message(SEND_ERROR "No such OCC target: ${OCC}") + endif() + set(OCC_LIB "${OCC}" CACHE INTERNAL "imported target") find_library(OCC_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib ${OCC_SYS_NAME}/vc8/lib ${OCC_SYS_NAME}/vc9/lib ${OCC_SYS_NAME}/vc10/lib ${OCC_SYS_NAME}/vc11/lib @@ -1375,7 +1383,9 @@ if(ENABLE_OCC) # additional OCC libraries to handle reading of STEP/IGES attributes. Oh my... if(ENABLE_OCC_CAF) - find_package(Freetype) + set(FREETYPE_INCLUDE_DIRS "") + set(FREETYPE_LIBRARIES "") + set(FREETYPE FOUND "${OpenCASCADE_WITH_FREETYPE}") if(FREETYPE_FOUND) if(OCC_VERSION AND OCC_VERSION VERSION_GREATER_EQUAL "7.8.0") set(OCC_CAF_LIBS_REQUIRED @@ -1387,6 +1397,10 @@ if(ENABLE_OCC) list(LENGTH OCC_CAF_LIBS_REQUIRED NUM_OCC_CAF_LIBS_REQUIRED) set(OCC_CAF_LIBS) foreach(OCC ${OCC_CAF_LIBS_REQUIRED}) + if(NOT TARGET ${OCC}) + message(SEND_ERROR "No such OCC CAF target: ${OCC}") + endif() + set(OCC_CAF_LIB "${OCC}" CACHE INTERNAL "imported target") find_library(OCC_CAF_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib ${OCC_SYS_NAME}/vc8/lib ${OCC_SYS_NAME}/vc9/lib ${OCC_SYS_NAME}/vc10/lib ${OCC_SYS_NAME}/vc11/lib @@ -1423,7 +1437,6 @@ if(ENABLE_OCC) add_definitions(-DOCC_CONVERT_SIGNALS) endif() if(WIN32 AND MSVC) - add_definitions(-D "Standard_EXPORT=__declspec(dllimport)") endif() endif() endif() diff --git a/utils/misc/gmsh-config.cmake.in b/utils/misc/gmsh-config.cmake.in index 1c211e2..073c3ab 100644 --- a/utils/misc/gmsh-config.cmake.in +++ b/utils/misc/gmsh-config.cmake.in @@ -1,3 +1,7 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if("@ENABLE_OCC@") + find_dependency(OpenCASCADE CONFIG) +endif() include ( "${CMAKE_CURRENT_LIST_DIR}/gmshTargets.cmake" ) \ No newline at end of file