239 lines
7.2 KiB
CMake
239 lines
7.2 KiB
CMake
# Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License, version 2.0,
|
|
# as published by the Free Software Foundation.
|
|
#
|
|
# This program is also distributed with certain software (including
|
|
# but not limited to OpenSSL) that is licensed under separate terms,
|
|
# as designated in a particular file or component or in included license
|
|
# documentation. The authors of MySQL hereby grant you an additional
|
|
# permission to link the program and your derivative works with the
|
|
# separately licensed software that they have included with MySQL.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License, version 2.0, for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
# Disable specific types of warnings for current directory
|
|
# if the compiler supports the flag
|
|
FOREACH(warning
|
|
"unused-but-set-variable"
|
|
"strict-aliasing"
|
|
"unused-parameter"
|
|
"cast-qual"
|
|
# Downgrade -Werror to warning for "may be used uninitialized"
|
|
# and "is used uninitialized in this function"
|
|
"error=maybe-uninitialized"
|
|
# Downgrade -Werror=deprecated-copy to warning for gcc 9
|
|
"error=deprecated-copy"
|
|
# Downgrade -Werror=stringop-truncation to warning for gcc 8/9
|
|
"error=stringop-truncation"
|
|
)
|
|
MY_CHECK_CXX_COMPILER_WARNING("${warning}" HAS_WARN_FLAG)
|
|
IF(HAS_WARN_FLAG)
|
|
STRING_APPEND(CMAKE_CXX_FLAGS " ${HAS_WARN_FLAG}")
|
|
STRING_APPEND(CMAKE_C_FLAGS " ${HAS_WARN_FLAG}")
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
|
|
INCLUDE(${CMAKE_SOURCE_DIR}/storage/ndb/config/type_ndbapitools.cmake)
|
|
# Check BISON_VERSION and set BISON_FLAGS_WARNINGS
|
|
FIND_PACKAGE(BISON REQUIRED)
|
|
INCLUDE(${CMAKE_SOURCE_DIR}/cmake/bison.cmake)
|
|
|
|
INCLUDE_DIRECTORIES(
|
|
${CMAKE_SOURCE_DIR}/storage/ndb/src/ndbapi
|
|
${CMAKE_SOURCE_DIR}/storage/ndb/include/kernel/signaldata
|
|
${CMAKE_SOURCE_DIR}/storage/ndb/include/util
|
|
${CMAKE_BINARY_DIR}/storage/ndb/tools)
|
|
|
|
ADD_LIBRARY(ndbtools STATIC
|
|
NdbImport.cpp
|
|
NdbImportImpl.cpp
|
|
NdbImportCsv.cpp
|
|
NdbImportCsvGram.cpp
|
|
NdbImportUtil.cpp)
|
|
|
|
IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
# Suppress warnings for undefined identifiers in bison output
|
|
ADD_COMPILE_FLAGS(${CMAKE_CURRENT_BINARY_DIR}/NdbImportCsvGram.cpp
|
|
COMPILE_FLAGS "-Wno-undef")
|
|
ENDIF()
|
|
|
|
BISON_TARGET(ndb_import
|
|
NdbImportCsvGram.ypp
|
|
${CMAKE_CURRENT_BINARY_DIR}/NdbImportCsvGram.cpp
|
|
COMPILE_FLAGS "--name-prefix=NdbImportCsv_yy --yacc ${BISON_FLAGS_WARNINGS}"
|
|
DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/NdbImportCsvGram.hpp
|
|
)
|
|
|
|
# Add target, for easier debugging.
|
|
ADD_CUSTOM_TARGET(GenBison_ndb_import DEPENDS ${BISON_ndb_import_OUTPUTS})
|
|
|
|
MYSQL_ADD_EXECUTABLE(ndb_waiter
|
|
waiter.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_drop_table
|
|
drop_tab.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_delete_all
|
|
delete_all.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_desc
|
|
desc.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_drop_index
|
|
drop_index.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_show_tables
|
|
listTables.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_select_all
|
|
select_all.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_select_count
|
|
select_count.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_perror
|
|
ndb_perror.cpp
|
|
${NDB_SOURCE_DIR}/src/mgmapi/mgmapi_error.cpp
|
|
${NDB_SOURCE_DIR}/src/kernel/error/ndbd_exit_codes.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_restore
|
|
restore/restore_main.cpp
|
|
restore/consumer.cpp
|
|
restore/consumer_restore.cpp
|
|
restore/consumer_printer.cpp
|
|
restore/Restore.cpp
|
|
ndb_lib_move_data.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_import
|
|
ndb_import.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbtools ndbclient_static
|
|
)
|
|
|
|
NDB_ADD_TEST(NdbImportUtil-t NdbImportUtil.cpp
|
|
LIBS ndbtools ndbclient_static)
|
|
|
|
NDB_ADD_TEST(NdbImportCsv-t NdbImportCsv.cpp
|
|
LIBS ndbtools ndbclient_static)
|
|
|
|
MYSQL_ADD_EXECUTABLE(ndb_config
|
|
ndb_config.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static
|
|
)
|
|
# Build ndbinfo_sql and run it to create ndbinfo.sql
|
|
MYSQL_ADD_EXECUTABLE(ndbinfo_sql
|
|
ndbinfo_sql.cpp
|
|
SKIP_INSTALL
|
|
LINK_LIBRARIES ndbclient_static
|
|
)
|
|
|
|
ADD_CUSTOM_COMMAND(TARGET ndbinfo_sql POST_BUILD
|
|
COMMAND $<TARGET_FILE:ndbinfo_sql>
|
|
> ${PROJECT_BINARY_DIR}/storage/ndb/tools/ndbinfo.sql
|
|
)
|
|
|
|
MYSQL_ADD_EXECUTABLE(ndb_index_stat
|
|
ndb_index_stat.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndbinfo_select_all
|
|
ndbinfo_select_all.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
MYSQL_ADD_EXECUTABLE(ndb_blob_tool
|
|
ndb_blob_tool.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
|
|
MYSQL_ADD_EXECUTABLE(ndb_move_data
|
|
ndb_move_data.cpp
|
|
ndb_lib_move_data.cpp
|
|
COMPONENT ClusterTools
|
|
LINK_LIBRARIES ndbclient_static ndbNDBT
|
|
)
|
|
|
|
IF(NOT WIN32 AND NOT SOLARIS)
|
|
IF (HAVE_NCURSESW_1 OR
|
|
HAVE_NCURSESW_2 OR
|
|
HAVE_NCURSESW_3 OR
|
|
HAVE_NCURSESW_4 OR
|
|
HAVE_NCURSESW_5)
|
|
MESSAGE(STATUS "-- Adding ndb_top executable")
|
|
FIND_LIBRARY(NCURSESW_LIB
|
|
NAMES ncursesw)
|
|
FIND_LIBRARY(NCURSESW_LIB
|
|
NAMES ncurses)
|
|
|
|
CHECK_LIBRARY_EXISTS("${NCURSESW_LIB}"
|
|
stdscr "" NCURSES_HAS_STDSCR)
|
|
IF(NOT NCURSES_HAS_STDSCR)
|
|
FIND_LIBRARY(NCURSES_TINFO_LIB
|
|
NAMES tinfo)
|
|
ENDIF()
|
|
MYSQL_ADD_EXECUTABLE(ndb_top
|
|
ndb_top.cpp
|
|
COMPONENT ClusterTools
|
|
)
|
|
IF(NCURSES_HAS_STDSCR)
|
|
TARGET_LINK_LIBRARIES(ndb_top mysqlclient ${NCURSESW_LIB})
|
|
ELSE()
|
|
TARGET_LINK_LIBRARIES(ndb_top
|
|
mysqlclient
|
|
${NCURSESW_LIB}
|
|
${NCURSES_TINFO_LIB})
|
|
ENDIF()
|
|
ELSE()
|
|
MESSAGE(FATAL_ERROR
|
|
"ndb_top executable could not be built, install ncursesw library")
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
if(NOT WIN32)
|
|
SET(TARGET_RUNTIME_OUTPUT_DIRECTORY
|
|
${CMAKE_BINARY_DIR}/runtime_output_directory)
|
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ndb_error_reporter.pl
|
|
${TARGET_RUNTIME_OUTPUT_DIRECTORY}/ndb_error_reporter COPYONLY)
|
|
EXECUTE_PROCESS(COMMAND chmod +x
|
|
${TARGET_RUNTIME_OUTPUT_DIRECTORY}/ndb_error_reporter)
|
|
INSTALL_SCRIPT(${TARGET_RUNTIME_OUTPUT_DIRECTORY}/ndb_error_reporter
|
|
DESTINATION ${INSTALL_BINDIR}
|
|
COMPONENT ClusterTools)
|
|
ENDIF()
|
|
|
|
INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/ndb_size.pl
|
|
DESTINATION ${INSTALL_BINDIR}
|
|
)
|