1 # - Try to find GTKMM
2 # Once done this will define
3 #
4 # GTKMM_FOUND - system has GTKMM
5 # GTKMM_INCLUDE_DIRS - the GTKMM include directory
6 # GTKMM_LIBRARIES - Link these to use GTKMM
7 # GTKMM_DEFINITIONS - Compiler switches required for using GTKMM
8 #
9 # Copyright (c) 2008 Joshua L. Blocher <verbalshadow@gmail.com>
10 #
11 # Redistribution and use is allowed according to the terms of the New
12 # BSD license.
13 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
14 #
17 if (GTKMM_LIBRARIES AND GTKMM_INCLUDE_DIRS)
18 # in cache already
19 set(GTKMM_FOUND TRUE)
20 else (GTKMM_LIBRARIES AND GTKMM_INCLUDE_DIRS)
21 # use pkg-config to get the directories and then use these values
22 # in the FIND_PATH() and FIND_LIBRARY() calls
23 if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
24 include(UsePkgConfig)
25 pkgconfig(gtkmm-2.4 _GTKMM_INCLUDEDIR _GTKMM_LIBDIR _GTKMM_LDFLAGS _GTKMM_CFLAGS)
26 else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
27 find_package(PkgConfig)
28 if (PKG_CONFIG_FOUND)
29 pkg_check_modules(_GTKMM gtkmm-2.4)
30 endif (PKG_CONFIG_FOUND)
31 endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
32 find_path(GTKMM_INCLUDE_DIR
33 NAMES
34 gtkmm.h
35 PATHS
36 ${_GTKMM_INCLUDEDIR}
37 /usr/include
38 /usr/local/include
39 /opt/local/include
40 /sw/include
41 PATH_SUFFIXES
42 gtkmm-2.4
43 )
45 find_path(GTKMM_CONFIG_INCLUDE_DIR
46 NAMES
47 gtkmmconfig.h
48 PATHS
49 ${_GDKMM_INCLUDEDIR}
50 /usr/include
51 /usr/local/include
52 /opt/local/include
53 /sw/include
54 /usr/lib/gtkmm-2.4/include
55 /usr/lib64/gtkmm-2.4/include
56 )
58 find_library(GTKMM-2.4_LIBRARY
59 NAMES
60 gtkmm-2.4
61 PATHS
62 ${_GTKMM_LIBDIR}
63 /usr/lib
64 /usr/local/lib
65 /opt/local/lib
66 /sw/lib
67 )
69 find_package(ATKMM REQUIRED)
70 find_package(GDKMM REQUIRED)
71 find_package(GIOMM REQUIRED)
72 find_package(GLIBMM REQUIRED)
73 find_package(PANGOMM REQUIRED)
74 find_package(CAIROMM REQUIRED)
76 if (GTKMM-2.4_LIBRARY)
77 set(GTKMM-2.4_FOUND TRUE)
78 endif (GTKMM-2.4_LIBRARY)
80 set(GTKMM_INCLUDE_DIRS
81 ${GTKMM_INCLUDE_DIR}
82 ${GTKMM_CONFIG_INCLUDE_DIR}
83 ${ATKMM_INCLUDE_DIR}
84 ${ATKMM_CONFIG_INCLUDE_DIR}
85 ${GDKMM_INCLUDE_DIR}
86 ${GDKMM_CONFIG_INCLUDE_DIR}
87 ${GIOMM_INCLUDE_DIR}
88 ${GIOMM_CONFIG_INCLUDE_DIR}
89 ${GLIBMM_INCLUDE_DIR}
90 ${GLIBMM_CONFIG_INCLUDE_DIR}
91 ${PANGOMM_INCLUDE_DIR}
92 ${PANGOMM_CONFIG_INCLUDE_DIR}
93 ${CAIROMM_INCLUDE_DIR}
94 ${CAIROMM_CONFIG_INCLUDE_DIR}
95 )
97 if (GTKMM-2.4_FOUND)
98 set(GTKMM_LIBRARIES
99 ${GTKMM_LIBRARIES}
100 ${GTKMM-2.4_LIBRARY}
101 ${ATKMM_LIBRARIES}
102 ${GDKMM_LIBRARIES}
103 ${GIOMM_LIBRARIES}
104 ${GLIBKMM_LIBRARIES}
105 ${PANGOMM_LIBRARIES}
106 ${CAIROMM_LIBRARIES}
107 )
108 endif (GTKMM-2.4_FOUND)
110 if (GTKMM_INCLUDE_DIRS AND GTKMM_LIBRARIES)
111 set(GTKMM_FOUND TRUE)
112 endif (GTKMM_INCLUDE_DIRS AND GTKMM_LIBRARIES)
114 if (GTKMM_FOUND)
115 if (NOT GTKMM_FIND_QUIETLY)
116 message(STATUS "Found GTKMM: ${GTKMM_LIBRARIES}")
117 endif (NOT GTKMM_FIND_QUIETLY)
118 else (GTKMM_FOUND)
119 if (GTKMM_FIND_REQUIRED)
120 message(FATAL_ERROR "Could not find GTKMM")
121 endif (GTKMM_FIND_REQUIRED)
122 endif (GTKMM_FOUND)
124 # show the GTKMM_INCLUDE_DIRS and GTKMM_LIBRARIES variables only in the advanced view
125 mark_as_advanced(GTKMM_INCLUDE_DIRS GTKMM_LIBRARIES)
127 endif (GTKMM_LIBRARIES AND GTKMM_INCLUDE_DIRS)