File: CMakeLists.txt

package info (click to toggle)
steadyflow 0.2.0-1.1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,384 kB
  • ctags: 57
  • sloc: perl: 1,186; xml: 46; python: 44; makefile: 5
file content (95 lines) | stat: -rw-r--r-- 2,728 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
project(steadyflow C)
cmake_minimum_required(VERSION 2.6)

# Change version number on release
set(PROJECT_VERSION "0.2.0")
set(COMMON_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share)
set(PROJECT_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/steadyflow)

list(APPEND CMAKE_MODULE_PATH
	${CMAKE_SOURCE_DIR}
	${CMAKE_SOURCE_DIR}/cmake
)

option(WANT_AYATANA "Compile with Ayatana libappindicator support" ON)
# Packagers: set the option below to off so it does not generate the binary schema on build.
option(COMPILE_GSETTINGS_ON_INSTALL "Compile GSettings schemas on install" ON)

set(VALA_REQUIRED_VERSION 0.16)
set(GLIB_REQUIRED_VERSION 2.30.0)
set(GTK_REQUIRED_VERSION 3.0.0)

find_package(PkgConfig REQUIRED)
find_package(Vala REQUIRED)
find_package(GTK3 REQUIRED)
find_package(ExtraDeps REQUIRED)

set(HAVE_AYATANA FALSE)

if(WANT_AYATANA AND APPINDICATOR_FOUND)
	set(HAVE_AYATANA TRUE)
endif(WANT_AYATANA AND APPINDICATOR_FOUND)

include(ValaVersion)
include(ValaPrecompile)
include(GSettings)
include(Po)
include(sources)

ensure_vala_version(${VALA_REQUIRED_VERSION} MINIMUM)

file (READ ${CMAKE_SOURCE_DIR}/AUTHORS PROJECT_AUTHORS)
string (REPLACE "\n" "\\n\\\n" PROJECT_AUTHORS ${PROJECT_AUTHORS})
configure_file(${CMAKE_SOURCE_DIR}/cmake/config.h.in ${CMAKE_BINARY_DIR}/config.h @ONLY)

set(CUSTOM_VAPIS
	# VAPI containing install definitions, mapping from cmake generated config.h
	${CMAKE_SOURCE_DIR}/vapi/AppConfig.vapi
)

set(VALA_PACKAGES
	gee-1.0
	gio-2.0
	glib-2.0
	gtk+-3.0
	gmodule-2.0
	libnotify
)

if(HAVE_AYATANA)
	set(VALA_PACKAGES ${VALA_PACKAGES} appindicator3-0.1)
endif(HAVE_AYATANA)

vala_precompile(VALA_C
	${STEADYFLOW_SOURCES}
CUSTOM_VAPIS
	${CUSTOM_VAPIS}
PACKAGES
	${VALA_PACKAGES}
)

# Rule for generating binary GSettings schema in working directory
gsettings_compile_schemas(${CMAKE_SOURCE_DIR}/data ${CMAKE_BINARY_DIR} net.launchpad.steadyflow)

set(DESKTOP_FILE_IN ${CMAKE_SOURCE_DIR}/data/steadyflow.desktop.in)
set(DESKTOP_FILE ${CMAKE_BINARY_DIR}/steadyflow.desktop)

# Merge translations of GenericName and X-GNOME-FullName from .po files into steadyflow.desktop
add_custom_command(OUTPUT ${DESKTOP_FILE}
		COMMAND ${CMAKE_SOURCE_DIR}/cmake/intltool-merge.pl
		ARGS -d ${CMAKE_SOURCE_DIR}/po ${DESKTOP_FILE_IN} ${DESKTOP_FILE}
		DEPENDS ${DESKTOP_FILE_IN}
	)

# Generate .mo from .po
compile_po_files(${CMAKE_SOURCE_DIR}/po LOCALE_FILES)

include_directories(${GTK3_ALL_INCLUDES} ${EXTRA_DEP_INCLUDES} ${CMAKE_BINARY_DIR})
add_definitions(${GTK3_ALL_CFLAGS} ${EXTRA_DEP_CFLAGS}
	-DGETTEXT_PACKAGE=\"${CMAKE_PROJECT_NAME}\"
)

add_executable(steadyflow ${VALA_C} ${GSCHEMAS_COMPILED} ${DESKTOP_FILE} ${LOCALE_FILES})
target_link_libraries(steadyflow ${GTK3_ALL_LIBS} ${EXTRA_DEP_LIBS})

include(install)