Skip to content

Commit a5ffdc8

Browse files
author
Mario Guerriero
committed
new code structure, refactored CMake build files, added a COPYING license file, change gettext domain from snap to snap-photobooth
1 parent d32d9cd commit a5ffdc8

34 files changed

+1046
-1583
lines changed

.bzrignore

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
1-
../src/config.vala
1+
*~
2+
src/*~
3+
4+
thumbview/*~
5+
6+
build/
7+
28
src/config.vala

CMakeLists.txt

+55-67
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,74 @@
1-
# Check http://webdev.elementaryos.org/docs/developer-guide/cmake for documentation
1+
# Check http://elementaryos.org/docs/developer-guide/cmake for documentation
22

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.")
1012
set (VERSION "0.1")
1113
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/")
1318
set (PREFIX ${CMAKE_INSTALL_PREFIX})
1419
set (DOLLAR "$")
1520
list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
16-
# Configure file
1721

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
1832
configure_file (${CMAKE_SOURCE_DIR}/src/config.vala.cmake ${CMAKE_SOURCE_DIR}/src/config.vala)
33+
34+
# Some definitions
1935
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}")
2044
add_definitions(-DGNOME_DESKTOP_USE_UNSTABLE_API)
21-
# snap
2245

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)
2448
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")
3050
pkg_check_modules (CHEESE REQUIRED "cheese")
3151
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})
6754

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})
7158

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})
7262

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
7863

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)
8466

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

Comments
 (0)