]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/include/Modules/FindGTK.cmake
DFCH: ManualPaint + imageUndoRedo -> 50% tested. (Save Images undo and redo) :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / include / Modules / FindGTK.cmake
1 #
2 # try to find GTK (and glib) and GTKGLArea
3 #
4
5 # GTK_INCLUDE_DIR   - Directories to include to use GTK
6 # GTK_LIBRARIES     - Files to link against to use GTK
7 # GTK_VERSION_2     - Use this Version
8 # GTK_VERSION_1     - Use this Version
9 # GTK_FOUND         - If false, don't try to use GTK
10
11 OPTION(GTK_VERSION_1    "Use GTK version 1.x"   1)
12 OPTION(GTK_VERSION_2    "Use GTK version 2.x"   2)
13
14 # Exclusion between the two version
15
16 IF(GTK_VERSION_2)
17   SET(GTK_VERSION_1 0)
18 ENDIF(GTK_VERSION_2)
19
20 IF(WIN32)
21   #win sucks !
22
23 ELSE(WIN32)
24
25   #Find new pkg-config
26   #FIND_PACKAGE(PKG) #don't know how to register !
27   FIND_PROGRAM(CMAKE_PKG_CONFIG pkg-config ../gtk2/bin ../../gtk2/bin)
28
29   #if PKG is found
30   IF(CMAKE_PKG_CONFIG)
31
32     SET(CMAKE_GTK1_CXX_FLAGS "`${CMAKE_PKG_CONFIG} --cflags gtk`")
33     SET(GTK1_LIBRARIES "`${CMAKE_PKG_CONFIG} --libs gtk`")
34
35     SET(CMAKE_GTK2_CXX_FLAGS "`${CMAKE_PKG_CONFIG} --cflags gtk+-2.0`")
36     SET(GTK2_LIBRARIES "`${CMAKE_PKG_CONFIG} --libs gtk+-2.0`")
37     
38   ELSE(CMAKE_PKG_CONFIG)
39     #we were not able to find to, lets try with:
40     #old gtk-config
41     FIND_PROGRAM(CMAKE_GTK_CONFIG gtk-config ../gtk/bin ../../gtk/bin)
42
43     SET(CMAKE_GTK1_CXX_FLAGS "`${CMAKE_GTK_CONFIG} --cflags`")
44     SET(GTK1_LIBRARIES "`${CMAKE_GTK_CONFIG} --libs`")
45
46     MESSAGE(FATAL_ERROR "GTK2.x was not found but GTK1.x was, please set GTK_VERSION_1
47     to ON")
48   ENDIF(CMAKE_PKG_CONFIG)
49   
50 ENDIF(WIN32)  
51
52 MARK_AS_ADVANCED(
53   CMAKE_GTK_CXX_FLAGS
54   CMAKE_GTK2_CXX_FLAGS
55   GTK_INCLUDE_DIR
56 )
57
58 #IF(GTK_LIBRARIES OR GTK2_LIBRARIES)
59   #only one gtk version was found !
60   #default GTK to this one (even if it GTK2)
61 #  OPTION()
62 #ENDIF(GTK_LIBRARIES OR GTK2_LIBRARIES)
63
64 #IF(GTK_LIBRARIES)
65 #  IF((GTK_INCLUDE_DIR OR CMAKE_GTK_CXX_FLAGS) AND GTK_VERSION_2)
66 #    SET(GTK_FOUND 1)
67 #    SET (GTK_LIBRARIES ${GTK1_LIBRARIES})
68 #    SET(CMAKE_GTK_CXX_FLAGS ${CMAKE_GTK2_CXX_FLAGS})
69 #  ENDIF((GTK_INCLUDE_DIR OR CMAKE_GTK_CXX_FLAGS) AND GTK_VERSION_2)
70 #
71 #  IF(GTK2_INCLUDE_DIR OR CMAKE_GTK2_CXX_FLAGS)
72 #    SET(GTK2_FOUND 1)
73 #  ENDIF(GTK2_INCLUDE_DIR OR CMAKE_GTK2_CXX_FLAGS)
74 #  
75 #ENDIF(GTK_LIBRARIES)
76
77
78
79
80 IF(GTK1_LIBRARIES OR GTK2_LIBRARIES)
81
82   IF(GTK_VERSION_2)
83     #looking for GTK2.x
84     IF(CMAKE_GTK2_CXX_FLAGS)
85       SET(GTK_FOUND 1)
86       SET (GTK_LIBRARIES ${GTK2_LIBRARIES})
87       SET(CMAKE_GTK_CXX_FLAGS ${CMAKE_GTK2_CXX_FLAGS})
88     ENDIF(CMAKE_GTK2_CXX_FLAGS)
89   ELSE(GTK_VERSION_2)
90     #looking for GTK1.x
91     IF(CMAKE_GTK1_CXX_FLAGS)
92       SET(GTK_FOUND 1)
93       SET (GTK_LIBRARIES ${GTK1_LIBRARIES})
94       SET(CMAKE_GTK_CXX_FLAGS ${CMAKE_GTK1_CXX_FLAGS})
95     ENDIF(CMAKE_GTK1_CXX_FLAGS)
96   ENDIF(GTK_VERSION_2)
97 ENDIF(GTK1_LIBRARIES OR GTK2_LIBRARIES)