~dmxe/lifeograph/1.0

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
96
97
98
#    Copyright (C) 2013 Ahmet Öztürk (aoz_2@yahoo.com)
#
#    This file is part of Lifeograph.
#
#    Lifeograph is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    Lifeograph is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with Lifeograph.  If not, see <http://www.gnu.org/licenses/>.


cmake_minimum_required( VERSION 2.6 )
project( Lifeograph )

set( PACKAGE_NAME lifeograph )
set( Lifeograph_VERSION_MAJOR 1 )
set( Lifeograph_VERSION_MINOR 0 )

set( PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/build )

add_definitions( -Wall -DHAVE_CONFIG_H )

# DEBUG BUILD
if( ${CMAKE_BUILD_TYPE} MATCHES Debug )
    set( DEBUG_BUILD 1 )
else()
    set( DEBUG_BUILD 0 )
endif()

# config.h DEFINITIONS
set( LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale" )
set( PIXMAPDIR "${CMAKE_INSTALL_PREFIX}/share/pixmaps" )
set( ICONDIR "${CMAKE_INSTALL_PREFIX}/share/${PACKAGE_NAME}/icons" )
set( UIDIR "${CMAKE_INSTALL_PREFIX}/share/${PACKAGE_NAME}/ui" )
set( DIARYDIR "${CMAKE_INSTALL_PREFIX}/share/${PACKAGE_NAME}/diaries" )

# PACKAGES
find_package( PkgConfig REQUIRED )

find_library( GCRYPT gcrypt )
if( ${GCRYPT} MATCHES "GCRYPT-NOTFOUND" )
    message( "Gcrypt library not found" )
    return()
endif()

pkg_check_modules( GTKMM REQUIRED gtkmm-3.0>=3.4 )
pkg_check_modules( ENCHANT REQUIRED enchant )

# CONFIGURATION HEADER FILE
configure_file(
  "${PROJECT_SOURCE_DIR}/config.h.in"
  "${PROJECT_BINARY_DIR}/config.h" )

# add path of config.h
include_directories( "${PROJECT_BINARY_DIR}" )

include_directories( ${GTKMM_INCLUDE_DIRS} ${ENCHANT_INCLUDE_DIRS} )

#link_directories( ${GTKMM_LIBRARY_DIRS} ${ENCHANT_LIBRARY_DIRS} )

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} )

# config.h APPENDAGES
if( EXISTS ${PROJECT_SOURCE_DIR}/.bzr AND ${CMAKE_BUILD_TYPE} MATCHES Debug )
    execute_process( COMMAND bzr revno OUTPUT_VARIABLE REVISION_NO )
    string( REGEX REPLACE \n "" REVISION_NO "${REVISION_NO}" )
    message( "Building revision ${REVISION_NO}" )
    add_custom_target( APPEND_REV_NO ALL
            COMMAND
            echo "#define REVISION_NO \" r${REVISION_NO}\"" >> ${PROJECT_BINARY_DIR}/config.h
            COMMAND echo "\\n\\n#endif\\n" >> ${PROJECT_BINARY_DIR}/config.h
            VERBATIM )
else()
    add_custom_target( APPEND_REV_NO ALL
            COMMAND echo "#define REVISION_NO" >> ${PROJECT_BINARY_DIR}/config.h
            COMMAND echo "\\n\\n#endif\\n" >> ${PROJECT_BINARY_DIR}/config.h
            VERBATIM )
endif()

# TARGETS
add_executable(
    ${PACKAGE_NAME}
    src/dialog_export.cpp src/dialog_password.cpp src/dialog_preferences.cpp
    src/diary.cpp src/diarydata.cpp src/entry.cpp src/entry_parser.cpp src/helpers.cpp
    src/lifeobase.cpp src/lifeograph.cpp src/main.cpp src/panel_diary.cpp
    src/panel_extra.cpp src/panel_main.cpp src/printing.cpp src/settings.cpp src/undo.cpp
    src/view_entry.cpp src/view_login.cpp src/views.cpp src/widget_chart.cpp
    src/widget_entrylist.cpp src/widget_tag_list.cpp src/widget_textview.cpp )

target_link_libraries( ${PACKAGE_NAME} ${GTKMM_LIBRARIES} ${ENCHANT_LIBRARIES} ${GCRYPT} )