Commit f19b2c0a authored by unknown's avatar unknown
Browse files

Updated CMake stuff to handle the configurations needed for release

builds.


cmakelists.txt:
  Get the correct options for storage engines and defines from
  config-version.js.
mysys/cmakelists.txt:
  Set USE_TLS only for release builds, as it crashes in debug builds.
sql/cmakelists.txt:
  Fix build options to only include the configured storage engines.
sql/mysqld.cc:
  Fix dummy innodb declarations, otherwise non-innodb build fails.
storage/bdb/cmakelists.txt:
  Create cmakelists.txt for BDB.
win/README:
  Update with new configure.js options.
win/config-handlerton.js:
  Extend with more storage engines.
win/config-version.js:
  Extend to handle storage engines and other configuration parameters.
parent e29144b4
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
PROJECT(MySql)

EXEC_PROGRAM(cscript.exe win ARGS config-version.js OUT_VARIABLE out)
EXEC_PROGRAM(cscript.exe ${PROJECT_SOURCE_DIR}/win
             ARGS config-version.js ${PROJECT_SOURCE_DIR}/win/configure.data
             OUTPUT_VARIABLE out)
STRING(REGEX REPLACE ".*DEFINITIONS@ *([^@]*)@.*" \\1 cfg_def ${out})
STRING(REGEX REPLACE ".*HANDLERTONS@ *([^@]*)@.*" \\1 handlertons ${out})
SEPARATE_ARGUMENTS(handlertons)
STRING(REGEX REPLACE ".*DEPENDS@ *([^@]*)@.*" \\1 se_deps ${out})
SEPARATE_ARGUMENTS(se_deps)
STRING(REGEX REPLACE ".*SUBDIRS@ *([^@]*)@.*" \\1 se_subdirs ${out})
SEPARATE_ARGUMENTS(se_subdirs)
ADD_DEFINITIONS(${cfg_def})

# in some places we use DBUG_OFF
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D DBUG_OFF")
@@ -32,5 +42,6 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visu
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__")

SUBDIRS(vio dbug strings regex mysys extra/yassl extra/yassl/taocrypt extra 
        zlib storage/innobase storage/heap storage/myisam storage/myisammrg 
		client sql server-tools/instance-manager libmysql tests)
        zlib storage/heap storage/myisam storage/myisammrg client sql
	server-tools/instance-manager libmysql tests
	${se_subdirs})
+7 −2
Original line number Diff line number Diff line
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")

# Need to set USE_TLS, since mysys is linked into libmysql.dll and
# libmysqld.dll, and __declspec(thread) approach to thread local storage does
# not work properly in DLLs.
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR -DUSE_TLS")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR -DUSE_TLS")
# Currently, USE_TLS crashes in Debug builds, so until that is fixed Debug
# .dlls cannot be loaded at runtime.
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DUSE_TLS")
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DUSE_TLS")

INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/zlib ${CMAKE_SOURCE_DIR}/include)
ADD_LIBRARY(mysys array.c charset-def.c charset.c checksum.c default.c default_modify.c
+7 −7
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
                    ${CMAKE_SOURCE_DIR}/extra/yassl/include 
                    ${CMAKE_SOURCE_DIR}/sql 
                    ${CMAKE_SOURCE_DIR}/regex 
                    ${CMAKE_SOURCE_DIR}/zlib)
                    ${CMAKE_SOURCE_DIR}/zlib
                    ${CMAKE_SOURCE_DIR}/storage/bdb/build_win32
                    ${CMAKE_SOURCE_DIR}/storage/bdb/dbinc)

SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/sql/message.rc 
							${CMAKE_SOURCE_DIR}/sql/message.h 
@@ -18,13 +20,11 @@ SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/sql/message.rc
                            ${PROJECT_SOURCE_DIR}/include/mysqld_ername.h
                            ${PROJECT_SOURCE_DIR}/include/sql_state.h PROPERTIES GENERATED 1)
                            
ADD_DEFINITIONS(-DWITH_INNOBASE_STORAGE_ENGINE -DHAVE_ARCHIVE_DB -DHAVE_BLACKHOLE_DB -DHAVE_EXAMPLE_DB)
ADD_DEFINITIONS(-DHAVE_ROW_BASED_REPLICATION -DHAVE_FEDERATED_DB -DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN -DWITH_PARTITION_STORAGE_ENGINE -D_CRT_SECURE_NO_DEPRECATE)
ADD_DEFINITIONS(-DHAVE_ROW_BASED_REPLICATION -DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN -D_CRT_SECURE_NO_DEPRECATE)

ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover.cc ../libmysql/errmsg.c field.cc
					  field_conv.cc filesort.cc gstream.cc ha_blackhole.cc
					  ha_federated.cc ha_heap.cc ha_innodb.cc ha_myisam.cc ha_myisammrg.cc
					  ha_partition.cc handler.cc hash_filo.cc hash_filo.h hostname.cc
					  field_conv.cc filesort.cc gstream.cc  ha_heap.cc ha_myisam.cc ha_myisammrg.cc
					  ${handlertons} handler.cc hash_filo.cc hash_filo.h hostname.cc
					  init.cc item.cc item_buff.cc item_cmpfunc.cc item_create.cc item_func.cc item_geofunc.cc
					  item_row.cc item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc item_uniq.cc
					  key.cc log.cc lock.cc log_event.cc message.rc message.h mf_iocache.cc 
@@ -49,7 +49,7 @@ ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover.
					  ${PROJECT_SOURCE_DIR}/include/mysql_version.h 
					  ${PROJECT_SOURCE_DIR}/sql/handlerton.cc
					  ${PROJECT_SOURCE_DIR}/sql/lex_hash.h)
TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg innobase mysys yassl zlib dbug yassl taocrypt strings vio regex wsock32)
TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg ${se_deps} mysys yassl zlib dbug yassl taocrypt strings vio regex wsock32)
ADD_DEPENDENCIES(mysqld GenError)

# Sql Parser custom command
+2 −0
Original line number Diff line number Diff line
@@ -8166,6 +8166,7 @@ my_bool innobase_log_archive,
        innobase_file_per_table,
        innobase_locks_unsafe_for_binlog;

extern "C" {
ulong srv_max_buf_pool_modified_pct;
ulong srv_max_purge_lag;
ulong srv_auto_extend_increment;
@@ -8174,6 +8175,7 @@ ulong srv_n_free_tickets_to_enter;
ulong srv_thread_sleep_delay;
ulong srv_thread_concurrency;
ulong srv_commit_concurrency;
}
#endif

#ifndef WITH_NDBCLUSTER_STORAGE_ENGINE
+66 −7
Original line number Diff line number Diff line
SET(CMAKE_CXX_FLAGS_DEBUG "-DSAFEMALLOC -DSAFE_MUTEX")
SET(CMAKE_C_FLAGS_DEBUG "-DSAFEMALLOC -DSAFE_MUTEX")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")

#INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/extra/yassl/include)
ADD_LIBRARY(bdb _check.c _rectest.c hp_block.c hp_clear.c hp_close.c hp_create.c
				hp_delete.c hp_extra.c hp_hash.c hp_info.c hp_open.c hp_panic.c
				hp_rename.c hp_rfirst.c hp_rkey.c hp_rlast.c hp_rnext.c hp_rprev.c
				hp_rrnd.c hp_rsame.c hp_scan.c hp_static.c hp_update.c hp_write.c)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/storage/bdb/build_win32
                    ${CMAKE_SOURCE_DIR}/storage/bdb/dbinc
                    ${CMAKE_SOURCE_DIR}/storage/bdb)

# BDB needs a number of source files that are auto-generated by the unix
# configure. So to build BDB, it is necessary to copy these over to the Windows
# bitkeeper tree, or to use a source .tar.gz package which already has these
# files.
ADD_LIBRARY(bdb crypto/aes_method.c btree/bt_compact.c btree/bt_compare.c
            btree/bt_conv.c btree/bt_curadj.c btree/bt_cursor.c
            btree/bt_delete.c btree/bt_method.c btree/bt_open.c btree/bt_put.c
            btree/bt_rec.c btree/bt_reclaim.c btree/bt_recno.c
            btree/bt_rsearch.c btree/bt_search.c btree/bt_split.c
            btree/bt_stat.c btree/bt_upgrade.c btree/bt_verify.c
            btree/btree_auto.c db/crdel_auto.c db/crdel_rec.c crypto/crypto.c
            db/db.c db/db_am.c db/db_auto.c common/db_byteorder.c db/db_cam.c
            common/db_clock.c db/db_conv.c db/db_dispatch.c db/db_dup.c
            common/db_err.c common/db_getlong.c common/db_idspace.c
            db/db_iface.c db/db_join.c common/db_log2.c db/db_meta.c
            db/db_method.c db/db_open.c db/db_overflow.c db/db_ovfl_vrfy.c
            db/db_pr.c db/db_rec.c db/db_reclaim.c db/db_remove.c
            db/db_rename.c db/db_ret.c env/db_salloc.c db/db_setid.c
            db/db_setlsn.c env/db_shash.c db/db_stati.c db/db_truncate.c
            db/db_upg.c db/db_upg_opd.c db/db_vrfy.c db/db_vrfyutil.c
            dbm/dbm.c dbreg/dbreg.c dbreg/dbreg_auto.c dbreg/dbreg_rec.c
            dbreg/dbreg_stat.c dbreg/dbreg_util.c env/env_failchk.c
            env/env_file.c env/env_method.c env/env_open.c env/env_recover.c
            env/env_region.c env/env_register.c env/env_stat.c
            fileops/fileops_auto.c fileops/fop_basic.c fileops/fop_rec.c
            fileops/fop_util.c hash/hash.c hash/hash_auto.c hash/hash_conv.c
            hash/hash_dup.c hash/hash_func.c hash/hash_meta.c
            hash/hash_method.c hash/hash_open.c hash/hash_page.c
            hash/hash_rec.c hash/hash_reclaim.c hash/hash_stat.c
            hash/hash_upgrade.c hash/hash_verify.c hmac/hmac.c
            hsearch/hsearch.c lock/lock.c lock/lock_deadlock.c
            lock/lock_failchk.c lock/lock_id.c lock/lock_list.c
            lock/lock_method.c lock/lock_region.c lock/lock_stat.c
            lock/lock_timer.c lock/lock_util.c log/log.c log/log_archive.c
            log/log_compare.c log/log_debug.c log/log_get.c log/log_method.c
            log/log_put.c log/log_stat.c mp/mp_alloc.c mp/mp_bh.c mp/mp_fget.c
            mp/mp_fmethod.c mp/mp_fopen.c mp/mp_fput.c mp/mp_fset.c
            mp/mp_method.c mp/mp_region.c mp/mp_register.c mp/mp_stat.c
            mp/mp_sync.c mp/mp_trickle.c crypto/mersenne/mt19937db.c
            mutex/mut_alloc.c mutex/mut_method.c mutex/mut_region.c
            mutex/mut_stat.c mutex/mut_tas.c mutex/mut_win32.c
            os_win32/os_abs.c os/os_alloc.c os_win32/os_clock.c
            os_win32/os_config.c os_win32/os_dir.c os_win32/os_errno.c
            os_win32/os_fid.c os_win32/os_flock.c os_win32/os_fsync.c
            os_win32/os_handle.c os/os_id.c os_win32/os_map.c os/os_method.c
            os/os_oflags.c os_win32/os_open.c os/os_region.c
            os_win32/os_rename.c os/os_root.c os/os_rpath.c os_win32/os_rw.c
            os_win32/os_seek.c os_win32/os_sleep.c os_win32/os_spin.c
            os_win32/os_stat.c os/os_tmpdir.c os_win32/os_truncate.c
            os/os_unlink.c qam/qam.c qam/qam_auto.c qam/qam_conv.c
            qam/qam_files.c qam/qam_method.c qam/qam_open.c qam/qam_rec.c
            qam/qam_stat.c qam/qam_upgrade.c qam/qam_verify.c rep/rep_auto.c
            rep/rep_backup.c rep/rep_elect.c rep/rep_log.c rep/rep_method.c
            rep/rep_record.c rep/rep_region.c rep/rep_stat.c rep/rep_stub.c
            rep/rep_util.c rep/rep_verify.c crypto/rijndael/rijndael-alg-fst.c
            crypto/rijndael/rijndael-api-fst.c hmac/sha1.c clib/strcasecmp.c
            txn/txn.c txn/txn_auto.c txn/txn_chkpt.c txn/txn_failchk.c
            txn/txn_method.c txn/txn_rec.c txn/txn_recover.c txn/txn_region.c
            txn/txn_stat.c txn/txn_util.c common/util_log.c common/util_sig.c
            xa/xa.c xa/xa_db.c xa/xa_map.c)
Loading