Advertisement
Guest User

MySQL Workbench CMakeLists.txt changes

a guest
Sep 1st, 2013
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
CMake 10.86 KB | None | 0 0
  1. --- mysql-workbench-community-6.0.6-src/CMakeLists.txt  2013-08-09 17:32:52.000000000 +0200
  2. +++ ./files/CMakeLists.txt      2013-09-01 15:07:22.245566905 +0200
  3. @@ -1,50 +1,31 @@
  4. -cmake_minimum_required (VERSION 2.8)
  5. -# 2.8 needed because of ExternalProject
  6. +## Minimum CMake Version
  7. +cmake_minimum_required (VERSION 2.8.11)
  8.  
  9. +## Project Name
  10.  project(WORKBENCH)
  11.  
  12. -
  13. -#  About MySQL and CMake
  14. -#  http://dev.mysql.com/doc/internals/en/autotools-to-cmake.html
  15. -#  http://www.lenzg.net/archives/291-Building-MySQL-Server-with-CMake-on-LinuxUnix.html
  16. -
  17. -#-----------------------------------------------------------------------
  18. -# Find packages and other useful checks
  19. -#-----------------------------------------------------------------------
  20. -
  21. -# Look for our custom modules in cmake/Modules:
  22. +## Look for our custom modules in cmake/Modules:
  23.  set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build/cmake/Modules/")
  24.  
  25.  find_package(PkgConfig REQUIRED)
  26.  
  27.  find_package(GTK2 2.6.2 REQUIRED gtk gtkmm)
  28. +if (NOT GTK2_FOUND)
  29. +       message( FATAL_ERROR "Not all GTK2 components were found!" )
  30. +endif()
  31. +
  32.  pkg_check_modules(GTHREAD REQUIRED gthread-2.0)
  33.  pkg_check_modules(GMODULE REQUIRED gmodule-2.0)
  34. -set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${GMODULE_INCLUDE_DIRS})
  35. +
  36. +list(APPEND GTK2_INCLUDE_DIRS ${GTHREAD_INCLUDE_DIRS} ${GMODULE_INCLUDE_DIRS})
  37.  list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
  38. -set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTHREAD_LIBRARIES} ${GMODULE_LIBRARIES})
  39. +
  40. +list(APPEND GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTHREAD_LIBRARIES} ${GMODULE_LIBRARIES})
  41.  list(REMOVE_DUPLICATES GTK2_LIBRARIES)
  42.  
  43.  pkg_check_modules(GLIB REQUIRED glib-2.0)
  44.  
  45. -# All known publicly available versions of Antlr3C are buggy
  46. -
  47. -if (SKIP_BUNDLED_ANTLR)
  48. -  find_package(Antlr3C)
  49. -endif ()
  50. -if (ANTLR3C_FOUND)
  51. -  set(ANTLR3C_REQUIRED_VERSION "3.4")
  52. -  if (${ANTLR3C_VERSION} VERSION_LESS ${ANTLR3C_REQUIRED_VERSION})
  53. -    message("Required antlr3c version ${ANTLR3C_REQUIRED_VERSION} but ${ANTLR3C_VERSION} found, using bundled version")
  54. -    unset(ANTLR3C_FOUND)
  55. -  endif ()
  56. -endif ()
  57. -
  58. -# 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)
  59.  find_package(PythonLibs)
  60. -if (NOT PYTHONLIBS_FOUND)
  61. -    pkg_check_modules(PYTHON REQUIRED python)
  62. -endif ()
  63.  set(GRT_DEFINITIONS -DENABLE_PYTHON_MODULES)
  64.  
  65.  find_package(Lua51)
  66. @@ -66,25 +47,19 @@
  67.  find_package(VSqlite REQUIRED)
  68.  find_package(TinyXML REQUIRED)
  69.  
  70. -if (UNIX)
  71. -       option(USE_UNIXODBC "Use unixODBC instead of iODBC" OFF)
  72. -       if (USE_UNIXODBC)
  73. -               find_package(UNIXODBC REQUIRED)
  74. -               set(ODBC_LIBRARIES ${UNIXODBC_LIBRARIES})
  75. -               set(ODBC_INCLUDE_DIRS ${UNIXODBC_INCLUDE_DIRS})
  76. -       else ()
  77. -               find_package(IODBC REQUIRED)
  78. -               set(ODBC_LIBRARIES ${IODBC_LIBRARIES})
  79. -               set(ODBC_INCLUDE_DIRS ${IODBC_INCLUDE_DIRS})
  80. -       endif()
  81. -endif ()
  82. +## disabled UNIXODBC check
  83. +find_package(IODBC REQUIRED)
  84. +set(ODBC_LIBRARIES ${IODBC_LIBRARIES})
  85. +set(ODBC_INCLUDE_DIRS ${IODBC_INCLUDE_DIRS})
  86.  
  87.  pkg_check_modules(PCRE REQUIRED libpcre libpcrecpp)
  88.  pkg_check_modules(CAIRO REQUIRED cairo>=1.5.12)
  89.  pkg_check_modules(SQLITE3 REQUIRED sqlite3)
  90.  pkg_check_modules(UUID REQUIRED uuid)
  91.  pkg_check_modules(LIBZIP REQUIRED libzip)
  92. -if (UNIX)
  93. +
  94. +option(USE_GNOME_KEYRING "Use gnome-keyring." OFF)
  95. +if (UNIX AND USE_GNOME_KEYRING)
  96.         pkg_check_modules(GNOME_KEYRING gnome-keyring-1)
  97.         if (GNOME_KEYRING_FOUND)
  98.                 set(KEYRING_DEFINITION     "HAVE_GNOME_KEYRING")
  99. @@ -94,6 +69,9 @@
  100.                         set(KEYRING_DEFINITION     "HAVE_OLD_GNOME_KEYRING")
  101.                 endif()
  102.         endif()
  103. +       if (NOT GNOME_KEYRING_FOUND)
  104. +               message( FATAL_ERROR "Gnome Keyring was not found but requested!" )
  105. +       endif()
  106.  endif()
  107.  
  108.  include (CheckFunctionExists)
  109. @@ -106,7 +84,7 @@
  110.  
  111.  if (UNIX)
  112.         if (NOT LIB_INSTALL_DIR)
  113. -               set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
  114. +               set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
  115.         endif()
  116.         if (NOT SHARE_INSTALL_PREFIX)
  117.                 set(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share")
  118. @@ -133,80 +111,41 @@
  119.  
  120.  include(ExternalProject)
  121.  
  122. -if (NOT ANTLR3C_FOUND)
  123. -  message("Using bundled Antlr C runtime")
  124. -  #  Use for Antlr3 the one we have in /ext:
  125. -  set(ANTLR3C_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/ext/antlr-runtime ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/include)
  126. -  set(ANTLR3C_LIBRARIES "-L${PROJECT_BINARY_DIR}/antlr-wb -lantlr3c_wb")
  127. -
  128. -  ExternalProject_Add(antlr-wb
  129. -    SOURCE_DIR ${PROJECT_SOURCE_DIR}/ext/antlr-runtime
  130. -    CONFIGURE_COMMAND autoreconf -i -s && ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/configure
  131. -        --prefix=${PROJECT_BINARY_DIR}/antlr-wb
  132. -        --libdir=${PROJECT_BINARY_DIR}/antlr-wb
  133. +## use the bundled ANTLR C runtime - currently missing "CMAKE way" to configure package
  134. +message("Using bundled Antlr C runtime")
  135. +
  136. +##  Use for Antlr3 the one we have in /ext:
  137. +set(ANTLR3C_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/ext/antlr-runtime ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/include)
  138. +set(ANTLR3C_LIBRARIES "-L${PROJECT_BINARY_DIR}/antlr-wb -lantlr3c_wb")
  139. +
  140. +ExternalProject_Add(antlr-wb
  141. +       SOURCE_DIR ${PROJECT_SOURCE_DIR}/ext/antlr-runtime
  142. +       CONFIGURE_COMMAND autoreconf -i -s && ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/configure
  143. +               --prefix=${PROJECT_BINARY_DIR}/antlr-wb
  144. +               --libdir=${PROJECT_BINARY_DIR}/antlr-wb
  145.         --disable-abiflags
  146. -    BUILD_COMMAND make
  147. -    BUILD_IN_SOURCE 1
  148. -    INSTALL_COMMAND make install
  149. -  )
  150. -
  151. -  link_directories(${PROJECT_BINARY_DIR}/antlr-wb)
  152. -endif ()
  153. -
  154. -# Uncomment these lines if at any time you want to force the configure and/or build
  155. -# of antlr-wb:
  156. -#ExternalProject_Add_Step(antlr-wb forceconfigure
  157. -#    COMMAND ${CMAKE_COMMAND} -E echo "Force configure of antlr-wb"
  158. -#    DEPENDEES update
  159. -#    DEPENDERS configure
  160. -#    ALWAYS 1
  161. -#)
  162. -#ExternalProject_Add_Step(antlr-wb forcebuild
  163. -#    COMMAND ${CMAKE_COMMAND} -E echo "Force build of antlr-wb"
  164. -#    DEPENDEES configure
  165. -#    DEPENDERS build
  166. -#    ALWAYS 1
  167. -#)
  168. -
  169. -
  170. -#include(CheckCXXCompilerFlag)
  171. -#check_cxx_compiler_flag(-Wall  HAS_ALL_WARNS)
  172. -#if (HAS_ALL_WARNS)
  173. -#      add_definitions(-Wall)
  174. -#endif()
  175. -#check_cxx_compiler_flag(-Wsign-compare  HAS_SIGN_COMPARE)
  176. -#if (HAS_SIGN_COMPARE)
  177. -#      add_definitions(-Wsign-compare)
  178. -#endif()
  179. +       BUILD_COMMAND make
  180. +       BUILD_IN_SOURCE 1
  181. +       INSTALL_COMMAND make install
  182. +)
  183. +link_directories(${PROJECT_BINARY_DIR}/antlr-wb)
  184.  
  185. -set(BUILD_SHARED_LIBS ON)  # By default all libs will be built as shared libs
  186. +## By default all libs will be built as shared libs
  187. +set(BUILD_SHARED_LIBS ON)  
  188.  
  189. -# Add some common compiler flags. TODO: Shouldn't this be done checking if whatever compiler
  190. -# we use supports each flag to allow for non-gcc compilers in Linux (as above)?
  191. +## Add some common compiler flags. TODO: Shouldn't this be done checking if whatever compiler
  192. +## we use supports each flag to allow for non-gcc compilers in Linux (as above)?
  193.  if (CMAKE_COMPILER_IS_GNUCXX)
  194. -       add_definitions(-Wall -Wsign-compare -Wextra -Wno-unused -Wno-deprecated -DTIXML_USE_STL=1)
  195. +       add_definitions(-Wno-unused -Wno-deprecated -DTIXML_USE_STL=1)
  196.  endif()
  197.  
  198. +set(GRT_LIBRARIES              ${PYTHON_LIBRARIES}             ${LUA_LIBRARIES}        ${LIBXML2_LIBRARIES})
  199. +set(GRT_INCLUDE_DIRS   ${PYTHON_INCLUDE_DIRS}  ${LUA_INCLUDE_DIR}      ${LIBXML2_INCLUDE_DIR})
  200.  
  201. -#-----------------------------------------------------------------------
  202. -# Define some useful variables and options
  203. -#-----------------------------------------------------------------------
  204. -
  205. -#set(NCORES 3)  # Use this number of cores when compiling
  206. -#if(CMAKE_COMPILER_IS_GNUCXX)
  207. -#      set(CMAKE_CXX_FLAGS "${CMAKE_CKK_FLAGS} -j${NCORES}")
  208. -#      message(STATUS "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
  209. -#      #set(CMAKE_EXE_LINKER_FLAGS "-s")  ## Strip binary
  210. -#endif()
  211. -
  212. -set(GRT_LIBRARIES ${PYTHON_LIBRARIES} ${LUA_LIBRARIES} ${LIBXML2_LIBRARIES})
  213. -set(GRT_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} ${LUA_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
  214. -
  215. -configure_file(${PROJECT_SOURCE_DIR}/mysql-workbench.desktop.in mysql-workbench.desktop)
  216. -configure_file(${PROJECT_SOURCE_DIR}/mysql-workbench.conf.in mysql-workbench.conf)
  217. +configure_file(${CMAKE_SOURCE_DIR}/mysql-workbench.desktop.in mysql-workbench.desktop)
  218. +configure_file(${CMAKE_SOURCE_DIR}/mysql-workbench.conf.in mysql-workbench.conf)
  219.  
  220. -# FIXME: Should this go here? ---v
  221. -include_directories(${WORKBENCH_SOURCE_DIR}/plugins/migration/copytable ${WORKBENCH_SOURCE_DIR}/library/base)
  222. +include_directories(${CMAKE_SOURCE_DIR}/plugins/migration/copytable ${CMAKE_SOURCE_DIR}/library/base)
  223.  include_directories(${GTK2_INCLUDE_DIRS})
  224.  
  225.  add_subdirectory(tools)
  226. @@ -219,24 +158,18 @@
  227.  add_subdirectory(plugins)
  228.  add_subdirectory(res)
  229.  if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/internal)
  230. -  add_subdirectory(internal)
  231. +       add_subdirectory(internal)
  232.  endif()
  233.  
  234.  install(FILES ${CMAKE_BINARY_DIR}/mysql-workbench.desktop DESTINATION ${WB_INSTALL_SHARED_DIR}/applications)
  235.  install(FILES ${CMAKE_BINARY_DIR}/mysql-workbench.conf DESTINATION ${WB_INSTALL_ETC_DIR}/ld.so.conf.d)
  236.  
  237. -if (EXISTS COPYING)
  238. -    install(FILES README COPYING DESTINATION ${WB_INSTALL_DOC_DIR})
  239. -    install(FILES build/debian/mysql-workbench-community.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
  240. -    install(FILES build/debian/mysql-workbench-community.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
  241. -else ()
  242. -    install(FILES README LICENSE.mysql DESTINATION ${WB_INSTALL_DOC_DIR})
  243. -    install(FILES build/debian/mysql-workbench-commercial.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
  244. -    install(FILES build/debian/mysql-workbench-commercial.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
  245. -endif ()
  246. +## use COPYING License File provided in source directory
  247. +install(FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/COPYING DESTINATION ${WB_INSTALL_DOC_DIR})
  248. +install(FILES ${CMAKE_SOURCE_DIR}/build/debian/mysql-workbench-community.sharedmimeinfo DESTINATION  ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
  249. +install(FILES ${CMAKE_SOURCE_DIR}/build/debian/mysql-workbench-community.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
  250.  
  251. -install(FILES build/build_freetds.sh
  252. -              samples/models/sakila_full.mwb
  253. +install(FILES ${CMAKE_SOURCE_DIR}/build/build_freetds.sh
  254. +              ${CMAKE_SOURCE_DIR}/samples/models/sakila_full.mwb
  255.          DESTINATION ${WB_PACKAGE_SHARED_DIR}/extras
  256. -       )
  257. -      
  258. +)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement