Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- mysql-workbench-community-6.0.6-src/CMakeLists.txt 2013-08-09 17:32:52.000000000 +0200
- +++ ./files/CMakeLists.txt 2013-09-01 15:07:22.245566905 +0200
- @@ -1,50 +1,31 @@
- -cmake_minimum_required (VERSION 2.8)
- -# 2.8 needed because of ExternalProject
- +## Minimum CMake Version
- +cmake_minimum_required (VERSION 2.8.11)
- +## Project Name
- project(WORKBENCH)
- -
- -# About MySQL and CMake
- -# http://dev.mysql.com/doc/internals/en/autotools-to-cmake.html
- -# http://www.lenzg.net/archives/291-Building-MySQL-Server-with-CMake-on-LinuxUnix.html
- -
- -#-----------------------------------------------------------------------
- -# Find packages and other useful checks
- -#-----------------------------------------------------------------------
- -
- -# Look for our custom modules in cmake/Modules:
- +## Look for our custom modules in cmake/Modules:
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build/cmake/Modules/")
- find_package(PkgConfig REQUIRED)
- find_package(GTK2 2.6.2 REQUIRED gtk gtkmm)
- +if (NOT GTK2_FOUND)
- + message( FATAL_ERROR "Not all GTK2 components were found!" )
- +endif()
- +
- pkg_check_modules(GTHREAD REQUIRED gthread-2.0)
- pkg_check_modules(GMODULE REQUIRED gmodule-2.0)
- -set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTHREAD_INCLUDE_DIRS} ${GMODULE_INCLUDE_DIRS})
- +
- +list(APPEND GTK2_INCLUDE_DIRS ${GTHREAD_INCLUDE_DIRS} ${GMODULE_INCLUDE_DIRS})
- list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS)
- -set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTHREAD_LIBRARIES} ${GMODULE_LIBRARIES})
- +
- +list(APPEND GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTHREAD_LIBRARIES} ${GMODULE_LIBRARIES})
- list(REMOVE_DUPLICATES GTK2_LIBRARIES)
- pkg_check_modules(GLIB REQUIRED glib-2.0)
- -# All known publicly available versions of Antlr3C are buggy
- -
- -if (SKIP_BUNDLED_ANTLR)
- - find_package(Antlr3C)
- -endif ()
- -if (ANTLR3C_FOUND)
- - set(ANTLR3C_REQUIRED_VERSION "3.4")
- - if (${ANTLR3C_VERSION} VERSION_LESS ${ANTLR3C_REQUIRED_VERSION})
- - message("Required antlr3c version ${ANTLR3C_REQUIRED_VERSION} but ${ANTLR3C_VERSION} found, using bundled version")
- - unset(ANTLR3C_FOUND)
- - endif ()
- -endif ()
- -
- -# 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)
- find_package(PythonLibs)
- -if (NOT PYTHONLIBS_FOUND)
- - pkg_check_modules(PYTHON REQUIRED python)
- -endif ()
- set(GRT_DEFINITIONS -DENABLE_PYTHON_MODULES)
- find_package(Lua51)
- @@ -66,25 +47,19 @@
- find_package(VSqlite REQUIRED)
- find_package(TinyXML REQUIRED)
- -if (UNIX)
- - option(USE_UNIXODBC "Use unixODBC instead of iODBC" OFF)
- - if (USE_UNIXODBC)
- - find_package(UNIXODBC REQUIRED)
- - set(ODBC_LIBRARIES ${UNIXODBC_LIBRARIES})
- - set(ODBC_INCLUDE_DIRS ${UNIXODBC_INCLUDE_DIRS})
- - else ()
- - find_package(IODBC REQUIRED)
- - set(ODBC_LIBRARIES ${IODBC_LIBRARIES})
- - set(ODBC_INCLUDE_DIRS ${IODBC_INCLUDE_DIRS})
- - endif()
- -endif ()
- +## disabled UNIXODBC check
- +find_package(IODBC REQUIRED)
- +set(ODBC_LIBRARIES ${IODBC_LIBRARIES})
- +set(ODBC_INCLUDE_DIRS ${IODBC_INCLUDE_DIRS})
- pkg_check_modules(PCRE REQUIRED libpcre libpcrecpp)
- pkg_check_modules(CAIRO REQUIRED cairo>=1.5.12)
- pkg_check_modules(SQLITE3 REQUIRED sqlite3)
- pkg_check_modules(UUID REQUIRED uuid)
- pkg_check_modules(LIBZIP REQUIRED libzip)
- -if (UNIX)
- +
- +option(USE_GNOME_KEYRING "Use gnome-keyring." OFF)
- +if (UNIX AND USE_GNOME_KEYRING)
- pkg_check_modules(GNOME_KEYRING gnome-keyring-1)
- if (GNOME_KEYRING_FOUND)
- set(KEYRING_DEFINITION "HAVE_GNOME_KEYRING")
- @@ -94,6 +69,9 @@
- set(KEYRING_DEFINITION "HAVE_OLD_GNOME_KEYRING")
- endif()
- endif()
- + if (NOT GNOME_KEYRING_FOUND)
- + message( FATAL_ERROR "Gnome Keyring was not found but requested!" )
- + endif()
- endif()
- include (CheckFunctionExists)
- @@ -106,7 +84,7 @@
- if (UNIX)
- if (NOT LIB_INSTALL_DIR)
- - set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
- + set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
- endif()
- if (NOT SHARE_INSTALL_PREFIX)
- set(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share")
- @@ -133,80 +111,41 @@
- include(ExternalProject)
- -if (NOT ANTLR3C_FOUND)
- - message("Using bundled Antlr C runtime")
- - # Use for Antlr3 the one we have in /ext:
- - set(ANTLR3C_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/ext/antlr-runtime ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/include)
- - set(ANTLR3C_LIBRARIES "-L${PROJECT_BINARY_DIR}/antlr-wb -lantlr3c_wb")
- -
- - ExternalProject_Add(antlr-wb
- - SOURCE_DIR ${PROJECT_SOURCE_DIR}/ext/antlr-runtime
- - CONFIGURE_COMMAND autoreconf -i -s && ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/configure
- - --prefix=${PROJECT_BINARY_DIR}/antlr-wb
- - --libdir=${PROJECT_BINARY_DIR}/antlr-wb
- +## use the bundled ANTLR C runtime - currently missing "CMAKE way" to configure package
- +message("Using bundled Antlr C runtime")
- +
- +## Use for Antlr3 the one we have in /ext:
- +set(ANTLR3C_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/ext/antlr-runtime ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/include)
- +set(ANTLR3C_LIBRARIES "-L${PROJECT_BINARY_DIR}/antlr-wb -lantlr3c_wb")
- +
- +ExternalProject_Add(antlr-wb
- + SOURCE_DIR ${PROJECT_SOURCE_DIR}/ext/antlr-runtime
- + CONFIGURE_COMMAND autoreconf -i -s && ${PROJECT_SOURCE_DIR}/ext/antlr-runtime/configure
- + --prefix=${PROJECT_BINARY_DIR}/antlr-wb
- + --libdir=${PROJECT_BINARY_DIR}/antlr-wb
- --disable-abiflags
- - BUILD_COMMAND make
- - BUILD_IN_SOURCE 1
- - INSTALL_COMMAND make install
- - )
- -
- - link_directories(${PROJECT_BINARY_DIR}/antlr-wb)
- -endif ()
- -
- -# Uncomment these lines if at any time you want to force the configure and/or build
- -# of antlr-wb:
- -#ExternalProject_Add_Step(antlr-wb forceconfigure
- -# COMMAND ${CMAKE_COMMAND} -E echo "Force configure of antlr-wb"
- -# DEPENDEES update
- -# DEPENDERS configure
- -# ALWAYS 1
- -#)
- -#ExternalProject_Add_Step(antlr-wb forcebuild
- -# COMMAND ${CMAKE_COMMAND} -E echo "Force build of antlr-wb"
- -# DEPENDEES configure
- -# DEPENDERS build
- -# ALWAYS 1
- -#)
- -
- -
- -#include(CheckCXXCompilerFlag)
- -#check_cxx_compiler_flag(-Wall HAS_ALL_WARNS)
- -#if (HAS_ALL_WARNS)
- -# add_definitions(-Wall)
- -#endif()
- -#check_cxx_compiler_flag(-Wsign-compare HAS_SIGN_COMPARE)
- -#if (HAS_SIGN_COMPARE)
- -# add_definitions(-Wsign-compare)
- -#endif()
- + BUILD_COMMAND make
- + BUILD_IN_SOURCE 1
- + INSTALL_COMMAND make install
- +)
- +link_directories(${PROJECT_BINARY_DIR}/antlr-wb)
- -set(BUILD_SHARED_LIBS ON) # By default all libs will be built as shared libs
- +## By default all libs will be built as shared libs
- +set(BUILD_SHARED_LIBS ON)
- -# Add some common compiler flags. TODO: Shouldn't this be done checking if whatever compiler
- -# we use supports each flag to allow for non-gcc compilers in Linux (as above)?
- +## Add some common compiler flags. TODO: Shouldn't this be done checking if whatever compiler
- +## we use supports each flag to allow for non-gcc compilers in Linux (as above)?
- if (CMAKE_COMPILER_IS_GNUCXX)
- - add_definitions(-Wall -Wsign-compare -Wextra -Wno-unused -Wno-deprecated -DTIXML_USE_STL=1)
- + add_definitions(-Wno-unused -Wno-deprecated -DTIXML_USE_STL=1)
- endif()
- +set(GRT_LIBRARIES ${PYTHON_LIBRARIES} ${LUA_LIBRARIES} ${LIBXML2_LIBRARIES})
- +set(GRT_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} ${LUA_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
- -#-----------------------------------------------------------------------
- -# Define some useful variables and options
- -#-----------------------------------------------------------------------
- -
- -#set(NCORES 3) # Use this number of cores when compiling
- -#if(CMAKE_COMPILER_IS_GNUCXX)
- -# set(CMAKE_CXX_FLAGS "${CMAKE_CKK_FLAGS} -j${NCORES}")
- -# message(STATUS "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
- -# #set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
- -#endif()
- -
- -set(GRT_LIBRARIES ${PYTHON_LIBRARIES} ${LUA_LIBRARIES} ${LIBXML2_LIBRARIES})
- -set(GRT_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} ${LUA_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
- -
- -configure_file(${PROJECT_SOURCE_DIR}/mysql-workbench.desktop.in mysql-workbench.desktop)
- -configure_file(${PROJECT_SOURCE_DIR}/mysql-workbench.conf.in mysql-workbench.conf)
- +configure_file(${CMAKE_SOURCE_DIR}/mysql-workbench.desktop.in mysql-workbench.desktop)
- +configure_file(${CMAKE_SOURCE_DIR}/mysql-workbench.conf.in mysql-workbench.conf)
- -# FIXME: Should this go here? ---v
- -include_directories(${WORKBENCH_SOURCE_DIR}/plugins/migration/copytable ${WORKBENCH_SOURCE_DIR}/library/base)
- +include_directories(${CMAKE_SOURCE_DIR}/plugins/migration/copytable ${CMAKE_SOURCE_DIR}/library/base)
- include_directories(${GTK2_INCLUDE_DIRS})
- add_subdirectory(tools)
- @@ -219,24 +158,18 @@
- add_subdirectory(plugins)
- add_subdirectory(res)
- if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/internal)
- - add_subdirectory(internal)
- + add_subdirectory(internal)
- endif()
- install(FILES ${CMAKE_BINARY_DIR}/mysql-workbench.desktop DESTINATION ${WB_INSTALL_SHARED_DIR}/applications)
- install(FILES ${CMAKE_BINARY_DIR}/mysql-workbench.conf DESTINATION ${WB_INSTALL_ETC_DIR}/ld.so.conf.d)
- -if (EXISTS COPYING)
- - install(FILES README COPYING DESTINATION ${WB_INSTALL_DOC_DIR})
- - install(FILES build/debian/mysql-workbench-community.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
- - install(FILES build/debian/mysql-workbench-community.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
- -else ()
- - install(FILES README LICENSE.mysql DESTINATION ${WB_INSTALL_DOC_DIR})
- - install(FILES build/debian/mysql-workbench-commercial.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
- - install(FILES build/debian/mysql-workbench-commercial.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
- -endif ()
- +## use COPYING License File provided in source directory
- +install(FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/COPYING DESTINATION ${WB_INSTALL_DOC_DIR})
- +install(FILES ${CMAKE_SOURCE_DIR}/build/debian/mysql-workbench-community.sharedmimeinfo DESTINATION ${WB_INSTALL_SHARED_DIR}/mime/packages RENAME mysql-workbench.xml)
- +install(FILES ${CMAKE_SOURCE_DIR}/build/debian/mysql-workbench-community.mime DESTINATION ${WB_INSTALL_SHARED_DIR}/mime-info RENAME mysql-workbench.mime)
- -install(FILES build/build_freetds.sh
- - samples/models/sakila_full.mwb
- +install(FILES ${CMAKE_SOURCE_DIR}/build/build_freetds.sh
- + ${CMAKE_SOURCE_DIR}/samples/models/sakila_full.mwb
- DESTINATION ${WB_PACKAGE_SHARED_DIR}/extras
- - )
- -
- +)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement