forked from Gnucash/gnucash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
169 lines (133 loc) · 5.86 KB
/
CMakeLists.txt
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# CMakeLists.txt for the cutecash sub-project of gnucash
# This is very EXPERIMENTAL! We will see how far this project will
# get.
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (cutecash)
# Version number of cutecash
SET (CUTECASH_VERSION_MAJOR "0")
SET (CUTECASH_VERSION_MINOR "1")
SET (CUTECASH_VERSION_PATCH "0")
# Change this in development versions when changing anything that
# affects stored data structures. Reset to zero when bumping version.
SET (CUTECASH_VERSION_NANO "0")
SET (GNUCASH_RESAVE_VERSION "19920")
# Extra cmake macros
SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/src/cmake_modules;${CMAKE_MODULE_PATH}")
INCLUDE (MacroAppendForeach)
INCLUDE (MacroAddSourceFileCompileFlags)
INCLUDE (GncAddSwigCommand)
INCLUDE (CheckIncludeFiles)
# ############################################################
OPTION (WITH_SQL "Build this project with SQL (libdbi) support" OFF)
OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" OFF)
# ############################################################
# Find pkg-config
FIND_PACKAGE (PkgConfig REQUIRED)
IF (NOT PKG_CONFIG_FOUND)
MESSAGE (SEND_ERROR "pkg-config not found, but is required")
ENDIF (NOT PKG_CONFIG_FOUND)
# glib et al.
PKG_CHECK_MODULES (GLIB2 glib-2.0>=2.20)
PKG_CHECK_MODULES (GCONF2 gconf-2.0>=2.22)
PKG_CHECK_MODULES (GOBJECT gobject-2.0>=2.20)
PKG_CHECK_MODULES (GMODULE gmodule-2.0>=2.20)
PKG_CHECK_MODULES (GTHREAD gthread-2.0>=2.20)
PKG_CHECK_MODULES (GLIBMM glibmm-2.4>=2.24)
PKG_CHECK_MODULES (LIBXML2 libxml-2.0>=2.7.0)
IF (MSVC)
MESSAGE (STATUS "Hint: To create the import libraries for the gnome DLLs (e.g. gconf-2.lib), use the dlltool as follows: pexports bin/libgconf-2-4.dll > lib/libgconf-2.def ; dlltool -d lib/libgconf-2.def -D bin/libgconf-2-4.dll -l lib/gconf-2.lib")
# Disable the obnoxious min/max macros in MSVC - we want to use the
# function versions of them.
ADD_DEFINITIONS ( -DNOMINMAX )
ENDIF (MSVC)
## Libxml2
#FIND_PACKAGE (LibXml2 REQUIRED)
FIND_PACKAGE (ZLIB REQUIRED)
IF (NOT GLIB2_FOUND)
MESSAGE (SEND_ERROR "Glib2 not found, but is required")
ENDIF (NOT GLIB2_FOUND)
FIND_PATH (LIBINTL_INCLUDE_PATH NAMES libintl.h
PATHS /usr/include /opt/gnome/include)
FIND_LIBRARY (LIBINTL_LIBRARY NAMES intl)
FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h
PATHS /usr/include /opt/gnome/include)
FIND_LIBRARY (REGEX_LIBRARY NAMES regex)
IF (WIN32)
FIND_PATH (HTMLHELP_INCLUDE_PATH NAMES htmlhelp.h
PATHS /usr/include)
ENDIF (WIN32)
# ############################################################
# SWIG
FIND_PACKAGE (SWIG REQUIRED)
INCLUDE (${SWIG_USE_FILE})
# guile library and include dir
PKG_CHECK_MODULES (GUILE guile-1.8>=1.8.0)
ADD_DEFINITIONS (-DHAVE_GUILE18)
# We also need to look up the executable
FIND_PROGRAM (GUILE_EXECUTABLE guile)
IF (NOT GUILE_FOUND)
MESSAGE (SEND_ERROR "Guile was not found, but is required. Please set PKG_CONFIG_PATH so that guile-1.8.pc is found.")
ENDIF (NOT GUILE_FOUND)
IF (NOT GUILE_EXECUTABLE)
MESSAGe (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
ENDIF (NOT GUILE_EXECUTABLE)
#BOOST
SET (Boost_USE_STATIC_LIBS OFF)
SET (Boost_USE_MULTITHREADED ON)
SET (Boost_USE_STATIC_RUNTIME OFF)
FIND_PACKAGE (Boost 1.50.0 REQUIRED COMPONENTS chrono date-time filesystem log program_options regex signals system test)
IF (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(progname file1.cxx file2.cxx)
target_link_libraries(progname ${Boost_LIBRARIES})
ELSE (Boost_FOUND)
MESSAGE (SEND_ERROR "Boost 1.50.0 or later is not installed, and is required. Please install it and ensure that the following libraries are built: chrono, date-time, filesystem, log, program_options, regex, signals, system, and test.")
ENDIF (Boost_FOUND)
# ############################################################
# libdbi
FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h)
FIND_LIBRARY (LIBDBI_LIBRARY dbi)
IF (WITH_SQL)
IF (NOT LIBDBI_INCLUDE_PATH)
MESSAGE (SEND_ERROR "Include file <dbi/dbi.h> was not found - did you install libdbi0-dev or libdbi-dev?")
ENDIF (NOT LIBDBI_INCLUDE_PATH)
IF (NOT LIBDBI_LIBRARY)
MESSAGE (SEND_ERROR "Library libdbi was not found")
ENDIF (NOT LIBDBI_LIBRARY)
ENDIF (WITH_SQL)
# ############################################################
# Qt
SET (QT_MIN_VERSION "4.5.0")
FIND_PACKAGE (Qt4 REQUIRED) # find and setup Qt4 for this project
# ############################################################
IF (WITH_AQBANKING)
PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
PKG_CHECK_MODULES (AQBANKING REQUIRED aqbanking)
ENDIF (WITH_AQBANKING)
# ############################################################
# Compiler flags
IF (UNIX)
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=deprecated-declarations")
ENDIF (UNIX)
IF (MINGW)
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
ENDIF (MINGW)
# ############################################################
# The subdirectories
ADD_SUBDIRECTORY (src)
# ############################################################
# Package creation rules
SET (CPACK_PACKAGE_NAME "Cutecash")
SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Cutecash Free Finance Software")
SET (CPACK_PACKAGE_VERSION_MAJOR ${CUTECASH_VERSION_MAJOR})
SET (CPACK_PACKAGE_VERSION_MINOR ${CUTECASH_VERSION_MINOR})
SET (CPACK_PACKAGE_VERSION_PATCH ${CUTECASH_VERSION_PATCH})
SET (CPACK_PACKAGE_VENDOR "Christian Stimming")
SET (CPACK_SOURCE_IGNORE_FILES "/\\\\.svn/;/\\\\.git/;.*~;build.*;html;Debug;Release")
SET (CPACK_STRIP_FILES "bin/cutecash")
#SET (CPACK_PACKAGE_EXECUTABLES "bin/carclient")
IF(UNIX)
SET(CPACK_GENERATOR "TGZ")
ENDIF(UNIX)
INCLUDE (CPack)