diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-09-02 11:24:59 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-09-02 11:25:43 +0200 |
commit | baa434ebede2c3727e08f1203544d255de6b541f (patch) | |
tree | d9f8ef02cf91894089c8bd829a45855945b67f4a /cmake | |
parent | f99e6766d698aab252667f90ff6a37878ff62b57 (diff) | |
download | libssh-baa434ebede2c3727e08f1203544d255de6b541f.tar.gz libssh-baa434ebede2c3727e08f1203544d255de6b541f.tar.xz libssh-baa434ebede2c3727e08f1203544d255de6b541f.zip |
cmake: Small improvements to AddCMockaTest
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/AddCMockaTest.cmake | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/cmake/Modules/AddCMockaTest.cmake b/cmake/Modules/AddCMockaTest.cmake index 75318137..395e06eb 100644 --- a/cmake/Modules/AddCMockaTest.cmake +++ b/cmake/Modules/AddCMockaTest.cmake @@ -1,7 +1,7 @@ -# - ADD_CHECK_TEST(test_name test_source linklib1 ... linklibN) +# - add_cmocka_test(test_name test_source linklib1 ... linklibN) # Copyright (c) 2007 Daniel Gollub <dgollub@suse.de> -# Copyright (c) 2007-2010 Andreas Schneider <asn@cryptomilk.org> +# Copyright (c) 2007-2018 Andreas Schneider <asn@cryptomilk.org> # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. @@ -9,19 +9,19 @@ enable_testing() include(CTest) -if(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW) - # Profiling - set(CMAKE_C_FLAGS_PROFILING "-g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wwrite-strings -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Compiler Flags") - set(CMAKE_SHARED_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags") - set(CMAKE_MODULE_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags") - set(CMAKE_EXEC_LINKER_FLAGS_PROFILING " -fprofile-arcs -ftest-coverage" CACHE STRING "Profiling Linker Flags") +if((CMAKE_C_COMPILER_ID MATCHES "(GNU|Clang)") AND NOT MINGW) + # Activate with: -DCMAKE_BUILD_TYPE=Profiling + set(CMAKE_C_FLAGS_PROFILING "-g -O0 -fprofile-arcs -ftest-coverage") + set(CMAKE_SHARED_LINKER_FLAGS_PROFILING "-fprofile-arcs -ftest-coverage") + set(CMAKE_MODULE_LINKER_FLAGS_PROFILING "-fprofile-arcs -ftest-coverage") + set(CMAKE_EXEC_LINKER_FLAGS_PROFILING "-fprofile-arcs -ftest-coverage") - # Address Sanitizer - set(CMAKE_C_FLAGS_ADDRESSSANITIZER "-g -O1 -fsanitize=address -fno-omit-frame-pointer" CACHE STRING "Address sanitizer compiler flags") - set(CMAKE_SHARED_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address" CACHE STRING "Address sanitizer shared linker flags") - set(CMAKE_MODULE_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address" CACHE STRING "Address sanitizer module linker flags") - set(CMAKE_EXEC_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address" CACHE STRING "Address sanitizer executable linker flags") -endif(CMAKE_COMPILER_IS_GNUCC AND NOT MINGW) + # Activate with: -DCMAKE_BUILD_TYPE=AddressSanitizer + set(CMAKE_C_FLAGS_ADDRESSSANITIZER "-g -O1 -fsanitize=address -fno-omit-frame-pointer") + set(CMAKE_SHARED_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address") + set(CMAKE_MODULE_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address") + set(CMAKE_EXEC_LINKER_FLAGS_ADDRESSSANITIZER "-fsanitize=address") +endif() if (CMAKE_CROSSCOMPILING) if (WIN32) @@ -31,8 +31,10 @@ if (CMAKE_CROSSCOMPILING) endif() endif() -function (ADD_CMOCKA_TEST _testName _testSource) +function(ADD_CMOCKA_TEST _testName _testSource) add_executable(${_testName} ${_testSource}) + target_link_libraries(${_testName} ${ARGN}) + add_test(${_testName} ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/${_testName}${CMAKE_EXECUTABLE_SUFFIX}) endfunction (ADD_CMOCKA_TEST) |