summaryrefslogtreecommitdiff
path: root/cmake/libutils.cmake
Commit message (Collapse)AuthorAgeFilesLines
* don't use deprecated <target>_LIB_DEPENDS. CMP0073Sergei Golubchik2020-10-241-5/+8
|
* libutils: merge_archives_unixDaniel Black2020-06-181-1/+3
| | | | | | | | MRI scripts cannot handle + in paths, and ubuntu CI makes use of these. So we remove the top level build dir from the script and transform it into a relative path script.
* libutils: merge static libraries only onceDaniel Black2020-06-181-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because of common dependencies between the static libraries list can contain duplicates. We reduce these down to the single last one in the list. This reduces the relative time of a rebuild from: $ (cd builddir/; time make -j) ... real 0m30.789s user 1m33.477s sys 0m19.678s and the LIB entries $ grep ADDLIB builddir/libmysqld/mysqlserver-\$\<CONFIG\>.mri.tpl | wc -l 179 $ du -h builddir/libmysqld/libmariadbd.a 4.1G builddir/libmysqld/libmariadbd.a To: $ (cd builddir/; time make -j) ... real 0m20.139s user 1m32.423s sys 0m12.208s $ grep ADDLIB builddir/libmysqld/mysqlserver-\$\<CONFIG\>.mri.tpl | wc -l 25 $ du -h builddir/libmysqld/libmariadbd.a 688M builddir/libmysqld/libmariadbd.a
* MDEV-22864: cmake/libutils account for cmake-2.8.12.1Daniel Black2020-06-111-3/+2
| | | | That doesn't support STRING(APPEND ..)
* cmake: merge_static_libs - correct duplicate assumptions (#1583)Daniel Black2020-06-101-8/+24
| | | | | | | | | | | | | | | | | | | | | | This corrects build failures on ppc64{,le} with the WITH_EMBEDDED_SERVER option enabled. MDEV-22641 added an unusual case in which the same object file in was included twice with a different function defination. The original cmake/merge_archives_unix.cmake did not tolerate such eventualities. So we move to the highest voted answer on Stack Overflow for the merging of static libraries. https://stackoverflow.com/questions/3821916/how-to-merge-two-ar-static-libraries-into-one Thin archives generated compile failures and the libtool mechanism would of been another dependency and using .la files that isn't part of a normal cmake output. The straight Apple mechanism of libtool with static archives also failed on Linux. This leaves the MRI script mechansim which was implemented in this change.
* MDEV-22454 Allow -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ONVladislav Vaintroub2020-05-041-0/+12
| | | | | | Disable IPO (interprocedural optimization, aka /GL) on Windows on libraries, from which server.dll exports symbols - exporting symbols does not work for objects compiled with /GL.
* MDEV-18531 : Use WolfSSL instead of YaSSL as "bundled" SSL/encryption libraryVladislav Vaintroub2019-05-221-1/+1
| | | | | | | | - Add new submodule for WolfSSL - Build and use wolfssl and wolfcrypt instead of yassl/taocrypt - Use HAVE_WOLFSSL instead of HAVE_YASSL - Increase MY_AES_CTX_SIZE, to avoid compile time asserts in my_crypt.cc (sizeof(EVP_CIPHER_CTX) is larger on WolfSSL)
* Merge 10.2 into 10.3Marko Mäkelä2019-05-141-1/+1
|\
| * Merge 10.1 into 10.2Marko Mäkelä2019-05-131-1/+1
| |\
| | * Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-111-1/+1
| | |\
| | | * Update FSF AddressVicențiu Ciorbaru2019-05-111-1/+1
| | | | | | | | | | | | | | | | * Update wrong zip-code
* | | | Merge 10.2 into 10.3Marko Mäkelä2018-11-061-4/+8
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | main.derived_cond_pushdown: Move all 10.3 tests to the end, trim trailing white space, and add an "End of 10.3 tests" marker. Add --sorted_result to tests where the ordering is not deterministic. main.win_percentile: Add --sorted_result to tests where the ordering is no longer deterministic.
| * | | Merge 10.1 into 10.2Marko Mäkelä2018-11-061-4/+8
| |\ \ \ | | |/ /
| | * | Merge branch '5.5' into 10.0Sergei Golubchik2018-10-271-4/+8
| | |\ \ | | | |/
| | | * cmake: fix usage of GET_TARGET_PROPERTYSergei Golubchik2018-09-221-4/+8
| | | | | | | | | | | | | | | | and followup fixes
* | | | MDEV-16662 CMake warnings: CMP0026Sergei Golubchik2018-08-121-28/+19
| | | |
* | | | MDEV-16662 CMake warnings: CMP0022Sergei Golubchik2018-08-121-2/+1
| | | |
* | | | Misc. typosluz.paz2018-04-051-1/+1
|/ / / | | | | | | | | | Found via `codespell -i 3 -w --skip="./debian/po" -I ../mariadb-server-word-whitelist.txt ./cmake/ ./debian/ ./Docs/ ./include/ ./man/ ./plugin/ ./strings/`
* | | Merge 10.1 into 10.2Marko Mäkelä2017-04-281-1/+1
|\ \ \ | |/ /
| * | Don't use full path of libtoolDaniel Black2017-04-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is to be friendly to our OSX users where the libtool path is very different. Ref: * https://github.com/Homebrew/homebrew-core/blob/master/Formula/mariadb.rb#L44..L46
* | | Add C/C as a submodule in libmariadb/Sergei Golubchik2016-09-121-3/+3
| | | | | | | | | | | | | | | | | | also * fix includes * rename cmake macros and targets to avoid name clashes
* | | Merge branch '10.1' into 10.2Monty2016-02-061-0/+5
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: VERSION cmake/plugin.cmake config.h.cmake configure.cmake plugin/server_audit/server_audit.c sql/sql_yacc.yy
| * | Merge branch '5.5' into 10.0Alexey Botchkov2016-01-251-0/+5
| |\ \ | | |/ | | | | | | | | | Conflicts: plugin/server_audit/server_audit.c
| | * MDEV-9298 : Build failure when linking libmysql.Vladislav Vaintroub2016-01-071-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | If GCC or CLang compile with link time optimization (-flto), they throw an error during link , when lto sees a function (e.g mysql_real_connect) is redeclared as "external void *" in libmysql_exports.cc The fix disables -flto for generated libmysql_exports.cc
* | | cmake: MYSQL_PARSE_ARGUMENTS -> CMAKE_PARSE_ARGUMENTSSergei Golubchik2015-11-231-5/+6
|/ /
* | MDEV-7398 mysqld segfaults on FreeBSD 10.1 i386 when built with clang 3.4Sergei Golubchik2015-06-161-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in cmake tests let's treat clang like gcc (same options, same builtins) in many cases. * don't check the compiler when * testing for -fvisibility=hidden support * testing for HAVE_ABI_CXA_DEMANGLE * testing for HAVE_GCC_ATOMIC_BUILTINS * when removing options with string(replace) * when running ${CC} --version (ignore the error instead) * run ABI checks for clang * use "canonical" gcc flags for clang * fix groonga too Also: * add cmake detection for gcc __atomic_* builtins. they might be supported (__ATOMIC_SEQ_CST is defined), but not for all operand sizes. In particular, 64-bit atomic load is problematic on i386 * cache check results for Windows * remove the test for HAVE_CXXABI_H (HAVE_ABI_CXA_DEMANGLE is suffifient)
* | after-merge fixesSergei Golubchik2015-01-211-0/+2
| |
* | 5.5 mergeSergei Golubchik2014-05-091-1/+1
|\ \ | |/
| * mysql-5.5.37 selective mergeSergei Golubchik2014-03-271-1/+1
| |\
| | * Bug#18235669 MYSQL_CONFIG TO PROVIDE R FLAG ON SOLARISTor Didriksen2014-02-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'mysql_config --libs' outputs -L/path/to/library on SunOS we also want it to output '-R/path/to/library' in order to find libraries at runtime. cmake/libutils.cmake: Add an informational message, to show dependencies on OS libraries.
* | | cmake: don't check for the compiler on every invocation of ↵Sergei Golubchik2013-07-091-13/+12
| | | | | | | | | | | | | | | | | | RESTRICT_SYMBOL_EXPORTS(), do it only once
* | | Temporary commit of 10.0-mergeMichael Widenius2013-03-261-3/+5
|/ /
* | Various fixes for Solaris compiler.Vladislav Vaintroub2012-02-031-7/+18
| | | | | | | | | | | | | | Also, restrict symbol visibility in statically built plugins, to minimize the chance for symbol name clashes with dynamic plugins.
* | mergedSergei Golubchik2011-11-221-1/+1
|\ \ | |/
| * Updated/added copyright headersKent Boortz2011-06-301-1/+1
| |
* | For libmysqld.so, apply patch to the MySQL Bug#39288 found hereVladislav Vaintroub2011-11-081-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | http://lists.mysql.com/commits/102373 It is better than previous attempts to build the libmysqld, as it also takes care of 1) -Wl,--no-undefined for shared libraries and 2) CLEAN_DIRECT_OUTPUT since there are now 2 libraries with the same base output name
* | add version to the libmysqld.soVladislav Vaintroub2011-11-071-1/+10
|/
* Bug#58074: ADD_VERSION_INFO cmake/mysql_version.cmake fails if LINK_FLAGS ↵Vladislav Vaintroub2010-11-121-0/+3
| | | | | | | | are modified Backport version info handling (Windows-specific) from next-mr. Instead of adding ".res" object as linker flag, add resource file (.rc) file to the source list. This is more obvious and less error prone method.
* Rename CMAKE_PARSE_ARGUMENTS macro to avoid name collisionVladislav Vaintroub2010-09-291-1/+1
| | | | | with CMake 2.8.3 builtin macro
* Add components to INSTALL, some eraly Wix supportVladislav Vaintroub2010-02-101-2/+5
|
* WL#5161: Implement Mats' suggestion of moving OS specific CMake code to OS ↵Vladislav Vaintroub2010-01-261-2/+4
| | | | | | | | | | | | | specific files, instead of polluting code with IF(CMAKE_SYSTEM_NAME MATCHES...), first on Windows. cmake/libutils.cmake: Fix the case in MERGE_LIBRARIES, where there is no dependency on OS libraries. cmake/os/Windows.cmake: Move windows specific code to cmake/os/Windows.cmake configure.cmake: Move some Windows code to cmake/os/Windows.cmake
* Fix smaller stuff: disable transitive linking for MERGE_LIBRARIES results,Vladislav Vaintroub2010-01-251-0/+1
| | | | | compile embedded with PIC to allow linking with shared libraries
* Handle different installation layouts.Vladislav Vaintroub2010-01-241-1/+1
| | | | | | | | | | | | | | | | | using cmake option INSTALL_LAYOUT=STANDALONE would produce the layout as in tar.gz or zip packages. INSTALL_LAYOUT=UNIX will produce unixish install layout (with mysqld being in sbin subdirectory , libs in lib/mysql etc). This layout is used for RPM packages. Subtle differences in both packages unfortunately lead to the need to recompile MySQL to use with other package type - as otherwise for example default plugins or data directories would be wrong set. There are numerous other variables that allow fine-tuning packaging layout. (INSTALL_BINDIR, INSTALL_LIBDIR , INSTALL_PLUGINDIR etc). This options are different from autotools as they do not expect full paths to directories, but only subdirectory of CMAKE_INSTALL_PREFIX. There are 2 special options that expect full directory paths - MYSQL_DATADIR that defines default MYSQL data directory (autotools equivalent is --localstatedir) - SYSCONFDIR can be added to search my.cnf search path (autotools equivalent is --sysconfdir)
* Fix output name of embedded library,Vladislav Vaintroub2010-01-151-1/+1
| | | | honor OUTPUT_NAME in MERGE_LIBRARIES macro
* Do not use fvisibility flag if GCC does not support itVladislav Vaintroub2010-01-061-6/+9
| | | | (i.e if gcc version < 4)
* Simplify embedding version info into executables with ADD_VERSION_INFOVladislav Vaintroub2009-12-181-3/+0
|
* Replace ADD_EXECUTABLE with MYSQL_ADD_EXECUTABLE for binaries that are ↵Vladislav Vaintroub2009-12-171-10/+14
| | | | | | | installed. MYSQL_ADD_EXECUTABLE will instructs CPack where to install the exe. On Windows, it also adds version resource and if -DSIGNCODE was given, will sign the exe in packaging step.
* On Linux, support -Wl,--no-undefined (only client shared library)Vladislav Vaintroub2009-12-071-7/+24
| | | | | and --Wl,--as-needed (all shared modules). The later will remove unused dependencies (also from gcc and C++ runtime)
* Fix creation of exports file on UnixVladislav Vaintroub2009-12-051-2/+4
|
* in RESTRICT_SYMBOL_EXPORTS,handle cases where COMPILE_FLAGS are not setVladislav Vaintroub2009-12-011-0/+4
| | | | | (COMPILE_FLAGS-NOTFOUND)