Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
cmake_minimum_required(VERSION 3.15)
project(cpp_channel)
set(PROJECT_VERSION 1.3.0)
project(cpp_channel VERSION 1.3.0)

set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard")
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CXX_EXTENSIONS NO)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CXX_EXTENSIONS OFF)

list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(warnings)

include_directories(include)

add_library(msd_channel INTERFACE)
target_include_directories(msd_channel INTERFACE include)

Expand Down
3 changes: 2 additions & 1 deletion benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
include(FetchContent)

if(NOT benchmark_POPULATED)
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "" FORCE)
Expand All @@ -10,7 +11,7 @@ endif()
function(package_add_benchmark TESTNAME)
add_executable(${TESTNAME} ${ARGN})
set_target_warnings(${TESTNAME} PRIVATE)
target_link_libraries(${TESTNAME} benchmark)
target_link_libraries(${TESTNAME} msd_channel benchmark)
endfunction()

package_add_benchmark(channel_benchmark channel_benchmark.cpp)
12 changes: 8 additions & 4 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@ function(add_example NAME)
add_executable(${NAME} ${ARGN})

set_target_warnings(${NAME} PRIVATE)

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(${NAME} PRIVATE -fsanitize=thread)
target_link_libraries(${NAME} -ltsan)
target_link_libraries(${NAME} msd_channel)

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
# target_compile_options(${NAME} PRIVATE -fsanitize=thread) target_link_options(${NAME} PRIVATE
# -fsanitize=thread)
set(FLAGS -fsanitize=thread -g -O1 -fno-omit-frame-pointer)
target_compile_options(${NAME} PRIVATE ${FLAGS})
target_link_options(${NAME} PRIVATE ${FLAGS})
endif()

add_dependencies(examples ${NAME})
Expand Down
1 change: 1 addition & 0 deletions examples/cmake-project/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Werror --cover
add_executable(cmake_project src/main.cpp)

include(FetchContent)

if(NOT channel_POPULATED)
FetchContent_Declare(channel URL https://github.com/andreiavrammsd/cpp-channel/archive/v1.3.0.zip
DOWNLOAD_EXTRACT_TIMESTAMP TRUE)
Expand Down
18 changes: 9 additions & 9 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ if(MSVC)
endif()

include(FetchContent)

if(NOT googletest_POPULATED)
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
Expand All @@ -22,7 +23,7 @@ function(package_add_test TESTNAME)
add_executable(${TESTNAME} ${ARGN})

set_target_warnings(${TESTNAME} PRIVATE)
target_link_libraries(${TESTNAME} gtest gtest_main)
target_link_libraries(${TESTNAME} msd_channel gtest gtest_main)

if(CPP_CHANNEL_COVERAGE)
target_compile_options(${TESTNAME} PRIVATE --coverage)
Expand All @@ -35,14 +36,18 @@ function(package_add_test TESTNAME)
endif()
endif()

set(CPP_CHANNEL_SANITIZER_FLAGS "")
if(CPP_CHANNEL_SANITIZERS)
target_compile_options(${TESTNAME} PRIVATE -fsanitize=undefined)
target_link_libraries(${TESTNAME} -lubsan)
set(SANITIZERS -fsanitize=address -fno-sanitize-recover=address -fsanitize=undefined
-fno-sanitize-recover=undefined)

target_compile_options(${TESTNAME} PRIVATE ${SANITIZERS})
target_link_options(${TESTNAME} PRIVATE ${SANITIZERS})
endif()

if(CPP_CHANNEL_SANITIZE_THREADS)
target_compile_options(${TESTNAME} PRIVATE -fsanitize=thread)
target_link_libraries(${TESTNAME} -fsanitize=thread)
target_link_options(${TESTNAME} PRIVATE -fsanitize=thread)
endif()

add_test(NAME ${TESTNAME} COMMAND ${TESTNAME})
Expand All @@ -57,8 +62,3 @@ add_custom_target(channel_tests)
package_add_test(channel_test channel_test.cpp)
package_add_test(blocking_iterator_test blocking_iterator_test.cpp)
package_add_test(storage_test storage_test.cpp)

if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
# Disable warnings about C++17 extensions
target_compile_options(channel_test PRIVATE -Wno-c++17-extensions)
endif()
Loading