CMakeLists.txt


Log

Author Commit Date CI Message
Viktor Szakats 17cf672a 2023-12-14T13:43:04 cmake: limit some macros to mingw Syncing this up with autotools. Also use the built-in `MINGW` variable.
Viktor Szakats 906e10ea 2023-12-14T04:59:04 try fixing missing tls-compat for tests
Viktor Szakats 84895087 2023-12-14T03:36:09 cmake: stop exporting compat functions
Viktor Szakats 0de236a7 2023-12-11T16:21:30 cmake: auto-detect `strtonum` Notice that just like in autotools, this detection also doesn't take into account the targeted OS version. Meaning it detects `strtonum` even if targeting e.g. macOS older than release v11 Big Sur (which introduced this funcitions), if the SDK declares it. Wrong detection will either cause a binary broken on older macOS and/or trigger compiler warnings. Ref: https://github.com/libressl/portable/issues/928#issuecomment-1850178282 Ref: https://github.com/libressl/portable/issues/928#issuecomment-1850276298 Prerequisite: https://github.com/libressl/portable/issues/928#issuecomment-1850356408
Brent Cook b16146e0 2023-11-07T19:27:58 Land #938, cmake: simplify if expressions, accept CPU values more consistently
Viktor Szakats abf3be5c 2023-11-07T17:00:56 always check `CMAKE_SYSTEM_PROCESSOR` with `MATCHES` This makes it accept values consistently. Before this patch mingw-w64, Apple and SunOS did not accept a CPU if it had a suffix or prefix (e.g. a triplet), while other targets did.
Viktor Szakats 27486b12 2023-11-07T16:55:52 simplify `MATCHES`/`STREQUAL` syntax
Viktor Szakats 557b5a19 2023-11-07T14:39:16 cmake: stop passing unused C macros - `-DCPPFLAGS`: probably a copy-paste typo from the initial CMake commit. - `-DNO_CRYPT`: `NO_CRYPT` is no longer used in the source and this macro is no longer set by autotools.
Viktor Szakats 690b98fe 2023-11-07T11:56:33 cmake: fix arm64 to not trigger armv4 ASM Reported here: https://github.com/libressl/portable/pull/935#issuecomment-1798345787
Brent Cook 4830b1ee 2023-11-05T14:33:56 Land #932, use existing crypto/ssl libs for tls tests
Viktor Szakats 89fcb1a3 2023-11-05T08:56:09 also fix ocspcheck and nc, dedupe build logic
Viktor Szakats 2c5abde7 2023-11-04T02:37:34 slim `tls-static` library (used in tests) Instead of including a full copy of libcrypto and libssl in libtls-static, link existing libcrytpo-static and libssl-static to the test targets. This wasn't causing any issue, just unnecessarily duplicating a lot of objects.
Brent Cook 9bca15ba 2023-10-29T18:00:38 reenable assembly for MSVC
Brent Cook 1fd73818 2023-10-15T19:05:29 adjust how sizeof time_t is set, the current way causes issues with MSVC 2022's preprocessor
Brent Cook ce79c964 2023-10-29T12:34:01 Land #913, CMake build fixes
Brent Cook 321fa56d 2023-10-09T01:30:00 disable MSVC x64 asm
Brent Cook fca20b23 2023-10-02T03:31:24 remove unneeded switch for MSVC, cleanup comment alignment
Marc Aldorasi 46635430 2023-09-12T15:07:51 Consistently use CMAKE_CURRENT_BINARY_DIR
Jiajie Chen 70688874 2023-09-04T09:05:45 Fix processor detection in CMakeLists.txt
Brent Cook f4059e47 2023-08-28T00:40:11 enable asserts regardless of build type
Pierre Wendling 86a6826f 2023-08-15T11:08:06 Move `LibreSSL/` to `LIBRESSL_INSTALL_CMAKEDIR`. This allows users to install the CMake configs without forcing a `LibreSSL` directory after `LIBRESSL_INSTALL_CMAKEDIR`.
Pierre Wendling a89cd659 2023-08-06T15:07:31 CMake: Export and install library targets. The configs can be consumed by setting LibreSSL_DIR to the build directory, or after installation using CMAKE_PREFIX_PATH/LibreSSL_DIR. For compatibility, the EXPORT_NAME of targets and the LIBRESSL_* variables are set to match the names used in FindLibreSSL.
Brent Cook ca8ea652 2023-08-13T23:23:23 Land #894, fix to enable ASM support in MinGW builds
Brent Cook 7e59829f 2023-08-13T23:02:24 version is breaking things
Brent Cook 125c54cd 2023-07-27T06:10:20 set default build type to 'Release'
Viktor Szakats 5c63ba97 2023-08-06T18:13:51 cmake: fix to use MINGW variable to detect MinGW
Brent Cook 00fc21e8 2023-07-07T18:28:06 Remove hard-coded optimization level in CMake builds Fixes #683. These are not compiler-agnostic, and can interfere with user overrides as well. The defaults in Cmake are reasonable.
Brent Cook 51368394 2023-07-07T04:32:20 Land #886, add compat getopt implementation
Brent Cook 7463f87c 2023-07-07T11:46:21 add compat getopt implementation, remove patches This adds a getopt implementation for compatibility where it is not available, removing a couple of regress patches. Note, this is a slightly modified copy from OpenBSD libc that doesn't expose getopt_long, which has dependency conflicts with Windows system headers and isn't needed anyway.
Brent Cook afcd4be8 2023-07-06T20:32:34 change socket / file descriptor checks on windows based on discussion in https://github.com/libressl/portable/issues/266 and https://bugs.python.org/issue23524 adjust the compat layer for Windows to use _get_osfhandle in combination with _set_thread_local_invalid_parameter_handler if applicable to more reliably determine if a handle is a socket, file, or closed socket. This prevents assertions when calling tls_close on an already-closed socket.
Brent Cook 2203c13d 2023-07-04T12:36:57 make cross compilation possible on macOS with CMake Sync CMAKE_SYSTEM_PROCESSOR to CMAKE_OSX_ARCHITECTURES. This doesn't support universal binaries, but does allow cross-compiling for a single architecture by setting -DCMAKE_OSX_ARCHITECTURES=(arm64|x86_64)
Brent Cook 419fbd6f 2023-05-26T21:51:56 fix asm on x86_64 macos
Theo Buehler 94763de5 2023-04-25T11:47:02 Disable assembly on macos for now
Brent Cook ab214b56 2023-02-27T07:26:07 handle i?86 for 32-bit CMake builds
Brent Cook b0310cb3 2023-02-27T05:48:23 set CMAKE_SYSTEM_PROCESSOR when cross compiling handle x86 as option for 32-bit x86 on Windows
Brent Cook a0a6e7bd 2023-02-25T10:34:43 reenable aarch64 asm for macos
Brent Cook a498c6a7 2023-02-23T08:31:31 only disable asm on aarch64 for now, enable for other archs
Brent Cook 4bcb537a 2023-02-21T01:13:29 generally disable asm for now
Brent Cook 5a695723 2023-02-21T01:13:08 disable BN ASM for aarch64 for now (fails tests)
Brent Cook 8fc30eca 2023-02-21T00:25:04 generate and include arch-specific headers for CMake builds
Jiajie Chen ef2d6c70 2022-07-12T22:29:39 Detect machine/endian.h for macOS
kinichiro 9a18f424 2022-01-17T19:04:23 Add libmd as platform specific libraries for Solaris
Brent Cook 549ead1f 2021-11-30T10:58:12 adjust cmake check to include dependencies for netinet/ip.h
kinichiro 870a1ebb 2021-11-27T20:57:14 Build static library for regression tests when shared build with CMake
Brent Cook 2ac3d32e 2021-11-09T23:04:29 Update CMake for new header checks
Brent Cook b3b08741 2021-11-09T07:08:46 Land #694, Add the option for Apple-style xcframework libraries
Tobias Heider 2d853ecf 2021-11-06T23:31:26 Don't install pkgconfig if ENABLE_LIBRESSL_INSTALL is disabled.
Cameron Lowell Palmer 6318b4ec 2021-10-15T09:29:03 Add the option to support an Apple-style xcframework for tls, ssl, and crypto
Tobias Heider 7072a55b 2021-07-19T15:10:49 Add -DHAVE_GNU_STACK on ELF platforms to enable non-executable stack annotations for the GNU toolchain.
kinichiro b25111c2 2021-05-29T20:23:04 Fix UWP build - Do not set _WIN32_WINNT to enable VirtualAllocFromApp - Disable tlstest since SetHandleInformation is not supported on UWP
Paweł Wegner 21ab7331 2021-05-16T13:52:06 cmake: tweak for clang-cl This change allows libressl to be built with clang-cl.
kinichiro 4c56df46 2021-05-02T15:50:37 Statically link libcrypto/ssl into libtls with cmake
Brent Cook 921c0675 2021-04-05T02:32:35 Add '--enable-libtls-only' build option
Brent Cook df3d4bb5 2020-11-11T05:39:56 Add -lbcrypt to Windows builds for CNG in getentropy
Samuel Marks 12a400c9 2020-05-23T17:16:04 [CMakeLists.txt] Move `project` below `cmake_minimum_required`; fix indentation in its `if`/`else` block; [tap-driver.sh] Copyright line update (was automatic with `./autogen.sh`)
kinichiro 740488d8 2020-05-09T18:46:13 Fix cmake build to enable masm with VS2019 To specify architecture Visual Studio 16 2019 requires -A option, and it is stored in variable CMAKE_GENERATOR_PLATFORM. Until Visual Studio 15 2017, architecture was indicated as part of generator string (e.g. "Visual Studio 15 2017 Win64")
Brent Cook 012014df 2020-05-01T08:31:11 more MSVC build/test tweaks
Brent Cook 13159a59 2020-05-01T04:34:48 make cmake version bump conditional on MSVC
Brent Cook 1c3377ba 2020-05-01T04:09:57 bump cmake and appveyor build environment
OJ 4d07b727 2020-04-20T20:28:48 Force use of 3.15.7
OJ 79fb34a9 2020-04-15T13:12:31 Add support for use of static MSVC runtimes In certain contexts LibreSSL needs to be built with `/MT` instead of `/MD` for inclusion in other projects. These changes allow for the command-line option `USE_STATIC_MSVC_RUNTIMES` to be set to `ON` if the use wishes to generate projects that will build with static runtimes. This feature requires CMAKE version 3.15+, hence the minimum required version has changed as well.
Matthew Albrecht a4338ca1 2019-09-20T15:15:11 Check for existing uninstall target before creating.
kinichiro 30e91bc6 2019-07-14T18:37:59 Enable speed on win32 - Use thread and sleep instead of signal and alarm, on win32 - Disable -multi option on win32 since fork is hard to implement
kinichiro 389145ed 2019-07-09T20:56:17 Fix illegal pkg-config file generated
Brent Cook 0e8b7c1e 2019-06-05T23:08:41 remove comments and unify fixups
kinichiro bbb662b6 2019-05-19T13:20:06 Fix masm build - Fix masm operators and comments - Add -DOPENSSL_NO_ASM only if not 64 bit build - Add -DCMAKE_INSTALL_PREFIX to avoid build error
Stephan Vedder c6f8ca2b 2019-05-15T22:50:01 Enable masm compilation under windows
Brent Cook 53524626 2019-02-09T09:03:13 add __dead__ annotation support
Brent Cook 5269dbb2 2019-01-31T10:00:48 update cmake
Brent Cook 495a1b63 2019-01-21T20:15:30 more masm fixes, but disable for now
Brent Cook 1b2e3576 2019-01-21T15:26:32 a couple of fixes to get MSVC Win64 going again
Brent Cook 6c6b58f6 2019-01-21T11:19:11 use generator to determine if we're building 64-bit code on Windows
Brent Cook 64d9c5d6 2019-01-21T05:24:11 fixes to build asm on MSVS
Brent Cook f553a9fe 2019-01-20T21:18:34 consider masm/mingw assembly flavors from cmake
Brent Cook 7af3ba34 2019-01-06T13:20:29 add configure-time check for timespecsub
Brent Cook c23f7451 2019-01-02T05:36:24 add some defines for building Mingw cross-compiled with CMake
tux3 8fee85b0 2018-12-14T14:38:35 Fix CMake not finding getpagesize for Android 19
Brent Cook f6a8fa53 2018-11-13T13:42:21 don't enable global debug
Brent Cook 9c6e9f09 2018-11-11T00:24:35 initial 32-bit arm assembly optimization support
Brent Cook e7d11baa 2018-11-09T18:29:06 enable optimizations for all cmake builds
kinichiro 0b8343ac 2018-10-05T22:59:44 Fix cmake to generate proper Libs.private in .pc files
kinichiro f819a2bc 2018-10-03T20:35:36 Fix cmake linking libraries
Brent Cook 0974145a 2018-04-06T04:14:33 better separate linux and non-linux checks for clock_gettime
kinichiro 650487db 2018-03-27T21:40:52 Build and run regression tests against shared libraries with CMake
Brent Cook 55c0cacc 2018-03-25T19:21:16 Land #406, use BUILD_SHARED_LIBS
Brent Cook 862cd768 2018-03-23T13:52:12 fix clock_gettime check in cmake
Brent Cook 70e6be3d 2018-03-22T21:43:06 move clock_gettime check out
Don 4d753bad 2018-03-21T11:33:38 Cleanup options around tests
Don 26bebfc5 2018-03-19T19:42:55 Use BUILD_SHARED_LIBS to specify library type
Brent Cook 1b84f79f 2018-03-18T09:53:37 Land #402, Remove CMAKE_HOST_ references
Don 09590953 2018-03-16T14:59:53 Remove CMAKE_HOST_ references CMAKE_HOST_ describes the host system not the target. For cross compilation to work the actual target system should be used for making decisions in CMake.
Don aa60dd89 2018-03-16T14:08:36 Conditionally build apps Add an option to build or not build the apps directory.
Brent Cook 3fb9e63b 2018-03-14T07:29:04 bump base requirement to Windows Vista, use builtin inet_ntop/pton
kinichiro 0ed61809 2018-03-13T23:13:39 Add libpthread for libtls build
kinichiro 9e06be3f 2018-01-11T23:46:22 Remove 64bit build designation on Solaris - Revert commit https://github.com/libressl-portable/portable/pull/327/commits/c18852f650a3cb258e10222695a31ed5c929ab23 - Remove -m64 from CMakeLists.txt by commit https://github.com/libressl-portable/portable/commit/08089a1b20a1818538670d641242266ed3185814 - Suggested by @andy-js in conversation https://github.com/libressl-portable/portable/pull/327
kinichiro b0e9f0a3 2018-01-06T18:12:50 Reconsider MSVC warning list - Remove C4242 and C4820 - Warning explanation from manual - Sort by warning code
Aric Belsito cbe57bef 2017-09-08T13:43:38 Some CMake Fixes. pqueue.h was getting installed when it shouldn't. pkgconfig files were not getting installed or generated.
Brent Cook 7dc68c82 2017-08-14T12:15:00 set SMALL_TIME_T when sizeof time_t == 4
Brent Cook e0cffc6b 2017-08-13T09:53:59 disable signed/unsigned mismatch in vs builds
d3x0r a4d80ca5 2017-07-06T23:11:11 Merge branch 'master' of https://github.com/libressl-portable/portable into SkipInstall Fix merge conflicts from GNUInstallDirs merge to master.