Code

Cmake: Fix some double linking flags
[inkscape.git] / CMakeScripts / ConfigInkscapeDepends.cmake
1 SET(INKSCAPE_DEPENDS\r
2 # the commented out below are required but pulled in with gtk+-2.0 & gtkmm-2.4
3 # with some duplication that we can only remove if lookup each sub-lib individaully\r
4 #    cairo\r
5 #    cairomm-1.0\r
6 #    glib-2.0
7 #    glibmm-2.4
8     gtk+-2.0
9     gtkmm-2.4
10     sigc++-2.0\r
11     lcms\r
12     libgc1c2\r
13     libpng\r
14     libxml-2.0\r
15     libxslt\r
16     ImageMagick++\r
17     libpopt\r
18     freetype2)\r
19 SET(INKSCAPE_OPTIONAL\r
20     gnome-vfs-2.0\r
21     libwpg-0.1\r
22     libssl)\r
23 \r
24 include(UsePkgConfig)\r
25 \r
26 # Dependencies Packages\r
27 message(STATUS "")\r
28 message(STATUS "")\r
29 message(STATUS "Checking For REQUIRED Libraries for Building Inkscape.")\r
30 SET(INKSCAPE_LINK_FLAGS "")\r
31 FOREACH(dep ${INKSCAPE_DEPENDS})\r
32     # This is a hack due to a bug in Cmake vars system, Uncomment if using a version older than 2.4 //verbalshadow\r
33 #    IF("${dep}" MATCHES "gtk\\+-2.0")\r
34 #        SET(dep_name "GTK2")\r
35 #    ELSE("${dep}" MATCHES "gtk\\+-2.0")\r
36        SET(dep_name "${dep}")\r
37 #    ENDIF("${dep}" MATCHES "gtk\\+-2.0")\r
38 \r
39     PKGCONFIG_FOUND(${dep} "${dep}_FOUND")\r
40     PKGCONFIG(${dep} "${dep_name}_INCLUDE_DIR" "${dep_name}_LINK_DIR" "${dep_name}_LINK_FLAGS" "${dep_name}_CFLAGS")\r
41 #    PKGCONFIG_VERSION(${dep} "${dep}_VERSION")\r
42     IF("${dep}_FOUND")\r
43         message(STATUS "${dep}: FOUND")\r
44         # Set Compiler Flags\r
45         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${dep_name}_CFLAGS}")\r
46 #        SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${dep_name}_CFLAGS}")\r
47         SET(INKSCAPE_LINK_FLAGS "${INKSCAPE_LINK_FLAGS} ${${dep_name}_LINK_FLAGS}")\r
48     ELSE("${dep}_FOUND")\r
49         message(STATUS "${dep}: NOT FOUND")\r
50     ENDIF("${dep}_FOUND")
51 ENDFOREACH(dep)
52 \r
53 # Include non pkg-config dependencies:\r
54 INCLUDE(FindBoost)\r
55 INCLUDE(FindGC)\r
56 INCLUDE(IncludeJava)\r
57 # end Dependencies\r
58 \r
59 # Optional Dependencies Packages\r
60 message(STATUS "")\r
61 message(STATUS "")\r
62 message(STATUS "Checking For OPTIONAL Libraries for Building Inkscape.")\r
63 message(STATUS "These add additional functionality to Inkscape.")\r
64 FOREACH(opt ${INKSCAPE_OPTIONAL})\r
65     SET(opt_name "${opt}")\r
66     PKGCONFIG_FOUND(${opt} "${opt}_FOUND")\r
67     PKGCONFIG(${opt} "${opt_name}_INCLUDE_DIR" "${opt_name}_LINK_DIR" "${opt_name}_LINK_FLAGS" "${opt_name}_CFLAGS")\r
68 #    PKGCONFIG_VERSION(${opt} "${opt}_VERSION")\r
69     IF("${opt}_FOUND")\r
70         message(STATUS "${opt}: FOUND")\r
71         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${opt_name}_CFLAGS}")
72 #        SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${opt_name}_CFLAGS}")\r
73         SET(INKSCAPE_LINK_FLAGS "${INKSCAPE_LINK_FLAGS} ${${opt_name}_LINK_FLAGS}")\r
74     ELSE("${opt}_FOUND")\r
75         message(STATUS "${opt}: NOT FOUND")\r
76     ENDIF("${opt}_FOUND")\r
77 ENDFOREACH(opt)\r
78 # end Optional Dependencies\r
79 message(STATUS "")\r
80 message(STATUS "")\r
81 \r
82 SET(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} -j2")\r
83 \r
84 #---------------\r
85 # From here on:\r
86 # Set all HAVE_XXX variables, to correctly set all defines in config.h\r
87 \r
88 INCLUDE (CheckIncludeFiles)\r
89 INCLUDE (CheckFunctionExists)\r
90 INCLUDE (CheckStructMember)\r
91 # usage: CHECK_INCLUDE_FILES (<header> <RESULT_VARIABLE> )\r
92 # usage: CHECK_FUNCTION_EXISTS (<function name> <RESULT_VARIABLE> )\r
93 # usage: CHECK_STRUCT_MEMBER (<struct> <member> <header> <RESULT_VARIABLE>)\r
94 \r
95 CHECK_INCLUDE_FILES(boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP)\r
96 CHECK_INCLUDE_FILES(cairo-pdf.h HAVE_CAIRO_PDF)\r
97 CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR)\r
98 CHECK_FUNCTION_EXISTS(fpsetmask HAVE_FPSETMASK)\r
99 CHECK_INCLUDE_FILES(gc/gc.h HAVE_GC_GC_H)\r
100 CHECK_INCLUDE_FILES(gc.h HAVE_GC_H)\r
101 CHECK_INCLUDE_FILES(getopt.h HAVE_GETOPT_H)\r
102 CHECK_FUNCTION_EXISTS(gettext HAVE_GETTEXT)\r
103 CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)\r
104 CHECK_FUNCTION_EXISTS(gtk_window_fullscreen HAVE_GTK_WINDOW_FULLSCREEN)\r
105 CHECK_FUNCTION_EXISTS(gtk_window_set_default_icon_from_file HAVE_GTK_WINDOW_SET_DEFAULT_ICON_FROM_FILE)\r
106 CHECK_INCLUDE_FILES(ieeefp.h HAVE_IEEEFP_H)\r
107 CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)\r
108 CHECK_INCLUDE_FILES(locale.h HAVE_LC_MESSAGES)\r
109 CHECK_INCLUDE_FILES(locale.h HAVE_LOCALE_H)\r
110 CHECK_INCLUDE_FILES(libintl.h HAVE_LIBINTL_H)\r
111 CHECK_INCLUDE_FILES(fcntl.h HAVE_FCNTL_H)\r
112 CHECK_FUNCTION_EXISTS(mallinfo HAVE_MALLINFO)\r
113 CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H)\r
114 CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)\r
115 CHECK_INCLUDE_FILES(memory.h HAVE_MEMORY_H)\r
116 CHECK_FUNCTION_EXISTS(memset HAVE_MEMSET)\r
117 CHECK_FUNCTION_EXISTS(mkdir HAVE_MKDIR)\r
118 CHECK_FUNCTION_EXISTS(pow HAVE_POW)\r
119 CHECK_FUNCTION_EXISTS(sqrt HAVE_SQRT)\r
120 CHECK_INCLUDE_FILES(stddef.h HAVE_STDDEF_H)\r
121 CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)\r
122 CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)\r
123 CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H)\r
124 CHECK_INCLUDE_FILES(string.h HAVE_STRING_H)\r
125 CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP)\r
126 CHECK_FUNCTION_EXISTS(strpbrk HAVE_STRPBRK)\r
127 CHECK_FUNCTION_EXISTS(strrchr HAVE_STRRCHR)\r
128 CHECK_FUNCTION_EXISTS(strspn HAVE_STRSPN)\r
129 CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR)\r
130 CHECK_FUNCTION_EXISTS(strtoul HAVE_STRTOUL)\r
131 CHECK_STRUCT_MEMBER(fordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FORDBLKS)\r
132 CHECK_STRUCT_MEMBER(fsmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_FSMBLKS)\r
133 CHECK_STRUCT_MEMBER(hblkhd mallinfo malloc.h HAVE_STRUCT_MALLINFO_HBLKHD)\r
134 CHECK_STRUCT_MEMBER(uordblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_UORDBLKS)\r
135 CHECK_STRUCT_MEMBER(usmblks mallinfo malloc.h HAVE_STRUCT_MALLINFO_USMBLKS)\r
136 CHECK_INCLUDE_FILES(sys/filio.h HAVE_SYS_FILIO_H)\r
137 CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H)\r
138 CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)\r
139 CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)\r
140 CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)\r
141 CHECK_INCLUDE_FILES(zlib.h HAVE_ZLIB_H)\r
142 \r
143 #Enable pango defines, necessary for compilation on Win32, how about Linux?\r
144 IF (HAVE_CAIRO_PDF)\r
145     SET(PANGO_ENABLE_ENGINE TRUE)\r
146     SET(RENDER_WITH_PANGO_CAIRO TRUE)\r
147 ENDIF(HAVE_CAIRO_PDF)\r
148 \r
149 # Create the two configuration files: config.h and inkscape_version.h\r
150 # Create them in the binary root dir\r
151 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)\r
152 FILE(WRITE ${CMAKE_BINARY_DIR}/inkscape_version.h "#define INKSCAPE_VERSION \"${INKSCAPE_VERSION}\"\n")