|
1 |
| -# Check http://webdev.elementaryos.org/docs/developer-guide/cmake for documentation |
| 1 | +# Check http://elementaryos.org/docs/developer-guide/cmake for documentation |
2 | 2 |
|
3 |
| -cmake_minimum_required (VERSION 2.6) |
4 |
| -cmake_policy (VERSION 2.6) |
5 |
| -project (snap) |
6 |
| -set (DATADIR "${CMAKE_INSTALL_PREFIX}/share") |
7 |
| -set (PKGDATADIR "${DATADIR}/snap") |
8 |
| -set (GETTEXT_PACKAGE "snap") |
9 |
| -set (RELEASE_NAME ".") |
| 3 | +cmake_minimum_required (VERSION 2.8) |
| 4 | +cmake_policy (VERSION 2.8) |
| 5 | +project (snap-photobooth) |
| 6 | +enable_testing () |
| 7 | +set (DATADIR "${CMAKE_INSTALL_PREFIX}/share/snap-photobooth") |
| 8 | +set (SCRIPTDIR "${CMAKE_INSTALL_PREFIX}/share/snap-photobooth/scripts") |
| 9 | +set (PKGDATADIR "${DATADIR}/snap-photobooth") |
| 10 | +set (GETTEXT_PACKAGE "snap-photobooth") |
| 11 | +set (RELEASE_NAME "Photobooth App.") |
10 | 12 | set (VERSION "0.1")
|
11 | 13 | set (VERSION_INFO "Release")
|
12 |
| -set (CMAKE_C_FLAGS "-ggdb") |
| 14 | +set (LIBNAME "snapcore") |
| 15 | +set (LIBVERSION "0") |
| 16 | +set (SOVERSION 0) |
| 17 | +set (PLUGINDIR "${CMAKE_INSTALL_PREFIX}/lib/snap-photobooth/plugins/") |
13 | 18 | set (PREFIX ${CMAKE_INSTALL_PREFIX})
|
14 | 19 | set (DOLLAR "$")
|
15 | 20 | list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
16 |
| -# Configure file |
17 | 21 |
|
| 22 | +# Add 'make dist' command for creating release tarball |
| 23 | +set (CPACK_PACKAGE_VERSION ${VERSION}) |
| 24 | +set (CPACK_SOURCE_GENERATOR "TGZ") |
| 25 | +set (CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}") |
| 26 | +set (CPACK_SOURCE_IGNORE_FILES "/build/;/.bzr/;/.bzrignore;~$;${CPACK_SOURCE_IGNORE_FILES}") |
| 27 | + |
| 28 | +include (CPack) |
| 29 | +add_custom_target (dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) |
| 30 | + |
| 31 | +# Some configuration |
18 | 32 | configure_file (${CMAKE_SOURCE_DIR}/src/config.vala.cmake ${CMAKE_SOURCE_DIR}/src/config.vala)
|
| 33 | + |
| 34 | +# Some definitions |
19 | 35 | add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
|
| 36 | + |
| 37 | +# Vala |
| 38 | +find_package (Vala REQUIRED) |
| 39 | +include (ValaVersion) |
| 40 | +ensure_vala_version ("0.18" MINIMUM) |
| 41 | +include (ValaPrecompile) |
| 42 | + |
| 43 | +add_definitions(-DVALA_VERSION="${VALA_SHORTVER}") |
20 | 44 | add_definitions(-DGNOME_DESKTOP_USE_UNSTABLE_API)
|
21 |
| -# snap |
22 | 45 |
|
23 |
| -set (SNAP_DEPS "gee-1.0;gobject-2.0;glib-2.0;gio-2.0;gtk+-3.0;granite;clutter-1.0;clutter-gtk-1.0;gstreamer-1.0;gdk-3.0") |
| 46 | +# Dependencies |
| 47 | +set (SNAP_DEPS gee-1.0 gobject-2.0 glib-2.0 gio-2.0 gtk+-3.0 granite clutter-1.0 clutter-gtk-1.0 gstreamer-1.0 gdk-3.0) |
24 | 48 | find_package (PkgConfig)
|
25 |
| -pkg_check_modules (GLIB REQUIRED "glib-2.0 >= 2.26.0") |
26 |
| -pkg_check_modules (GOBJECT REQUIRED "gobject-2.0 >= 2.26.0") |
27 |
| -pkg_check_modules (GIO REQUIRED "gio-2.0 >= 2.26.0") |
28 |
| -pkg_check_modules (GTK+ REQUIRED "gtk+-3.0 >= 3.2") |
29 |
| -pkg_check_modules (GNOMEDESKTOP REQUIRED "gnome-desktop-3.0 >= 3.0") |
| 49 | +pkg_check_modules (GTK+ REQUIRED "gtk+-3.0 >= 3.6") |
30 | 50 | pkg_check_modules (CHEESE REQUIRED "cheese")
|
31 | 51 | pkg_check_modules (CHEESEGTK REQUIRED "cheese-gtk")
|
32 |
| -pkg_check_modules (CLUTTERGTK REQUIRED "clutter-gtk-1.0") |
33 |
| -pkg_check_modules (LIBGRANITE REQUIRED "granite") |
34 |
| -pkg_check_modules (LIBSQLHEAVY REQUIRED "gstreamer-1.0 >= 1.0") |
35 |
| -pkg_check_modules (DEPS REQUIRED ${SNAP_DEPS} gthread-2.0) |
36 |
| -add_definitions (${DEPS_CFLAGS} ${GNOMEDESKTOP_CFLAGS} ${CLUTTERGTK_CFLAGS} ${CHEESE_CFLAGS} ${CHEESEGTK_CFLAGS} ${LIBSOURCE_CFLAGS} ${GCONF_CFLAGS}) |
37 |
| -link_libraries (${DEPS_LIBRARIES} ${GNOMEDESKTOP_LIBRARIES} ${CLUTTERGTK_LIBRARIES} ${CHEESE_LIBRARIES} ${CHEESEGTK_LIBRARIES} ${LIBSOURCE_LIBRARIES} ${GCONF_LIBRARIES}) |
38 |
| -link_directories (${DEPS_LIBRARY_DIRS} ${GNOMEDESKTOP_LIBRARY_DIRS} ${CLUTTERGTK_LIBRARY_DIRS} ${CHEESE_LIBRARY_DIRS} ${CHEESEGTK_LIBRARY_DIRS} ${LIBSOURCE_LIBRARY_DIRS} ${GCONF_LIBRARY_DIRS}) |
39 |
| -find_package (Vala REQUIRED) |
40 |
| -include (ValaVersion) |
41 |
| -ensure_vala_version ("0.16.0" MINIMUM) |
42 |
| -include (ValaPrecompile) |
43 |
| -vala_precompile(VALA_C |
44 |
| - src/Resources.vala |
45 |
| - src/SnapWindow.vala |
46 |
| - src/Snap.vala |
47 |
| - src/Recorder.vala |
48 |
| - src/EffectsManager.vala |
49 |
| - src/config.vala |
50 |
| - src/Widgets/EffectPopOver.vala |
51 |
| - src/Widgets/Countdown.vala |
52 |
| - src/Widgets/MediaViewer.vala |
53 |
| - src/Dialogs/Preferences.vala |
54 |
| - src/Services/Settings.vala |
55 |
| -PACKAGES |
56 |
| - ${SNAP_DEPS} |
57 |
| -OPTIONS |
58 |
| - --thread |
59 |
| - --vapidir=${CMAKE_CURRENT_SOURCE_DIR}/vapi/ |
60 |
| - --vapidir=${CMAKE_CURRENT_SOURCE_DIR}/libsnap/ |
61 |
| -CUSTOM_VAPIS |
62 |
| - vapi/gnome-desktop-3.0.vapi |
63 |
| - vapi/cheese-common.vapi |
64 |
| - libsnap/cheese-thumbview.vapi |
65 |
| -) |
66 |
| -# tranlation stuff |
| 52 | +pkg_check_modules (GNOMEDESKTOP REQUIRED "gnome-desktop-3.0 >= 3.0") |
| 53 | +pkg_check_modules (DEPS REQUIRED ${SNAP_DEPS}) |
67 | 54 |
|
68 |
| -add_subdirectory(po) |
69 |
| -add_subdirectory (libsnap) |
70 |
| -# add_definitions (${CFLAGS} -Wall -Winit-self -Wwrite-strings -Wunreachable-code -Wstrict-prototypes ) |
| 55 | +set(NORMAL_CFLAGS ${DEPS_CFLAGS} ${CHEESE_CFLAGS} ${CHEESEGTK_CFLAGS} ${GNOMEDESKTOP_CFLAGS}) |
| 56 | +set(NORMAL_LINK_DIRS ${DEPS_LIBRARY_DIRS} ${CHEESE_LIBRARY_DIRS} ${CHEESEGTK_LIBRARY_DIRS} ${GNOMEDESKTOP_LIBRARY_DIRS}) |
| 57 | +set(NORMAL_LIBRARIES ${DEPS_LIBRARIES} ${CHEESE_LIBRARIES} ${CHEESEGTK_LIBRARIES} ${GNOMEDESKTOP_LIBRARIES}) |
71 | 58 |
|
| 59 | +add_definitions (${DEPS_CFLAGS} ${CHEESE_CFLAGS} ${CHEESEGTK_CFLAGS} ${GNOMEDESKTOP_CFLAGS}) |
| 60 | +link_libraries (${DEPS_LIBRARIES} ${CHEESE_LIBRARIES} ${CHEESEGTK_LIBRARIES} ${GNOMEDESKTOP_LIBRARIES}) |
| 61 | +link_directories (${DEPS_LIBRARY_DIRS} ${CHEESE_LIBRARY_DIRS} ${CHEESEGTK_LIBRARY_DIRS} ${GNOMEDESKTOP_LIBRARY_DIRS}) |
72 | 62 |
|
73 |
| -add_executable (snap-photobooth ${VALA_C}) |
74 |
| -add_dependencies(snap-photobooth libsnap) |
75 |
| -include_directories(${CMAKE_SOURCE_DIR}/libsnap) |
76 |
| -target_link_libraries (snap-photobooth libsnap) |
77 |
| -#TODO: Installation |
78 | 63 |
|
79 |
| -install (TARGETS snap-photobooth RUNTIME DESTINATION bin) |
80 |
| -install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/snap-photobooth.svg DESTINATION share/icons/hicolor/scalable/apps) |
81 |
| -install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/icons/ DESTINATION share/icons/) |
82 |
| -install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/pixmaps/ DESTINATION share/pixmaps/) |
83 |
| -install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/snap-photobooth.desktop DESTINATION share/applications) |
| 64 | +# Some include paths |
| 65 | +include_directories(${CMAKE_BINARY_DIR}/src) |
84 | 66 |
|
85 |
| -include(GSettings) |
86 |
| -add_schema("org.pantheon.snap.gschema.xml") |
| 67 | +# Subdirectories |
| 68 | +add_subdirectory (po) |
| 69 | +add_subdirectory (schemas) |
| 70 | +add_subdirectory (thumbview) |
| 71 | +add_subdirectory (src) |
| 72 | + |
| 73 | +# Data |
| 74 | +install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/snap-photobooth.desktop DESTINATION share/applications) |
0 commit comments