Code

CMake: add optional flags when found
[inkscape.git] / CMakeScripts / ConfigInkscapeDepends.cmake
1 SET(INKSCAPE_DEPENDS
2     gtk+-2.0
3     gtkmm-2.4
4     cairo
5     cairomm-1.0
6     sigc++-2.0
7     lcms
8     libgc1c2
9     libpng
10     glib-2.0
11     glibmm-2.4
12     libxml-2.0
13     libxslt
14     ImageMagick++
15     libpopt
16     freetype2)
17 SET(INKSCAPE_OPTIONAL
18     gnome-vfs-2.0
19     libwpg-0.1
20     libssl)
22 include(UsePkgConfig)
24 # Dependencies Packages
25 message(STATUS "")
26 message(STATUS "")
27 message(STATUS "Checking For REQUIRED Libraries for Building Inkscape.")
28 SET(INKSCAPE_LINK_FLAGS "")
29 FOREACH(dep ${INKSCAPE_DEPENDS})
30     # This is a hack due to a bug in Cmake vars system, Uncomment if using a version older than 2.4 //verbalshadow
31 #    IF("${dep}" MATCHES "gtk\\+-2.0")
32 #        SET(dep_name "GTK2")
33 #    ELSE("${dep}" MATCHES "gtk\\+-2.0")
34        SET(dep_name "${dep}")
35 #    ENDIF("${dep}" MATCHES "gtk\\+-2.0")
37     PKGCONFIG_FOUND(${dep} "${dep}_FOUND")
38     PKGCONFIG(${dep} "${dep_name}_INCLUDE_DIR" "${dep_name}_LINK_DIR" "${dep_name}_LINK_FLAGS" "${dep_name}_CFLAGS")
39 #    PKGCONFIG_VERSION(${dep} "${dep}_VERSION")
40     IF("${dep}_FOUND")
41         message(STATUS "${dep}: FOUND")
42         # Set Compiler Flags\r
43         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${dep_name}_CFLAGS}")\r
44         SET(INKSCAPE_LINK_FLAGS "${INKSCAPE_LINK_FLAGS} ${${dep_name}_LINK_FLAGS}")\r
45     ELSE("${dep}_FOUND")
46         message(STATUS "${dep}: NOT FOUND")
47     ENDIF("${dep}_FOUND")
48 ENDFOREACH(dep)
49 # Include non pkg-config dependencies:
50 INCLUDE(FindBoost)
51 INCLUDE(FindGC)
52 # end Dependencies
54 # Optional Dependencies Packages
55 message(STATUS "")
56 message(STATUS "")
57 message(STATUS "Checking For OPTIONAL Libraries for Building Inkscape.")
58 message(STATUS "These add additional functionality to Inkscape.")
59 FOREACH(opt ${INKSCAPE_OPTIONAL})
60     SET(opt_name "${opt}")
61     PKGCONFIG_FOUND(${opt} "${opt}_FOUND")
62     PKGCONFIG(${opt} "${opt_name}_INCLUDE_DIR" "${opt_name}_LINK_DIR" "${opt_name}_LINK_FLAGS" "${opt_name}_CFLAGS")
63 #    PKGCONFIG_VERSION(${opt} "${opt}_VERSION")
64     IF("${opt}_FOUND")
65         message(STATUS "${opt}: FOUND")
66         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${dep_name}_CFLAGS}")\r
67         SET(INKSCAPE_LINK_FLAGS "${INKSCAPE_LINK_FLAGS} ${${dep_name}_LINK_FLAGS}")\r
68     ELSE("${opt}_FOUND")
69         message(STATUS "${opt}: NOT FOUND")
70     ENDIF("${opt}_FOUND")
71 ENDFOREACH(opt)
72 # end Optional Dependencies
73 message(STATUS "")
74 message(STATUS "")
76 SET(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} -j2")
78 INCLUDE (CheckIncludeFiles)
79 # usage: CHECK_INCLUDE_FILES (<header> <RESULT_VARIABLE> )
81 CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
82 CHECK_INCLUDE_FILES (boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP)
83 CHECK_INCLUDE_FILES (gc/gc.h HAVE_GC_GC_H)
84 CHECK_INCLUDE_FILES (gc.h HAVE_GC_H)
85 CHECK_INCLUDE_FILES (getopt.h HAVE_GETOPT_H)
86 CHECK_INCLUDE_FILES (ieeefp.h HAVE_IEEEFP_H)
87 CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H)
88 CHECK_INCLUDE_FILES (locale.h HAVE_LC_MESSAGES)
89 CHECK_INCLUDE_FILES (locale.h HAVE_LOCALE_H)
90 CHECK_INCLUDE_FILES (libintl.h HAVE_LIBINTL_H)
91 CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H)
92 CHECK_INCLUDE_FILES (memory.h HAVE_MEMORY_H)
93 CHECK_INCLUDE_FILES (stddef.h HAVE_STDDEF_H)
94 CHECK_INCLUDE_FILES (stdint.h HAVE_STDINT_H)
95 CHECK_INCLUDE_FILES (stdlib.h HAVE_STDLIB_H)
96 CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H)
97 CHECK_INCLUDE_FILES (string.h HAVE_STRING_H)
98 CHECK_INCLUDE_FILES (sys/filio.h HAVE_SYS_FILIO_H)
99 CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
100 CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
101 CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H)
102 CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
103 CHECK_INCLUDE_FILES (zlib.h HAVE_ZLIB_H)
105 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
107 # Create File inkscape_version.h
108 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/inkscape_version.h "#define INKSCAPE_VERSION \"${INKSCAPE_VERSION}\"\n")