Skip to content

Commit

Permalink
Changed FindMySQL.cmake to make version check
Browse files Browse the repository at this point in the history
reviewed by: lolek
Linux:cmake: Fix copytables link library name

review by Marcin
  • Loading branch information
migueltadeu committed Dec 2, 2015
1 parent 8a45331 commit f32b9ee
Show file tree
Hide file tree
Showing 13 changed files with 89 additions and 62 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Expand Up @@ -101,7 +101,7 @@ find_python_module(paramiko 1.15.1 QUIET)
if(NOT PY_PARAMIKO) if(NOT PY_PARAMIKO)
message(WARNING "Paramiko wasn't found, you can still build Workbench, but may not work properly.") message(WARNING "Paramiko wasn't found, you can still build Workbench, but may not work properly.")
endif() endif()
find_package(MySQL REQUIRED) find_package(MySQL 5.6.0 REQUIRED)
if (UNIX) if (UNIX)
set(MYSQL_DEFINITIONS "-DBIG_JOINS=1" "-fno-strict-aliasing") set(MYSQL_DEFINITIONS "-DBIG_JOINS=1" "-fno-strict-aliasing")
endif() endif()
Expand Down
2 changes: 1 addition & 1 deletion backend/wbpublic/CMakeLists.txt
Expand Up @@ -4,7 +4,7 @@ include_directories(.
${SIGC++_INCLUDE_DIRS} ${SIGC++_INCLUDE_DIRS}
${GRT_INCLUDE_DIRS} ${GRT_INCLUDE_DIRS}
${PCRE_INCLUDE_DIRS} ${PCRE_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIRS} ${MySQL_INCLUDE_DIRS}
${SQLITE3_INCLUDE_DIRS} ${SQLITE3_INCLUDE_DIRS}
${CTemplate_INCLUDE_DIRS} ${CTemplate_INCLUDE_DIRS}
${OPENGL_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIRS}
Expand Down
118 changes: 72 additions & 46 deletions build/cmake/Modules/FindMySQL.cmake
Expand Up @@ -17,55 +17,81 @@


# - Find mysql client library and includes # - Find mysql client library and includes
# #
# MYSQL_FOUND - True if mysql was found # MySQL_FOUND - True if mysql was found
# MYSQL_INCLUDE_DIRS - the include dir where mysql.h lives # MySQL_INCLUDE_DIRS - the include dir where mysql.h lives
# MYSQL_LIBRARIES - list of mysql libraries # MySQL_LIBRARIES - list of mysql libraries


if (MYSQL_LIBRARIES AND MYSQL_INCLUDE_DIRS) include(FindPackageHandleStandardArgs)
# in cache already, be silent and skip the rest
set(MYSQL_FOUND TRUE) if (MySQL_LIBRARIES AND MySQL_INCLUDE_DIRS)
# in cache already, be silent and skip the rest
set(MySQL_FOUND TRUE)
else () else ()
if (MYSQL_CONFIG_PATH) if (EXISTS ${MySQL_CONFIG_PATH})
EXEC_PROGRAM(${MYSQL_CONFIG_PATH} ARGS --variable=pkgincludedir RETURN_VALUE _return_VALUE OUTPUT_VARIABLE MYSQL_INCLUDE_DIRS)
if (NOT _return_VALUE) execute_process(COMMAND ${MySQL_CONFIG_PATH} --version
EXEC_PROGRAM(${MYSQL_CONFIG_PATH} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE MYSQL_LIBRARIES) RESULT_VARIABLE MySQL_ProcessResult
OUTPUT_VARIABLE MySQL_VERSION
ERROR_VARIABLE MySQL_ProcessError
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)

execute_process(COMMAND ${MySQL_CONFIG_PATH} --variable=pkgincludedir
RESULT_VARIABLE MySQL_ProcessResult
OUTPUT_VARIABLE MySQL_INCLUDE_DIRS
ERROR_VARIABLE MySQL_ProcessError
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)

execute_process(COMMAND ${MySQL_CONFIG_PATH} --libs
RESULT_VARIABLE MySQL_ProcessResult
OUTPUT_VARIABLE MySQL_LIBRARIES
ERROR_VARIABLE MySQL_ProcessError
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)


include(FindPackageHandleStandardArgs) find_package_handle_standard_args(MySQL
find_package_handle_standard_args(MySQL DEFAULT_MSG FOUND_VAR MySQL_FOUND
MYSQL_INCLUDE_DIRS MYSQL_LIBRARIES REQUIRED_VARS MySQL_INCLUDE_DIRS MySQL_LIBRARIES
) VERSION_VAR MySQL_VERSION
mark_as_advanced(MYSQL_INCLUDE_DIRS MYSQL_LIBRARIES) )
message("MySQL_INCLUDE_DIRS: ${MySQL_INCLUDE_DIRS}")
message("MySQL_LIBRARIES: ${MySQL_LIBRARIES}")
# mark_as_advanced(MySQL_INCLUDE_DIRS MySQL_LIBRARIES)
else () else ()
MESSAGE(FATAL_ERROR "Cannot find ${MYSQL_CONFIG_PATH} (MYSQL_CONFIG_PATH)") # Find the include dir:
endif () find_path(MySQL_INCLUDE_DIRS mysql.h
else () /usr/include/mysql
# Find the include dir: /usr/local/include/mysql
FIND_PATH(MYSQL_INCLUDE_DIRS mysql.h /opt/mysql/mysql/include
/usr/include/mysql /opt/mysql/mysql/include/mysql
/usr/local/include/mysql /usr/local/mysql/include
/opt/mysql/mysql/include /usr/local/mysql/include/mysql
/opt/mysql/mysql/include/mysql $ENV{ProgramFiles}/MySQL/*/include
/usr/local/mysql/include $ENV{SystemDrive}/MySQL/*/include
/usr/local/mysql/include/mysql )
$ENV{ProgramFiles}/MySQL/*/include
$ENV{SystemDrive}/MySQL/*/include find_file(MySQL_VERSION_FILE mysql_version.h ${MySQL_INCLUDE_DIRS})
) file(STRINGS "${MySQL_VERSION_FILE}" MySQL_VERSION_LINE REGEX "MYSQL_SERVER_VERSION")
string(REGEX REPLACE "#define MYSQL_SERVER_VERSION[ \t]+\"([0-9.]+)\"" "\\1" MySQL_VERSION "${MySQL_VERSION_LINE}")

# Find the library:
set(MySQL_LIBRARY_NAMES mysqlclient mysqlclient_r)
find_library(MySQL_LIBRARIES
NAMES ${MySQL_LIBRARY_NAMES}
PATHS /usr/lib
/usr/local/lib
/usr/local/mysql/lib
/opt/mysql/mysql/lib
$ENV{ProgramFiles}/MySQL/*/lib
PATH_SUFFIXES mysql
)


# Find the library: find_package_handle_standard_args(MySQL
SET(MYSQL_LIBRARY_NAMES mysqlclient mysqlclient_r) FOUND_VAR MySQL_FOUND
FIND_LIBRARY(MYSQL_LIBRARIES REQUIRED_VARS MySQL_INCLUDE_DIRS MySQL_LIBRARIES
NAMES ${MYSQL_LIBRARY_NAMES} VERSION_VAR MySQL_VERSION
PATHS /usr/lib )
/usr/local/lib # mark_as_advanced(MySQL_INCLUDE_DIRS MySQL_LIBRARIES)
/usr/local/mysql/lib endif ()
/opt/mysql/mysql/lib
$ENV{ProgramFiles}/MySQL/*/lib
PATH_SUFFIXES mysql
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MySQL DEFAULT_MSG
MYSQL_INCLUDE_DIRS MYSQL_LIBRARIES
)
mark_as_advanced(MYSQL_INCLUDE_DIRS MYSQL_LIBRARIES)
endif ()
endif () endif ()
2 changes: 1 addition & 1 deletion build/debian.in/rules
Expand Up @@ -61,7 +61,7 @@ configure-stamp:
dh_testdir dh_testdir
# Add here commands to configure the package. # Add here commands to configure the package.
cmake . -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) -DCMAKE_BUILD_TYPE=Release \ cmake . -DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) -DCMAKE_BUILD_TYPE=Release \
-DMYSQL_CONFIG_PATH=$(MYSQL_HOME)/bin/mysql_config -DUSE_BUNDLED_MYSQLDUMP=1 \ -DMySQL_CONFIG_PATH=$(MYSQL_HOME)/bin/mysql_config -DUSE_BUNDLED_MYSQLDUMP=1 \
-DMYSQLCPPCONN_LIBRARY="-L$(CPPCONN_HOME)/lib -lmysqlcppconn" \ -DMYSQLCPPCONN_LIBRARY="-L$(CPPCONN_HOME)/lib -lmysqlcppconn" \
-DMYSQLCPPCONN_INCLUDE_DIR=$(CPPCONN_HOME)/include \ -DMYSQLCPPCONN_INCLUDE_DIR=$(CPPCONN_HOME)/include \
-DGDAL_INCLUDE_DIR=$(GDAL_HOME)/include -DGDAL_LIBRARY=$(GDAL_HOME)/lib/libgdal.so \ -DGDAL_INCLUDE_DIR=$(GDAL_HOME)/include -DGDAL_LIBRARY=$(GDAL_HOME)/lib/libgdal.so \
Expand Down
2 changes: 1 addition & 1 deletion build/mysql-workbench.spec.in
Expand Up @@ -207,7 +207,7 @@ CXXFLAGS="-std=c++11 $CXXFLAGS" \
%endif %endif
%cmake -DCMAKE_BUILD_TYPE=Release \ %cmake -DCMAKE_BUILD_TYPE=Release \
-DREAL_EXECUTABLE_DIR=%{_libexecdir}/mysql-workbench \ -DREAL_EXECUTABLE_DIR=%{_libexecdir}/mysql-workbench \
-DMYSQL_CONFIG_PATH=%{mysql_home}/bin/mysql_config \ -DMySQL_CONFIG_PATH=%{mysql_home}/bin/mysql_config \
-DMYSQLCPPCONN_LIBRARY="-L%{mysqlcppconn_dir}/lib -lmysqlcppconn" \ -DMYSQLCPPCONN_LIBRARY="-L%{mysqlcppconn_dir}/lib -lmysqlcppconn" \
-DMYSQLCPPCONN_INCLUDE_DIR=%{mysqlcppconn_dir}/include \ -DMYSQLCPPCONN_INCLUDE_DIR=%{mysqlcppconn_dir}/include \
-DIODBC_CONFIG_PATH=%{odbc_home}/bin/iodbc-config \ -DIODBC_CONFIG_PATH=%{odbc_home}/bin/iodbc-config \
Expand Down
2 changes: 1 addition & 1 deletion frontend/linux/workbench/CMakeLists.txt
Expand Up @@ -114,7 +114,7 @@ target_link_libraries(mysql-workbench-bin
${PCRE_LIBRARIES} ${PCRE_LIBRARIES}
${CAIRO_LIBRARIES} ${CAIRO_LIBRARIES}
${LIBZIP_LIBRARIES} ${LIBZIP_LIBRARIES}
${MYSQL_LIBRARIES} ${MySQL_LIBRARIES}
${SQLITE3_LIBRARIES} ${SQLITE3_LIBRARIES}
${GNOME_KEYRING_LIBRARIES} ${GNOME_KEYRING_LIBRARIES}
) )
Expand Down
2 changes: 1 addition & 1 deletion library/sql.parser/source/CMakeLists.txt
@@ -1,4 +1,4 @@
include_directories(. ../include ${PROJECT_SOURCE_DIR}/modules/db.mysql.sqlparser/src ${MYSQL_INCLUDE_DIRS}) include_directories(. ../include ${PROJECT_SOURCE_DIR}/modules/db.mysql.sqlparser/src ${MySQL_INCLUDE_DIRS})


if (UNIX) if (UNIX)
include_directories(./linux) include_directories(./linux)
Expand Down
2 changes: 1 addition & 1 deletion modules/db.mysql.sqlparser/CMakeLists.txt
Expand Up @@ -20,7 +20,7 @@ include_directories(.
${GRT_INCLUDE_DIRS} ${GRT_INCLUDE_DIRS}
${PCRE_INCLUDE_DIR} ${PCRE_INCLUDE_DIR}
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}
${MYSQL_INCLUDE_DIRS} ${MySQL_INCLUDE_DIRS}
) )


if (MYSQL_DEFINITIONS) if (MYSQL_DEFINITIONS)
Expand Down
2 changes: 1 addition & 1 deletion modules/wb.fabric.interface/CMakeLists.txt
Expand Up @@ -2,7 +2,7 @@ include_directories(.
${GTK2_INCLUDE_DIRS} ${GTK2_INCLUDE_DIRS}
${SIGC++_INCLUDE_DIRS} ${SIGC++_INCLUDE_DIRS}
${GRT_INCLUDE_DIRS} ${GRT_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIRS} ${MySQL_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}
${TINYXML_INCLUDE_DIRS} ${TINYXML_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/generated ${PROJECT_SOURCE_DIR}/generated
Expand Down
4 changes: 2 additions & 2 deletions modules/wb.model/CMakeLists.txt
Expand Up @@ -72,7 +72,7 @@ include_directories(.
${PROJECT_SOURCE_DIR}/modules/db.mysql.sqlide/src ${PROJECT_SOURCE_DIR}/modules/db.mysql.sqlide/src
${GTK2_INCLUDE_DIRS} ${GTK2_INCLUDE_DIRS}
${PCRE_INCLUDE_DIRS} ${PCRE_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIRS} ${MySQL_INCLUDE_DIRS}
${CTemplate_INCLUDE_DIRS} ${CTemplate_INCLUDE_DIRS}
${GRT_INCLUDE_DIRS} ${GRT_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}
Expand All @@ -83,7 +83,7 @@ add_library(wb.model.grt
src/wb_model.cpp src/wb_model.cpp
) )


target_link_libraries(wb.model.grt grt ${GRT_LIBRARIES} ${GTK2_LIBRARIES} ${PCRE_LIBRARIES} ${MYSQL_LIBRARIES} ${CTemplate_LIBRARIES}) target_link_libraries(wb.model.grt grt ${GRT_LIBRARIES} ${GTK2_LIBRARIES} ${PCRE_LIBRARIES} ${MySQL_LIBRARIES} ${CTemplate_LIBRARIES})


set_target_properties(wb.model.grt set_target_properties(wb.model.grt
PROPERTIES PREFIX "" PROPERTIES PREFIX ""
Expand Down
4 changes: 2 additions & 2 deletions modules/wb.mysql.import/CMakeLists.txt
Expand Up @@ -2,7 +2,7 @@ include_directories(.
${GTK2_INCLUDE_DIRS} ${GTK2_INCLUDE_DIRS}
${SIGC++_INCLUDE_DIRS} ${SIGC++_INCLUDE_DIRS}
${GRT_INCLUDE_DIRS} ${GRT_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIRS} ${MySQL_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}
${VSQLITE_INCLUDE_DIRS} ${VSQLITE_INCLUDE_DIRS}
${TINYXML_INCLUDE_DIRS} ${TINYXML_INCLUDE_DIRS}
Expand All @@ -24,7 +24,7 @@ add_library(wb.mysql.import.grt
src/wb_mysql_import_dbd4.cpp src/wb_mysql_import_dbd4.cpp
) )


target_link_libraries(wb.mysql.import.grt wbscintilla ${GRT_LIBRARIES} ${GTK2_LIBRARIES} ${SIGC++_LIBRARIES} ${TINYXML_LIBRARIES} ${MYSQL_LIBRARIES}) target_link_libraries(wb.mysql.import.grt wbscintilla ${GRT_LIBRARIES} ${GTK2_LIBRARIES} ${SIGC++_LIBRARIES} ${TINYXML_LIBRARIES} ${MySQL_LIBRARIES})


set_target_properties(wb.mysql.import.grt set_target_properties(wb.mysql.import.grt
PROPERTIES PREFIX "" PROPERTIES PREFIX ""
Expand Down
7 changes: 4 additions & 3 deletions plugins/migration/CMakeLists.txt
@@ -1,7 +1,7 @@
include_directories( include_directories(
${ODBC_INCLUDE_DIRS} ${ODBC_INCLUDE_DIRS}
${PYTHON_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS}
${MYSQL_INCLUDE_DIRS} ${MySQL_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}/backend/wbprivate ${PROJECT_SOURCE_DIR}/backend/wbprivate
) )


Expand All @@ -17,12 +17,13 @@ if (UNIX)
copytable/main.cpp copytable/main.cpp
copytable/converter.cpp copytable/converter.cpp
) )

if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set_target_properties(wbcopytables-bin PROPERTIES COMPILE_FLAGS "-fPIE") set_target_properties(wbcopytables-bin PROPERTIES COMPILE_FLAGS "-fPIE")
else() else()
set_target_properties(wbcopytables-bin PROPERTIES COMPILE_FLAGS "-fPIE -pie") set_target_properties(wbcopytables-bin PROPERTIES COMPILE_FLAGS "-fPIE -pie")
endif() endif()
target_link_libraries(wbcopytables-bin wbbase ${MYSQL_LIBRARIES} ${ODBC_LIBRARIES} ${PCRE_LIBRARIES} ${PYTHON_LIBRARIES}) target_link_libraries(wbcopytables-bin wbbase ${MySQL_LIBRARIES} ${ODBC_LIBRARIES} ${PCRE_LIBRARIES} ${PYTHON_LIBRARIES})


install(TARGETS wbcopytables-bin DESTINATION ${WB_INSTALL_DIR_EXECUTABLE}) install(TARGETS wbcopytables-bin DESTINATION ${WB_INSTALL_DIR_EXECUTABLE})
else() else()
Expand All @@ -38,7 +39,7 @@ else()
set_target_properties(wbcopytables PROPERTIES COMPILE_FLAGS "-fPIE -pie") set_target_properties(wbcopytables PROPERTIES COMPILE_FLAGS "-fPIE -pie")
endif() endif()


target_link_libraries(wbcopytables wbbase ${MYSQL_LIBRARIES} ${ODBC_LIBRARIES} ${PCRE_LIBRARIES} ${PYTHON_LIBRARIES}) target_link_libraries(wbcopytables wbbase ${MySQL_LIBRARIES} ${ODBC_LIBRARIES} ${PCRE_LIBRARIES} ${PYTHON_LIBRARIES})


install(TARGETS wbcopytables DESTINATION ${WB_INSTALL_BIN_DIR}) install(TARGETS wbcopytables DESTINATION ${WB_INSTALL_BIN_DIR})
endif() endif()
Expand Down
2 changes: 1 addition & 1 deletion tools/genwrap/CMakeLists.txt
Expand Up @@ -17,4 +17,4 @@ else()
set_target_properties(genwrap PROPERTIES COMPILE_FLAGS "-fPIE -pie") set_target_properties(genwrap PROPERTIES COMPILE_FLAGS "-fPIE -pie")
endif() endif()


target_link_libraries(genwrap grt wbbase wbpublic ${X11_LIBRARIES} ${PCRE_LIBRARIES} ${MYSQL_LIBRARIES} ${CTemplate_LIBRARIES}) target_link_libraries(genwrap grt wbbase wbpublic ${X11_LIBRARIES} ${PCRE_LIBRARIES} ${MySQL_LIBRARIES} ${CTemplate_LIBRARIES})

0 comments on commit f32b9ee

Please sign in to comment.