Message ID | 20230701202453.3517822-1-arne@rfc2549.org |
---|---|
State | Superseded |
Headers | show |
Series | None | expand |
On Sat, Jul 01, 2023 at 10:24:52PM +0200, Arne Schwabe wrote: > This avoids build errors on macOS. Also the test_tls_crypt command works > just fine on FreeBSD with its linkers, so do not make that test Linux only. > > Patch v2: allow running with old cmake version (cmake 3 on RHEL7 with EPEL > is only 3.17) > > Change-Id: Id26676bdc576c7d3d6726afa43fe6c7a397c579b > Signed-off-by: Arne Schwabe <arne@rfc2549.org> > --- > CMakeLists.txt | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/CMakeLists.txt b/CMakeLists.txt > index acebbb73c..a982c478a 100644 > --- a/CMakeLists.txt > +++ b/CMakeLists.txt > @@ -16,6 +16,7 @@ find_package(PkgConfig REQUIRED) > include(CheckSymbolExists) > include(CheckIncludeFiles) > include(CheckCCompilerFlag) > +include(CheckLinkerFlag) Tested with Ubuntu 20.04 LTS (cmake 3.16) and I needed to use "include(CheckLinkerFlag OPTIONAL)", otherwise it just threw an error. > include(CheckTypeSize) > include(CheckStructHasMember) > include(CTest) > @@ -560,18 +561,24 @@ if (BUILD_TESTING) > ) > endif () > > - if (NOT MSVC) > - # MSVC does not support --wrap > + # MSVC and Apple's LLVM ld do not support --wrap > + # This test requires cmake >= 1.17, so check if check_linker_flag is "> 3.17" or ">= 3.18" > + # available > + if (COMMAND check_linker_flag) > + check_linker_flag(C -Wl,--wrap=parse_line LD_SUPPORTS_WRAP) > + endif() > + > + if (${LD_SUPPORTS_WRAP}) > list(APPEND unit_tests > "test_argv" > + "test_tls_crypt" > ) > endif () > > - # These tests work on only on Linux since they depend on special linker features > + # These tests work on only on Linux since they depend on special Linux features > if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") > list(APPEND unit_tests > "test_networking" > - "test_tls_crypt" > ) > endif () > Regards,
diff --git a/CMakeLists.txt b/CMakeLists.txt index acebbb73c..a982c478a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ find_package(PkgConfig REQUIRED) include(CheckSymbolExists) include(CheckIncludeFiles) include(CheckCCompilerFlag) +include(CheckLinkerFlag) include(CheckTypeSize) include(CheckStructHasMember) include(CTest) @@ -560,18 +561,24 @@ if (BUILD_TESTING) ) endif () - if (NOT MSVC) - # MSVC does not support --wrap + # MSVC and Apple's LLVM ld do not support --wrap + # This test requires cmake >= 1.17, so check if check_linker_flag is + # available + if (COMMAND check_linker_flag) + check_linker_flag(C -Wl,--wrap=parse_line LD_SUPPORTS_WRAP) + endif() + + if (${LD_SUPPORTS_WRAP}) list(APPEND unit_tests "test_argv" + "test_tls_crypt" ) endif () - # These tests work on only on Linux since they depend on special linker features + # These tests work on only on Linux since they depend on special Linux features if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") list(APPEND unit_tests "test_networking" - "test_tls_crypt" ) endif ()
This avoids build errors on macOS. Also the test_tls_crypt command works just fine on FreeBSD with its linkers, so do not make that test Linux only. Patch v2: allow running with old cmake version (cmake 3 on RHEL7 with EPEL is only 3.17) Change-Id: Id26676bdc576c7d3d6726afa43fe6c7a397c579b Signed-off-by: Arne Schwabe <arne@rfc2549.org> --- CMakeLists.txt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)