Commit a6d082f3 authored by kent@mysql.com/kent-amd64.(none)'s avatar kent@mysql.com/kent-amd64.(none)
Browse files

CMakeLists.txt, README, configure.js

  Several adjustments to make client libraries pass the link test
  on both win32 and winx64, Visual Studio 2003 and 2005 (bug#30118)
parent 52f71ecc
Loading
Loading
Loading
Loading
+37 −59
Original line number Diff line number Diff line
@@ -22,53 +22,38 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
               ${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)

# Set standard options
ADD_DEFINITIONS(-D WITH_MYISAM_STORAGE_ENGINE)
ADD_DEFINITIONS(-D CMAKE_BUILD)
ADD_DEFINITIONS(-D HAVE_YASSL)

# Set debug options
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFORCE_INIT_OF_VARS")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DFORCE_INIT_OF_VARS")

SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisam_plugin")

# Note that some engines are always compiled in, MyISAM, MyISAMMRG, HEAP

IF(WITH_ARCHIVE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_ARCHIVE_DB)
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)

IF (WITH_HEAP_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_HEAP_STORAGE_ENGINE)
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_heap_plugin")
ENDIF (WITH_HEAP_STORAGE_ENGINE)

IF (WITH_MYISAMMRG_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D WITH_MYISAMMRG_STORAGE_ENGINE)
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisammrg_plugin")
ENDIF (WITH_MYISAMMRG_STORAGE_ENGINE)

IF(WITH_INNOBASE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_INNOBASE_DB)
  ADD_DEFINITIONS(-D WITH_INNOBASE_STORAGE_ENGINE)
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_innobase_plugin")
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)

IF(WITH_FEDERATED_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_FEDERATED_DB)
  ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE)
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin")
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)

IF(WITH_BERKELEY_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_BERKELEY_DB)
  ADD_DEFINITIONS(-D WITH_BERKELEY_STORAGE_ENGINE)
  SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_berkeley_plugin")
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)

IF (WITH_BLACKHOLE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_BLACKHOLE_DB)
ENDIF (WITH_BLACKHOLE_STORAGE_ENGINE)

IF(WITH_EXAMPLE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_EXAMPLE_DB)
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)

IF(WITH_FEDERATED_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_FEDERATED_DB)
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)

IF(WITH_INNOBASE_STORAGE_ENGINE)
  ADD_DEFINITIONS(-D HAVE_INNOBASE_DB)
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)

SET(localstatedir "C:\\mysql\\data")
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-huge.cnf.sh
               ${CMAKE_SOURCE_DIR}/support-files/my-huge.ini @ONLY)
@@ -102,37 +87,28 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8")

IF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR 
   CMAKE_GENERATOR MATCHES "Visual Studio 8")

    # replace /MDd with /MTd
	STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT 
	       ${CMAKE_CXX_FLAGS_DEBUG_INIT})
	STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT 
	       ${CMAKE_C_FLAGS_DEBUG_INIT})
	STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE 
	       ${CMAKE_C_FLAGS_RELEASE})
	STRING(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELWITHDEBINFO 
	       ${CMAKE_C_FLAGS_RELWITHDEBINFO})
	STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG 
	       ${CMAKE_C_FLAGS_DEBUG})
	STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE 
	       ${CMAKE_CXX_FLAGS_RELEASE})
	STRING(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELWITHDEBINFO 
	       ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
	STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG 
	       ${CMAKE_CXX_FLAGS_DEBUG})

	# generate map files
	SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
    STRING(REPLACE "/MD"  "/MT"  CMAKE_C_FLAGS_RELEASE          ${CMAKE_C_FLAGS_RELEASE})
    STRING(REPLACE "/MD"  "/MT"  CMAKE_C_FLAGS_RELWITHDEBINFO   ${CMAKE_C_FLAGS_RELWITHDEBINFO})
    STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG            ${CMAKE_C_FLAGS_DEBUG})
    STRING(REPLACE "/MDd" "/MTd" CMAKE_C_FLAGS_DEBUG_INIT       ${CMAKE_C_FLAGS_DEBUG_INIT})

  # set stack size (see bug#20815)
    STRING(REPLACE "/MD"  "/MT"  CMAKE_CXX_FLAGS_RELEASE        ${CMAKE_CXX_FLAGS_RELEASE})
    STRING(REPLACE "/MD"  "/MT"  CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
    STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG          ${CMAKE_CXX_FLAGS_DEBUG})
    STRING(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG_INIT     ${CMAKE_CXX_FLAGS_DEBUG_INIT})

    # generate map files, set stack size (see bug#20815)
    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MAP /MAPINFO:EXPORTS")
    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:1048576")

    # remove support for Exception handling
    STRING(REPLACE "/GX"   "" CMAKE_CXX_FLAGS            ${CMAKE_CXX_FLAGS})
    STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS            ${CMAKE_CXX_FLAGS})
	STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_INIT 
	       ${CMAKE_CXX_FLAGS_INIT})
	STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_DEBUG_INIT 
	       ${CMAKE_CXX_FLAGS_DEBUG_INIT})
    STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_INIT       ${CMAKE_CXX_FLAGS_INIT})
    STRING(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS_DEBUG_INIT ${CMAKE_CXX_FLAGS_DEBUG_INIT})

ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR 
      CMAKE_GENERATOR MATCHES "Visual Studio 8")

@@ -196,6 +172,8 @@ IF(EMBED_MANIFESTS)
    ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8 2005 Win64")
ENDIF(EMBED_MANIFESTS)

# FIXME "debug" only needed if build type is "Debug", but
# CMAKE_BUILD_TYPE is not set during configure time.
ADD_SUBDIRECTORY(vio)
ADD_SUBDIRECTORY(dbug)
ADD_SUBDIRECTORY(strings)
+8 −3
Original line number Diff line number Diff line
@@ -13,7 +13,12 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/dbug)

SET(DBUG_SOURCES dbug.c factorial.c sanity.c)

IF(NOT SOURCE_SUBLIBS)
  SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
  INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
ADD_LIBRARY(dbug dbug.c factorial.c sanity.c)
  ADD_LIBRARY(dbug ${DBUG_SOURCES})
ENDIF(NOT SOURCE_SUBLIBS)
+4 −4
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)

ADD_EXECUTABLE(comp_err comp_err.c)
TARGET_LINK_LIBRARIES(comp_err dbug mysys strings zlib wsock32)
TARGET_LINK_LIBRARIES(comp_err debug dbug mysys strings zlib wsock32)

GET_TARGET_PROPERTY(COMP_ERR_EXE comp_err LOCATION)

@@ -39,13 +39,13 @@ ADD_CUSTOM_TARGET(GenError
                  DEPENDS ${PROJECT_SOURCE_DIR}/include/mysqld_error.h)

ADD_EXECUTABLE(my_print_defaults my_print_defaults.c)
TARGET_LINK_LIBRARIES(my_print_defaults strings mysys dbug taocrypt wsock32)
TARGET_LINK_LIBRARIES(my_print_defaults strings mysys debug dbug taocrypt wsock32)

ADD_EXECUTABLE(perror perror.c)
TARGET_LINK_LIBRARIES(perror strings mysys dbug wsock32)
TARGET_LINK_LIBRARIES(perror strings mysys debug dbug wsock32)

ADD_EXECUTABLE(replace replace.c)
TARGET_LINK_LIBRARIES(replace strings mysys dbug wsock32)
TARGET_LINK_LIBRARIES(replace strings mysys debug dbug wsock32)

IF(EMBED_MANIFESTS)
  MYSQL_EMBED_MANIFEST("my_print_defaults" "asInvoker")
+9 −3
Original line number Diff line number Diff line
@@ -13,9 +13,15 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

ADD_DEFINITIONS("-DWIN32 -D_LIB -DYASSL_PREFIX")
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/include
                    ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include
                    ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL)

INCLUDE_DIRECTORIES(include taocrypt/include taocrypt/mySTL)
ADD_LIBRARY(yassl src/buffer.cpp src/cert_wrapper.cpp src/crypto_wrapper.cpp src/handshake.cpp src/lock.cpp 
ADD_DEFINITIONS("-D_LIB -DYASSL_PREFIX")

SET(YASSL_SOURCES  src/buffer.cpp src/cert_wrapper.cpp src/crypto_wrapper.cpp src/handshake.cpp src/lock.cpp 
				src/log.cpp src/socket_wrapper.cpp src/ssl.cpp src/timer.cpp src/yassl_error.cpp 
				src/yassl_imp.cpp src/yassl_int.cpp)
IF(NOT SOURCE_SUBLIBS)
  ADD_LIBRARY(yassl ${YASSL_SOURCES})
ENDIF(NOT SOURCE_SUBLIBS)
+6 −2
Original line number Diff line number Diff line
@@ -13,9 +13,10 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

INCLUDE_DIRECTORIES(mySTL include)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL
                    ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include)

ADD_LIBRARY(taocrypt src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp 
SET(TAOCRYPT_SOURCES		src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp 
				src/des.cpp src/dh.cpp src/dsa.cpp src/file.cpp src/hash.cpp src/integer.cpp src/md2.cpp 
				src/md4.cpp src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp
				include/aes.hpp include/algebra.hpp include/arc4.hpp include/asn.hpp include/block.hpp 
@@ -23,3 +24,6 @@ ADD_LIBRARY(taocrypt src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp
				include/error.hpp include/file.hpp include/hash.hpp include/hmac.hpp include/integer.hpp 
				include/md2.hpp include/md5.hpp include/misc.hpp include/modarith.hpp include/modes.hpp
				include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp)
IF(NOT SOURCE_SUBLIBS)
  ADD_LIBRARY(taocrypt ${TAOCRYPT_SOURCES})
ENDIF(NOT SOURCE_SUBLIBS)
Loading