~ubuntu-branches/ubuntu/utopic/mysql-workbench/utopic

« back to all changes in this revision

Viewing changes to .pc/prtcl.patch/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Dmitry Smirnov
  • Date: 2014-05-31 12:03:58 UTC
  • mfrom: (1.2.4)
  • Revision ID: package-import@ubuntu.com-20140531120358-cjik5ofkmj0fxsn8
Tags: 6.1.6+dfsg-1
* New upstream release [May 2014].
* Dropped "prtcl.patch".
* "debian/clean": better clean-up.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
cmake_minimum_required (VERSION 2.8)
2
 
# 2.8 needed because of ExternalProject
3
 
 
4
 
project(WORKBENCH)
5
 
 
6
 
 
7
 
#  About MySQL and CMake
8
 
#  http://dev.mysql.com/doc/internals/en/autotools-to-cmake.html
9
 
#  http://www.lenzg.net/archives/291-Building-MySQL-Server-with-CMake-on-LinuxUnix.html
10
 
 
11
 
#-----------------------------------------------------------------------
12
 
# Find packages and other useful checks
13
 
#-----------------------------------------------------------------------
14
 
 
15
 
# Look for our custom modules in cmake/Modules:
16
 
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build/cmake/Modules/")
17
 
 
18
 
find_package(PkgConfig REQUIRED)
19
 
 
20
 
find_package(GTK2 2.6.2 REQUIRED gtk gtkmm)
21
 
pkg_check_modules(GTHREAD REQUIRED gthread-2.0)
22
 
pkg_check_modules(GMODULE REQUIRED gmodule-2.0)
23
 
set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${GMODULE_INCLUDE_DIRS})
24
 
list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
25
 
set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTHREAD_LIBRARIES} ${GMODULE_LIBRARIES})
26
 
list(REMOVE_DUPLICATES GTK2_LIBRARIES)
27
 
 
28
 
pkg_check_modules(GLIB REQUIRED glib-2.0)
29
 
 
30
 
if (USE_BUNDLED_MYSQLDUMP)
31
 
  set(USE_BUNDLED_MYSQLDUMP -DHAVE_BUNDLED_MYSQLDUMP=1)
32
 
endif ()
33
 
 
34
 
 
35
 
find_package(SWIG REQUIRED)
36
 
include(${SWIG_USE_FILE})
37
 
 
38
 
# All known publicly available versions of Antlr3C are buggy
39
 
 
40
 
if (SKIP_BUNDLED_ANTLR)
41
 
  find_package(Antlr3C)
42
 
endif ()
43
 
if (ANTLR3C_FOUND)
44
 
  set(ANTLR3C_REQUIRED_VERSION "3.4")
45
 
  if (${ANTLR3C_VERSION} VERSION_LESS ${ANTLR3C_REQUIRED_VERSION})
46
 
    message("Required antlr3c version ${ANTLR3C_REQUIRED_VERSION} but ${ANTLR3C_VERSION} found, using bundled version")
47
 
    unset(ANTLR3C_FOUND)
48
 
  endif ()
49
 
endif ()
50
 
 
51
 
# In Ubuntu 13.04, the built-in check for python fails.. so we have to resort to the check with pkg-config (which doesn't work in many distros)
52
 
find_package(PythonLibs 2.6)
53
 
if (NOT PYTHONLIBS_FOUND)
54
 
    pkg_check_modules(PYTHON REQUIRED python)
55
 
endif ()
56
 
set(GRT_DEFINITIONS -DENABLE_PYTHON_MODULES)
57
 
 
58
 
find_package(Lua51)
59
 
if (LUA51_FOUND)
60
 
        set(GRT_DEFINITIONS ${GRT_DEFINITIONS} -DENABLE_LUA_MODULES)
61
 
endif()
62
 
 
63
 
find_package(MySQL REQUIRED)
64
 
if (UNIX)
65
 
        set(MYSQL_DEFINITIONS "-DBIG_JOINS=1"  "-fno-strict-aliasing")
66
 
endif()
67
 
 
68
 
find_package(LibXml2 REQUIRED)
69
 
 
70
 
find_package(OpenGL REQUIRED)
71
 
 
72
 
find_package(CTemplate)
73
 
find_package(MySQLCppConn REQUIRED)
74
 
find_package(VSqlite REQUIRED)
75
 
find_package(TinyXML REQUIRED)
76
 
 
77
 
if (UNIX)
78
 
        option(USE_UNIXODBC "Use unixODBC instead of iODBC" OFF)
79
 
        if (USE_UNIXODBC)
80
 
                find_package(UNIXODBC REQUIRED)
81
 
                set(ODBC_LIBRARIES ${UNIXODBC_LIBRARIES})
82
 
                set(ODBC_INCLUDE_DIRS ${UNIXODBC_INCLUDE_DIRS})
83
 
                set(ODBC_DEFINITIONS ${UNIXODBC_DEFINITIONS})
84
 
        else ()
85
 
                find_package(IODBC REQUIRED)
86
 
                set(ODBC_LIBRARIES ${IODBC_LIBRARIES})
87
 
                set(ODBC_INCLUDE_DIRS ${IODBC_INCLUDE_DIRS})
88
 
                set(ODBC_DEFINITIONS ${IODBC_DEFINITIONS})
89
 
        endif()
90
 
endif ()
91
 
 
92
 
pkg_check_modules(PCRE REQUIRED libpcre libpcrecpp)
93
 
pkg_check_modules(CAIRO REQUIRED cairo>=1.5.12)
94
 
pkg_check_modules(UUID REQUIRED uuid)
95
 
pkg_check_modules(LIBZIP REQUIRED libzip)
96
 
if (UNIX)
97
 
        pkg_check_modules(GNOME_KEYRING gnome-keyring-1)
98
 
        if (GNOME_KEYRING_FOUND)
99
 
                set(KEYRING_DEFINITION     "HAVE_GNOME_KEYRING")
100
 
        else()
101
 
                pkg_check_modules(GNOME_KEYRING gnome-keyring)
102
 
                if (GNOME_KEYRING_FOUND)
103
 
                        set(KEYRING_DEFINITION     "HAVE_OLD_GNOME_KEYRING")
104
 
                endif()
105
 
        endif()
106
 
endif()
107
 
 
108
 
include (CheckFunctionExists)
109
 
check_function_exists (strtol HAVE_STRTOL)
110
 
check_function_exists (strtoll HAVE_STRTOLL)
111
 
check_function_exists (strtold HAVE_STRTOLD)
112
 
check_function_exists (strtoull HAVE_STRTOULL)
113
 
check_function_exists (strtoimax HAVE_STRTOIMAX)
114
 
check_function_exists (strtoumax HAVE_STRTOUMAX)
115
 
 
116
 
if (UNIX)
117
 
        if (NOT LIB_INSTALL_DIR)
118
 
                set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
119
 
        endif()
120
 
        if (NOT SHARE_INSTALL_PREFIX)
121
 
                set(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share")
122
 
        endif()
123
 
        if (NOT ETC_INSTALL_DIR)
124
 
                set(ETC_INSTALL_DIR "/etc")
125
 
        endif()
126
 
        if (NOT REAL_EXECUTABLE_DIR)
127
 
                set(REAL_EXECUTABLE_DIR "${CMAKE_INSTALL_PREFIX}/bin")
128
 
        endif()
129
 
 
130
 
        set(WB_INSTALL_DIR              "${CMAKE_INSTALL_PREFIX}")
131
 
        set(WB_INSTALL_DIR_EXECUTABLE   "${REAL_EXECUTABLE_DIR}")
132
 
        set(WB_INSTALL_BIN_DIR          "${CMAKE_INSTALL_PREFIX}/bin")
133
 
        set(WB_INSTALL_LIB_DIR          "${LIB_INSTALL_DIR}/mysql-workbench")
134
 
        set(WB_PYTHON_MODULES_DIR       "${WB_INSTALL_LIB_DIR}/modules")
135
 
        set(WB_INSTALL_SHARED_DIR       "${SHARE_INSTALL_PREFIX}")
136
 
        set(WB_INSTALL_ETC_DIR          "${ETC_INSTALL_DIR}")
137
 
        set(WB_PACKAGE_SHARED_DIR       "${SHARE_INSTALL_PREFIX}/mysql-workbench")
138
 
        set(WB_PACKAGE_PLUGINS_DIR      "${LIB_INSTALL_DIR}/mysql-workbench/plugins")
139
 
        set(WB_PYTHON_MODULES_DATA_DIR  "${SHARE_INSTALL_PREFIX}/mysql-workbench/modules/data")
140
 
        set(WB_INSTALL_DOC_DIR          "${SHARE_INSTALL_PREFIX}/doc/mysql-workbench")
141
 
endif()
142
 
 
143
 
include(ExternalProject)
144
 
 
145
 
if (NOT ANTLR3C_FOUND)
146
 
  message("Using bundled Antlr C runtime")
147
 
  #  Use for Antlr3 the one we have in /ext:
148
 
  set(ANTLR3C_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/ext/antlr-runtime ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/include)
149
 
  set(ANTLR3C_LIBRARIES "-L${PROJECT_BINARY_DIR}/antlr-wb -lantlr3c_wb")
150
 
 
151
 
  ExternalProject_Add(antlr-wb
152
 
    SOURCE_DIR ${PROJECT_SOURCE_DIR}/ext/antlr-runtime
153
 
    CONFIGURE_COMMAND autoreconf -i -s && ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/configure
154
 
        --prefix=${PROJECT_BINARY_DIR}/antlr-wb
155
 
        --libdir=${PROJECT_BINARY_DIR}/antlr-wb
156
 
        --disable-abiflags
157
 
    BUILD_COMMAND make
158
 
    BUILD_IN_SOURCE 1
159
 
    INSTALL_COMMAND make install
160
 
  )
161
 
 
162
 
  link_directories(${PROJECT_BINARY_DIR}/antlr-wb)
163
 
endif ()
164
 
 
165
 
# Uncomment these lines if at any time you want to force the configure and/or build
166
 
# of antlr-wb:
167
 
#ExternalProject_Add_Step(antlr-wb forceconfigure
168
 
#    COMMAND ${CMAKE_COMMAND} -E echo "Force configure of antlr-wb"
169
 
#    DEPENDEES update
170
 
#    DEPENDERS configure
171
 
#    ALWAYS 1
172
 
#)
173
 
#ExternalProject_Add_Step(antlr-wb forcebuild
174
 
#    COMMAND ${CMAKE_COMMAND} -E echo "Force build of antlr-wb"
175
 
#    DEPENDEES configure
176
 
#    DEPENDERS build
177
 
#    ALWAYS 1
178
 
#)
179
 
 
180
 
 
181
 
#include(CheckCXXCompilerFlag)
182
 
#check_cxx_compiler_flag(-Wall  HAS_ALL_WARNS)
183
 
#if (HAS_ALL_WARNS)
184
 
#       add_definitions(-Wall)
185
 
#endif()
186
 
#check_cxx_compiler_flag(-Wsign-compare  HAS_SIGN_COMPARE)
187
 
#if (HAS_SIGN_COMPARE)
188
 
#       add_definitions(-Wsign-compare)
189
 
#endif()
190
 
add_definitions(-D__STDC_FORMAT_MACROS)
191
 
 
192
 
set(BUILD_SHARED_LIBS ON)  # By default all libs will be built as shared libs
193
 
 
194
 
# Add some common compiler flags. TODO: Shouldn't this be done checking if whatever compiler
195
 
# we use supports each flag to allow for non-gcc compilers in Linux (as above)?
196
 
if (CMAKE_COMPILER_IS_GNUCXX)
197
 
        set(MY_CXXFLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-deprecated -DTIXML_USE_STL=1")
198
 
 
199
 
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror -ggdb3 ${MY_CXXFLAGS}")
200
 
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MY_CXXFLAGS}") 
201
 
endif()
202
 
 
203
 
 
204
 
#-----------------------------------------------------------------------
205
 
# Define some useful variables and options
206
 
#-----------------------------------------------------------------------
207
 
 
208
 
#set(NCORES 3)  # Use this number of cores when compiling
209
 
#if(CMAKE_COMPILER_IS_GNUCXX)
210
 
#       set(CMAKE_CXX_FLAGS "${CMAKE_CKK_FLAGS} -j${NCORES}")
211
 
#       message(STATUS "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
212
 
#       #set(CMAKE_EXE_LINKER_FLAGS "-s")  ## Strip binary
213
 
#endif()
214
 
 
215
 
set(GRT_LIBRARIES ${PYTHON_LIBRARIES} ${LUA_LIBRARIES} ${LIBXML2_LIBRARIES})
216
 
set(GRT_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} ${LUA_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
217
 
 
218
 
configure_file(${PROJECT_SOURCE_DIR}/mysql-workbench.desktop.in mysql-workbench.desktop)
219
 
 
220
 
# FIXME: Should this go here? ---v
221
 
include_directories(${PROJECT_SOURCE_DIR}/plugins/migration/copytable ${PROJECT_SOURCE_DIR}/library/base)
222
 
include_directories(${GTK2_INCLUDE_DIRS})
223
 
 
224
 
add_subdirectory(tools)
225
 
add_subdirectory(backend)
226
 
add_subdirectory(ext)
227
 
add_subdirectory(frontend)
228
 
add_subdirectory(images)
229
 
add_subdirectory(library)
230
 
add_subdirectory(modules)
231
 
add_subdirectory(plugins)
232
 
add_subdirectory(res)
233
 
if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/internal)
234
 
  add_subdirectory(internal)
235
 
endif()
236
 
 
237
 
install(FILES ${CMAKE_BINARY_DIR}/mysql-workbench.desktop DESTINATION ${WB_INSTALL_SHARED_DIR}/applications)
238
 
 
239
 
if (EXISTS ${PROJECT_SOURCE_DIR}/COPYING)
240
 
    install(FILES README COPYING DESTINATION ${WB_INSTALL_DOC_DIR})
241
 
    install(FILES build/debian/mysql-workbench-community.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
242
 
    install(FILES build/debian/mysql-workbench-community.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
243
 
else ()
244
 
    install(FILES README LICENSE.mysql DESTINATION ${WB_INSTALL_DOC_DIR})
245
 
    install(FILES build/debian/mysql-workbench-commercial.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
246
 
    install(FILES build/debian/mysql-workbench-commercial.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
247
 
endif ()
248
 
 
249
 
install(FILES build/build_freetds.sh
250
 
              samples/models/sakila_full.mwb
251
 
        DESTINATION ${WB_PACKAGE_SHARED_DIR}/extras
252
 
       )
253