0027344: Configuration, CMake: bugs with detecting third-party products
[occt.git] / adm / templates / OpenCASCADEConfig.cmake.in
1 #-----------------------------------------------------------------------------
2 #
3 # OpenCASCADEConfig.cmake - OpenCASCADE CMake configuration file for external projects.
4 #
5 # This file is configured by OpenCASCADE.
6 #
7
8 if(OpenCASCADE_ALREADY_INCLUDED)
9   return()
10 endif()
11 set(OpenCASCADE_ALREADY_INCLUDED 1)
12
13 # The OpenCASCADE version number
14 set (OpenCASCADE_MAJOR_VERSION       "@OCC_VERSION_MAJOR@")
15 set (OpenCASCADE_MINOR_VERSION       "@OCC_VERSION_MINOR@")
16 set (OpenCASCADE_MAINTENANCE_VERSION "@OCC_VERSION_MAINTENANCE@")
17 set (OpenCASCADE_DEVELOPMENT_VERSION "@OCC_VERSION_DEVELOPMENT@")
18
19 # Compute the installation prefix from this OpenCASCADEConfig.cmake file 
20 # location, by going up one level + one level if "cmake" + one level if "lib".
21 # This is made to support different locations of CMake files:
22 # - in UNIX style: $INSTALL_DIR/lib/cmake/opencascade-<version>
23 # - in Windows style: $INSTALL_DIR/cmake
24 get_filename_component (OpenCASCADE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
25 get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
26 if (OpenCASCADE_INSTALL_PREFIX MATCHES "/cmake$")
27   get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
28 endif()
29 if (OpenCASCADE_INSTALL_PREFIX MATCHES "/lib$")
30   get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
31 endif()
32
33 # Set OpenCASCADE paths to headers, binaries, libraries, resources, tests, samples, data
34 set (OpenCASCADE_BINARY_DIR   "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_BIN@")
35 set (OpenCASCADE_LIBRARY_DIR  "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_LIB@")
36 set (OpenCASCADE_SCRIPT_DIR   "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_SCRIPT@")
37 set (OpenCASCADE_INCLUDE_DIR  "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_INCLUDE@")
38 set (OpenCASCADE_RESOURCE_DIR "${OpenCASCADE_INSTALL_PREFIX}/@INSTALL_DIR_RESOURCE@")
39
40 # The C and C++ flags added by OpenCASCADE to the cmake-configured flags.
41 set (OpenCASCADE_C_FLAGS      "@CMAKE_C_FLAGS@")
42 set (OpenCASCADE_CXX_FLAGS    "@CMAKE_CXX_FLAGS@")
43 @SET_OpenCASCADE_LINKER_FLAGS@
44
45 # List of available OpenCASCADE modules.
46 set (OpenCASCADE_MODULES @OCCT_MODULES_ENABLED@)
47 @SET_OpenCASCADE_MODULES_TOOLKITS@
48 # List of available OpenCASCADE libraries.
49 set (OpenCASCADE_LIBRARIES @OCCT_LIBRARIES@)
50
51 # OpenCASCADE global configuration options.
52 set (OpenCASCADE_COMPILER          "@COMPILER@")
53 set (OpenCASCADE_BUILD_WITH_DEBUG  @BUILD_WITH_DEBUG@)
54 set (OpenCASCADE_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@)
55 @SET_OpenCASCADE_BUILD_TYPE@
56
57 # Use of third-party libraries.
58 set (OpenCASCADE_WITH_TCL       @USE_TCL@)
59 set (OpenCASCADE_WITH_FREETYPE  @USE_FREETYPE@)
60 set (OpenCASCADE_WITH_FREEIMAGE @USE_FREEIMAGE@)
61 set (OpenCASCADE_WITH_GL2PS     @USE_GL2PS@)
62 set (OpenCASCADE_WITH_TBB       @USE_TBB@)
63 set (OpenCASCADE_WITH_VTK       @USE_VTK@)
64 @SET_OpenCASCADE_WITH_D3D@
65 @SET_OpenCASCADE_WITH_GLX@
66
67 # Import OpenCASCADE compile definitions, C and C++ flags for each installed configuration.
68 file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenCASCADECompileDefinitionsAndFlags-*.cmake")
69 foreach(f ${CONFIG_FILES})
70   include(${f})
71 endforeach()
72
73 if (NOT OpenCASCADE_FIND_COMPONENTS)
74   set (OpenCASCADE_FIND_COMPONENTS ${OpenCASCADE_MODULES})
75 endif ()
76
77 # Import OpenCASCADE targets.
78 foreach(_comp ${OpenCASCADE_FIND_COMPONENTS})
79   if (NOT ";${OpenCASCADE_MODULES};" MATCHES "${_comp}")
80     set(OpenCASCADE_FOUND False)
81     set(OpenCASCADE_NOTFOUND_MESSAGE "Specified unsupported component: ${_comp}")
82     if (NOT OpenCASCADE_FIND_QUIETLY)
83       message (ERROR ": ${OpenCASCADE_NOTFOUND_MESSAGE}")
84     endif()
85   else()
86     include("${CMAKE_CURRENT_LIST_DIR}/OpenCASCADE${_comp}Targets.cmake")
87   endif()
88 endforeach()