0027301: CMake: export targets for OCCT
[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 if (NOT OpenCASCADE_FIND_COMPONENTS)
68   set (OpenCASCADE_FIND_COMPONENTS ${OpenCASCADE_MODULES})
69 endif ()
70
71 # Import OpenCASCADE targets.
72 foreach(_comp ${OpenCASCADE_FIND_COMPONENTS})
73   if (NOT ";${OpenCASCADE_MODULES};" MATCHES "${_comp}")
74     set(OpenCASCADE_FOUND False)
75     set(OpenCASCADE_NOTFOUND_MESSAGE "Specified unsupported component: ${_comp}")
76     if (NOT OpenCASCADE_FIND_QUIETLY)
77       message (ERROR ": ${OpenCASCADE_NOTFOUND_MESSAGE}")
78     endif()
79   else()
80     include("${CMAKE_CURRENT_LIST_DIR}/OpenCASCADE${_comp}Targets.cmake")
81   endif()
82 endforeach()