CMakeLists.txt 3.95 KB
Newer Older
1
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
unknown's avatar
unknown committed
2 3 4 5 6 7 8 9 10 11 12 13
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
# 
# 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 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
14
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
15

16 17 18 19 20 21 22 23 24
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/include 
${ZLIB_INCLUDE_DIR}
# Following is for perror, in case NDB is compiled in.
${CMAKE_SOURCE_DIR}/storage/ndb/include
${CMAKE_SOURCE_DIR}/storage/ndb/include/util  
${CMAKE_SOURCE_DIR}/storage/ndb/include/ndbapi
${CMAKE_SOURCE_DIR}/storage/ndb/include/portlib
${CMAKE_SOURCE_DIR}/storage/ndb/include/mgmapi)
25

26 27
# Default install component for the files is Server here
SET(MYSQL_INSTALL_COMPONENT Server)
28

29 30
IF(NOT CMAKE_CROSSCOMPILING)
 ADD_EXECUTABLE(comp_err comp_err.c)
31
 TARGET_LINK_LIBRARIES(comp_err mysys)
32
ENDIF()
unknown's avatar
unknown committed
33

34 35 36 37 38 39
# Generate mysqld_error.h
# Try not to change its timestamp if not necessary(as touching
# mysqld_error.h results in rebuild of the almost whole server)
# To preserve timestamp, first generate a temp header file, then copy it
# to mysqld_error.h using cmake -E copy_if_different
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/include/mysqld_error.h.tmp
Sergei Golubchik's avatar
Sergei Golubchik committed
40
   COMMAND comp_err
41 42 43
	--charset=${PROJECT_SOURCE_DIR}/sql/share/charsets 
	--out-dir=${CMAKE_BINARY_DIR}/sql/share/
	--header_file=${CMAKE_BINARY_DIR}/include/mysqld_error.h.tmp 
Vladislav Vaintroub's avatar
Vladislav Vaintroub committed
44 45
	--name_file=${CMAKE_BINARY_DIR}/include/mysqld_ername.h.tmp
	--state_file=${CMAKE_BINARY_DIR}/include/sql_state.h.tmp
Sergei Golubchik's avatar
Sergei Golubchik committed
46
	--in_file=${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt
47
   COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/include/mysqld_error.h.tmp ${CMAKE_BINARY_DIR}/include/mysqld_error.h
Vladislav Vaintroub's avatar
Vladislav Vaintroub committed
48 49
   COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/include/mysqld_ername.h.tmp ${CMAKE_BINARY_DIR}/include/mysqld_ername.h
   COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/include/sql_state.h.tmp ${CMAKE_BINARY_DIR}/include/sql_state.h
Sergei Golubchik's avatar
Sergei Golubchik committed
50
   DEPENDS comp_err ${PROJECT_SOURCE_DIR}/sql/share/errmsg-utf8.txt)
51 52 53

ADD_CUSTOM_TARGET(GenError
                  ALL
54
                  DEPENDS 
Sergei Golubchik's avatar
Sergei Golubchik committed
55
                  ${CMAKE_BINARY_DIR}/include/mysqld_error.h.tmp)
56

57
MYSQL_ADD_EXECUTABLE(my_print_defaults my_print_defaults.c)
58
TARGET_LINK_LIBRARIES(my_print_defaults  mysys)
59

60
MYSQL_ADD_EXECUTABLE(perror perror.c)
61 62
ADD_DEPENDENCIES(perror GenError)
TARGET_LINK_LIBRARIES(perror mysys)
63

64
IF(UNIX)
65
MYSQL_ADD_EXECUTABLE(resolveip resolveip.c)
66 67 68 69
TARGET_LINK_LIBRARIES(resolveip mysys)
IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
  INCLUDE(CheckFunctionExists)
  INCLUDE(CheckLibraryExists)
70 71
  MY_SEARCH_LIBS(inet_aton  "nsl;socket;resolv" SOLARIS_NSL)
  TARGET_LINK_LIBRARIES(resolveip ${SOLARIS_NSL})
72
ENDIF()
73
ENDIF()
74

75 76 77 78 79 80 81 82 83 84 85 86 87 88
IF(WITH_INNOBASE_STORAGE_ENGINE)
  # Add path to the InnoDB headers
  INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/innobase/include)
  # We use the InnoDB code directly in case the code changes.
  ADD_DEFINITIONS("-DUNIV_INNOCHECKSUM")
  SET(INNOBASE_SOURCES
      ../storage/innobase/buf/buf0checksum.cc
      ../storage/innobase/ut/ut0crc32.cc
      ../storage/innobase/ut/ut0ut.cc
     )
  MYSQL_ADD_EXECUTABLE(innochecksum innochecksum.cc ${INNOBASE_SOURCES})
  TARGET_LINK_LIBRARIES(innochecksum mysys mysys_ssl)
ENDIF()

Sergei Golubchik's avatar
Sergei Golubchik committed
89
MYSQL_ADD_EXECUTABLE(replace replace.c COMPONENT Server)
90
TARGET_LINK_LIBRARIES(replace mysys)
91

92
IF(UNIX)
93 94

  MYSQL_ADD_EXECUTABLE(resolve_stack_dump resolve_stack_dump.c)
95
  TARGET_LINK_LIBRARIES(resolve_stack_dump mysys)
96

Sergei Golubchik's avatar
Sergei Golubchik committed
97
  MYSQL_ADD_EXECUTABLE(mysql_waitpid mysql_waitpid.c COMPONENT Client)
98 99
  TARGET_LINK_LIBRARIES(mysql_waitpid mysys)
ENDIF()