• Vladislav Vaintroub's avatar
    WL#5161 : Cross-platform build with CMake · 697a2e17
    Vladislav Vaintroub authored
    BUILD-CMAKE:
      WL#5161 : Documentation on how to build with CMake on Unix/Windows
    BUILD/Makefile.am:
      Add new file
    BUILD/autorun.sh:
      WL#5161 : use choose_configure instead of autotools configure script
      (choose configure will call cmake if cmake is available)
    BUILD/choose_configure.sh:
      WL#5161 : use choose_configure instead of autotools configure script
      (choose configure will call cmake if cmake is available)
    CMakeLists.txt:
      WL#5161 : Rewrite top-level CMakeLists.txt. 
      Remove  Windows specifics
      - compiler flags handling moved to configure.cmake
      - storage engine/plugin stuff moved into cmake/plugin.cmake
      - copy docs
    Makefile.am:
      Added new files
    client/CMakeLists.txt:
      WL#5161 : Rewrite CMakeLists.txt to be platform-independent
      Handle packagng (add INSTALL commands)
    cmake/Makefile.am:
      WL#5161 : use choose_configure instead of autotools configure script
      (choose configure will call cmake if cmake is available)
    cmake/abi_check.cmake:
      Custom targets for abi_check (for cmake)
    cmake/bison.cmake:
      - Check bison availability
      - Add RUN_BISON macro (used to create sql_yacc.cc and sql_yacc.h)
    cmake/cat.cmake:
      Add helper script to concatenate files.
    cmake/character_sets.cmake:
      Handle configuration parameters WITH_EXTRA_CHARSETS
    cmake/check_minimal_version.cmake:
      Helper script to check the minimum required version of cmake
    cmake/configure.pl:
      Add perl script to convert ./configure parameters for cmake
    cmake/create_initial_db.cmake.in:
      Add script helper to create initial database. 
      (on Windows, we pack initial db with the redistribution
      package)
    cmake/do_abi_check.cmake:
      Perform abi check
    cmake/dtrace.cmake:
      Handle dtrace in CMake Build.
      Check for dtrace availablility,
      run dtrace -G on solaris in prelink step
    cmake/dtrace_prelink.cmake:
      Run dtrace -G on Solaris in pre-link step,
      link the object it creates together with library or
      executable
    cmake/install_macros.cmake:
      Helper macros for packaging
      (install pdb on Windows, install symlinks on Unix)
    cmake/make_dist.cmake.in:
      "make dist" - 
      - pack autotools ./configure script with the source
      (renamed to configure.am)
      - pack bison output
    cmake/merge_archives_unix.cmake.in:
      script to merge static libraries on Unix
    cmake/misc.cmake:
      Build helper macros
      - MERGE_STATIC_LIBS 
      We use it when building client library and embedded
      (avoid recompilation)
      
      - Convert source file paths to absolute names.
      We use it in  to locate files of a different project,
      when the files need to be recompiled (e.g in embedded
      several storage engines are recompiled with 
      -DEMBEDDED_LIBRARY)
    cmake/mysql_version.cmake:
      Extract version info from configure.in
      Handle package names.
    cmake/plugin.cmake:
      Rewrote storage/mysql_storage_engine.cmake to handle 
      other types of plugins and do it in OS-independent manner.
    cmake/readline.cmake:
      Macros to handle WITH_READLINE/WITH_LIBEDIT parameters
    cmake/ssl.cmake:
      Add macros to handle WITH_SSL parameter.
    cmake/stack_direction.c:
      Helper to check stack direction.
    cmake/zlib.cmake:
      Add macros to handle WITH_ZLIB parameter
    cmd-line-utils/libedit/CMakeLists.txt:
      Build libedit with cmake.
    cmd-line-utils/libedit/Makefile.am:
      Add new file
    cmd-line-utils/readline/CMakeLists.txt:
      Build readline with CMake.
    cmd-line-utils/readline/Makefile.am:
      Add new file
    config.h.cmake:
      WL#5161 : Add config.h template for cmake
    configure.cmake:
      WL#5161 : Add platform tests ( for cmake)
    configure.in:
      Added new subdirectories
    dbug/CMakeLists.txt:
      WL#5161
    extra/CMakeLists.txt:
      WL#5161
    extra/yassl/CMakeLists.txt:
      WL#5161
    extra/yassl/taocrypt/CMakeLists.txt:
      WL#5161
    include/Makefile.am:
      Add new file
    include/keycache.h:
      remove configure-win.h and remove HUGE_PTR defined there.
    include/my_global.h:
      use my_config.h for Windows, not config-win.h anymore
    include/my_pthread.h:
      - Move thread_safe_increment from config-win.h to other headers
      (config-win.h is not used anymore)
      - Declare pthread_cancel on Windows (it is used in daemon_example)
    include/my_sys.h:
      Add malloc.h on Windows (we use -D_WIN32_LEAN_AND_MEAN now, and 
      with this define malloc.h is not included automatically via windows.h)
    include/mysql/plugin.h:
      Handle pure-C plugins with Microsoft compiler.
    include/thr_alarm.h:
      remove rf_SetTimer that used to be defined in config-win.h
      Replace with UINT_PTR (we do not use config-win.h anymore
      and typedef was needed in this single place only)
    libmysql/CMakeLists.txt:
      Avoid pointless recompilation of source files 
      in client library if possible. Merge static 
      libs (dbug, mysys) to create static client 
      library.
    libmysqld/CMakeLists.txt:
      Avoid pointless recompilation of source files 
      when building embedded. Instead, merge dbug and 
      mysys (and some other static libs) into embedded.
    libmysqld/examples/CMakeLists.txt:
      Embedded compilation on Unix
    libmysqld/lib_sql.cc:
      Do not define THD::clear_error() in lib_sql.cc
      for embedded. Instead, use the same inline 
      definition from sql_class.h as in none-embedded 
      case (fixes duplicate symbol errors on Windows
      and removes pointless #ifdef EMBEDDED)
    man/CMakeLists.txt:
      Install man files.
    man/Makefile.am:
      Add new file.
    mysql-test/CMakeLists.txt:
      Install mysql-test files
    mysql-test/Makefile.am:
      Add new files
    mysql-test/lib/My/ConfigFactory.pm:
      Allow testing with mtr in out-of-source builds.
    mysql-test/lib/My/Find.pm:
      the build configurations are now also available on Unix
      Xcode on Mac uses the Release, RelwithDebinfo and Debug 
      subdirectories for executables. Earlier, build configurations 
      were available only on Windows.
    mysql-test/lib/My/SafeProcess.pm:
      Allow testing with mtr in out-of-source builds.
    mysql-test/lib/My/SafeProcess/CMakeLists.txt:
      Port CMakeLists.txt to Unix
    mysql-test/lib/My/SafeProcess/safe_kill_win.cc:
      add stdlib.h (to be able to compile with -DWIN32_LEAN_AND_MEAN)
    mysql-test/lib/My/SafeProcess/safe_process_win.cc:
      Add stdlib.h (to be able to compile with -DWIN32_LEAN_AND_MEAN)
      define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE if not defined 
      (can happen using MinGW compiler that comes with old SDK)
    mysql-test/mtr.out-of-source:
      Allow testing with mtr in out-of-source builds.
    mysql-test/mysql-test-run.pl:
      Allow testing with mtr in out-of-source builds.
      Use common find_plugin macro for Windows and unix.
    mysql-test/t/fulltext_plugin.test:
      This test can now run on Windows as well.
    mysys/CMakeLists.txt:
      Port CMakeLists.txt to Unix
    mysys/my_create.c:
      config-win.h is dead => NO_OPEN_3 is never defined.
    mysys/my_getsystime.c:
      config-win.h is dead => define OFFSET_TO_EPOCH where it is used.
    mysys/my_winthread.c:
      Add  win32 pthread_cancel - used by daemon_example
    mysys/mysys_priv.h:
      config-win.h is dead => include <sys/stat.h> where it is used
      fix prototype of my_win_(f)stat
    plugin/daemon_example/CMakeLists.txt:
      Compile daemon_example with CMake
    plugin/daemon_example/Makefile.am:
      Add new file
    plugin/fulltext/CMakeLists.txt:
      Compile full-text example with CMake
    plugin/fulltext/Makefile.am:
      Add new file.
    plugin/semisync/CMakeLists.txt:
      Fix semisync to use common  macro for plugins.
    regex/CMakeLists.txt:
      Use absolute filenames, when adding regex library 
      (we recompile files in embedded, and want to locate 
      sources via GET_TARGET_PROPERTY( ... SOURCES ..))
    regex/regex2.h:
      Remove pointless typedef (produces error with MinGW compiler)
    scripts/CMakeLists.txt:
      Add configure/install for scripts
    sql-bench/CMakeLists.txt:
      install sql-bench files
    sql-bench/Makefile.am:
      Add new file
    sql/CMakeLists.txt:
      Port CmakeLists.txt to Unix
    sql/nt_servc.cc:
      compile server with -DWIN32_LEAN_AND_MEAN
    sql/share/CMakeLists.txt:
      Install charsets
    sql/share/Makefile.am:
      Add new file
    sql/sql_builtin.cc.in:
      Handle pure-C plugins on Windows.
    sql/sql_class.h:
      Use the same clear_error macro in embedded and not embedded.
      Fixes pointless #ifdef and avoids duplicate symbols when linking
      on Windows.
    storage/Makefile.am:
      storage/mysql_storage_engine.cmake => cmake/plugin.cmake
    storage/archive/CMakeLists.txt:
      Add names for static and dynamic plugin libraries.
      Link archive with zlib
    storage/blackhole/CMakeLists.txt:
      Add names for static and dynamic storage 
      engine libraries
    storage/csv/CMakeLists.txt:
      Add names for static and dynamic storage engine
      libraries
    storage/example/CMakeLists.txt:
      Add names for static and dynamic storage engine 
      libraries
    storage/federated/CMakeLists.txt:
      Add names for static and dynamic storage engine 
      libraries
    storage/heap/CMakeLists.txt:
      Add names for static and dynamic storage engine 
      libraries
    storage/ibmdb2i/CMakeLists.txt:
      Better port for ibmdb2i plugin
    storage/innobase/CMakeLists.txt:
      Run system checks.
      
      Add names for static and dynamic storage engine 
      libraries.
    storage/innobase/include/page0page.ic:
      Fix compile error on OpenSolaris.
    storage/myisam/CMakeLists.txt:
      Port CmakeLists.txt to Unix
    storage/myisammrg/CMakeLists.txt:
      Add names for static and dynamic storage engine 
      libraries
    storage/mysql_storage_engine.cmake:
      storage/mysql_storage_engine.cmake => cmake/plugin.cmake
    support-files/CMakeLists.txt:
      Configure and install some files from support-files.
    support-files/Makefile.am:
      Add new file
    tests/CMakeLists.txt:
      In general case, mysqlclient library can be dependent
      on C++ runtime(if it includes yassl and is not compiled
      with gcc or MSVC)
    unittest/mysys/CMakeLists.txt:
      Add unit tests
    unittest/mysys/Makefile.am:
      Add new file
    unittest/mytap/CMakeLists.txt:
      Add library for unit tests
    unittest/mytap/Makefile.am:
      Add new file
    unittest/mytap/tap.c:
      fix function definitions to match declarations
    win/create_def_file.js:
      Fix link error with intel compiler (icl 
      defines of special label for exception handler)
    697a2e17
my_global.h 54.3 KB