Skip to content

Commit e0a75b8

Browse files
committed
Moved to git submodules
1 parent 73c34f2 commit e0a75b8

21 files changed

+144
-498
lines changed

.gitignore

Lines changed: 12 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,12 @@
1-
# Prerequisites
2-
*.d
3-
4-
# Compiled Object files
5-
*.slo
6-
*.lo
7-
*.o
8-
*.obj
9-
10-
# Precompiled Headers
11-
*.gch
12-
*.pch
13-
14-
# Compiled Dynamic libraries
15-
*.so
16-
*.dylib
17-
*.dll
18-
19-
# Fortran module files
20-
*.mod
21-
*.smod
22-
23-
# Compiled Static libraries
24-
*.lai
25-
*.la
26-
*.a
27-
*.lib
28-
29-
# Executables
30-
*.exe
31-
*.out
32-
*.app
33-
34-
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
35-
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
36-
37-
.idea/
38-
39-
# CMake
40-
cmake-build-debug/
41-
cmake-build-release/
42-
43-
## File-based project format:
44-
*.iws
45-
46-
## Plugin-specific files:
47-
48-
# IntelliJ
49-
out/
50-
51-
# mpeltonen/sbt-idea plugin
52-
.idea_modules/
53-
54-
# JIRA plugin
55-
atlassian-ide-plugin.xml
56-
57-
# Cursive Clojure plugin
58-
.idea/replstate.xml
59-
60-
# Crashlytics plugin (for Android Studio and IntelliJ)
61-
com_crashlytics_export_strings.xml
62-
crashlytics.properties
63-
crashlytics-build.properties
64-
fabric.properties
1+
*
2+
3+
!.gitignore
4+
!.gitmodules
5+
6+
!build/
7+
!CMakeLists.txt
8+
!include/
9+
!LICENSE
10+
!README.md
11+
!tests/
12+
!third-party/

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "third-party/googletest"]
2+
path = third-party/googletest
3+
url = https://github.com/google/googletest
4+
[submodule "third-party/cmake-modules"]
5+
path = third-party/cmake-modules
6+
url = https://github.com/NikitkoCent/cmake-modules

CMakeLists.txt

Lines changed: 7 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,14 @@
11
cmake_minimum_required(VERSION 3.8.2)
2-
project(CPP-Stream)
2+
project(cpp-stream CXX)
33

44
set(CMAKE_CXX_STANDARD 17)
5+
set(CMAKE_CXX_REQUIRED ON)
56

6-
include_directories(include)
7+
add_subdirectory(third-party)
78

8-
find_package(Threads)
9+
set(_cpp-stream_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
10+
set(cpp-stream_INCLUDE_DIR ${_cpp-stream_INCLUDE_DIR} PARENT_SCOPE)
911

10-
if (CMAKE_VERSION VERSION_LESS 3.2)
11-
set(UPDATE_DISCONNECTED_IF_AVAILABLE "")
12-
else()
13-
set(UPDATE_DISCONNECTED_IF_AVAILABLE "UPDATE_DISCONNECTED 1")
14-
endif()
15-
include(third-party/DownloadProject/DownloadProject.cmake)
12+
include_directories(${_cpp-stream_INCLUDE_DIR})
1613

17-
# =============================== CMAKE MODULES =========================================
18-
download_project(PROJ cmake-modules
19-
GIT_REPOSITORY https://github.com/NikitkoCent/cmake-modules
20-
GIT_TAG changes
21-
${UPDATE_DISCONNECTED_IF_AVAILABLE}
22-
)
23-
# =============================== END CMAKE MODULES =====================================
24-
25-
# ================================ SETUP WARNINGS =======================================
26-
include(${cmake-modules_SOURCE_DIR}/EnableExtraCompilerWarnings.cmake)
27-
globally_enable_extra_compiler_warnings()
28-
# ============================== END SETUP WARNINGS =====================================
29-
30-
# ================================== GOOGLETEST =========================================
31-
enable_testing()
32-
33-
download_project(PROJ googletest
34-
GIT_REPOSITORY https://github.com/google/googletest.git
35-
GIT_TAG master
36-
${UPDATE_DISCONNECTED_IF_AVAILABLE}
37-
)
38-
39-
# Prevent GoogleTest from overriding our compiler/linker options
40-
# when building with Visual Studio
41-
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
42-
43-
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
44-
45-
# When using CMake 2.8.11 or later, header path dependencies
46-
# are automatically added to the gtest and gmock targets.
47-
# For earlier CMake versions, we have to explicitly add the
48-
# required directories to the header search path ourselves.
49-
if (CMAKE_VERSION VERSION_LESS 2.8.11)
50-
include_directories("${gtest_SOURCE_DIR}/include"
51-
"${gmock_SOURCE_DIR}/include")
52-
endif()
53-
# ================================ GOOGLETEST END =======================================
54-
55-
add_executable(unittesting include/stream.h
56-
include/traits.h
57-
include/value_holder.h
58-
include/continuation.h
59-
include/operations.h
60-
include/detail/stream_base.h
61-
include/detail/traits_impl.h
62-
include/detail/stream_impl.h
63-
include/detail/continuation_impl.h
64-
tests/stream_deduction_guides.cpp
65-
tests/filters_int_finite_stream.cpp
66-
tests/filters_int_infinite_stream.cpp
67-
tests/filters_generic_int_stream.cpp
68-
tests/filters_move_only_finite_stream.cpp
69-
tests/filters_move_only_infinite_stream.cpp
70-
tests/filters_generic_move_only_stream.cpp
71-
tests/noisy.h
72-
tests/noisy.cpp
73-
tests/filters_noisy_finite_stream.cpp
74-
tests/filters_generic_noisy_stream.cpp)
75-
target_link_libraries(unittesting gtest gmock_main Threads::Threads)
76-
77-
add_test(NAME do_unittests COMMAND unittesting)
78-
79-
# ================================= TEST COVERAGE =======================================
80-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
81-
include(${cmake-modules_SOURCE_DIR}/CodeCoverage.cmake)
82-
83-
if (CMAKE_CXX_FLAGS_COVERAGE)
84-
APPEND_COVERAGE_COMPILER_FLAGS()
85-
SETUP_TARGET_FOR_COVERAGE(NAME collect_coverage
86-
EXECUTABLE ctest
87-
DEPENDENCIES unittesting)
88-
endif()
89-
endif()
90-
# =============================== END TEST COVERAGE ====================================
91-
92-
MESSAGE("Build type : ${CMAKE_BUILD_TYPE}")
93-
MESSAGE("Used compiler : ${CMAKE_CXX_COMPILER}")
94-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
95-
MESSAGE("Compiler flags : ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
96-
MESSAGE("Linker flags : ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
97-
elseif (CMAKE_BUILD_TYPE STREQUAL "Release")
98-
MESSAGE("Compiler flags : ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
99-
MESSAGE("Linker flags : ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
100-
elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
101-
MESSAGE("Compiler flags : ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
102-
MESSAGE("Linker flags : ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}")
103-
elseif (CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
104-
MESSAGE("Compiler flags : ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_MINSIZEREL}")
105-
MESSAGE("Linker flags : ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL}")
106-
else()
107-
MESSAGE("Compiler flags : ${CMAKE_CXX_FLAGS}")
108-
MESSAGE("Linker flags : ${CMAKE_EXE_LINKER_FLAGS}")
109-
endif()
14+
add_subdirectory(tests)

Makefile

Lines changed: 0 additions & 16 deletions
This file was deleted.

include/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
!*

tests/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
!*

tests/CMakeLists.txt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
option(COLLECT_CODE_COVERAGE_LCOV "Setup code coverage or not" OFF)
2+
3+
find_package(Threads)
4+
5+
include(${cmake-modules_SOURCE_DIR}/EnableExtraCompilerWarnings.cmake)
6+
7+
enable_testing()
8+
9+
find_package(Threads)
10+
11+
add_executable(unittesting ${_cpp-stream_INCLUDE_DIR}/stream.h
12+
${_cpp-stream_INCLUDE_DIR}/traits.h
13+
${_cpp-stream_INCLUDE_DIR}/value_holder.h
14+
${_cpp-stream_INCLUDE_DIR}/continuation.h
15+
${_cpp-stream_INCLUDE_DIR}/operations.h
16+
${_cpp-stream_INCLUDE_DIR}/detail/stream_base.h
17+
${_cpp-stream_INCLUDE_DIR}/detail/traits_impl.h
18+
${_cpp-stream_INCLUDE_DIR}/detail/stream_impl.h
19+
${_cpp-stream_INCLUDE_DIR}/detail/continuation_impl.h
20+
stream_deduction_guides.cpp
21+
filters_int_finite_stream.cpp
22+
filters_int_infinite_stream.cpp
23+
filters_generic_int_stream.cpp
24+
filters_move_only_finite_stream.cpp
25+
filters_move_only_infinite_stream.cpp
26+
filters_generic_move_only_stream.cpp
27+
noisy.h
28+
noisy.cpp
29+
filters_noisy_finite_stream.cpp
30+
filters_generic_noisy_stream.cpp)
31+
32+
if (COLLECT_CODE_COVERAGE_LCOV)
33+
include(${cmake-modules_SOURCE_DIR}/CodeCoverage.cmake)
34+
35+
append_target_coverage_flags(unittesting)
36+
setup_target_for_coverage_lcov(NAME collect_coverage
37+
EXECUTABLE unittesting
38+
DEPENDENCIES unittesting)
39+
endif (COLLECT_CODE_COVERAGE_LCOV)
40+
enable_extra_compiler_warnings(unittesting)
41+
42+
target_link_libraries(unittesting gtest gmock_main Threads::Threads)
43+
44+
add_test(NAME filters_test COMMAND unittesting --gtest_filter=FILTER*)
45+
add_test(NAME deduction_guides_test COMMAND unittesting --gtest_filter=DEDUCTION_GUIDES*)

tests/filters_int_finite_stream.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,10 @@ TEST(FILTERS_INT_FINITE_STREAM, GET_OUT_OF_RANGE)
137137
}
138138

139139

140-
auto sumReducer = [](auto &&v1, auto &&v2) { return v1 + v2; };
140+
namespace
141+
{
142+
auto sumReducer = [](auto&& v1, auto&& v2) { return v1 + v2; };
143+
}
141144

142145
TEST(FILTERS_INT_FINITE_STREAM, REDUCE_EMPTY)
143146
{
@@ -159,8 +162,11 @@ TEST(FILTERS_INT_FINITE_STREAM, REDUCE_GENERIC)
159162
ASSERT_EQ(stream::Stream(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) | reduce(sumReducer), 55);
160163
}
161164

162-
auto stringReducer = [](auto &&str, auto &&num) { return std::move(str += " " + std::to_string(num)); };
163-
auto stringInit = [](auto &&num) { return std::to_string(num); };
165+
namespace
166+
{
167+
auto stringReducer = [](auto&& str, auto&& num) { return std::move(str += " " + std::to_string(num)); };
168+
auto stringInit = [](auto&& num) { return std::to_string(num); };
169+
}
164170

165171
TEST(FILTERS_INT_FINITE_STREAM, REDUCE_TO_STRING_EMPTY)
166172
{

tests/filters_move_only_finite_stream.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ TEST(FILTERS_MOVE_ONLY_FINITE_STREAM, MAP_EMPTY)
7777

7878
TEST(FILTERS_MOVE_ONLY_FINITE_STREAM, MAP_1)
7979
{
80-
auto vec = Stream(std::make_unique<int>(15))
80+
Stream myStream(std::make_unique<int>(15));
81+
auto vec = myStream
8182
| map([](auto &&v){ *v = *v * *v; return std::move(v); })
8283
| to_vector();
8384

@@ -175,7 +176,10 @@ TEST(FILTERS_MOVE_ONLY_FINITE_STREAM, GET_OUT_OF_RANGE)
175176
}
176177

177178

178-
auto sumReducer = [](auto &&v1, auto &&v2) { *v1 = *v1 + *v2; return std::move(v1); };
179+
namespace
180+
{
181+
auto sumReducer = [](auto&& v1, auto&& v2) { *v1 = *v1 + *v2; return std::move(v1); };
182+
}
179183

180184
TEST(FILTERS_MOVE_ONLY_FINITE_STREAM, REDUCE_EMPTY)
181185
{
@@ -209,8 +213,11 @@ TEST(FILTERS_MOVE_ONLY_FINITE_STREAM, REDUCE_GENERIC)
209213
| reduce(sumReducer), testing::Pointee(55));
210214
}
211215

212-
auto stringReducer = [](auto &&str, auto &&num) { return std::move(str += " " + std::to_string(*num)); };
213-
auto stringInit = [](auto &&num) { return std::to_string(*num); };
216+
namespace
217+
{
218+
auto stringReducer = [](auto&& str, auto&& num) { return std::move(str += " " + std::to_string(*num)); };
219+
auto stringInit = [](auto&& num) { return std::to_string(*num); };
220+
}
214221

215222
TEST(FILTERS_MOVE_ONLY_FINITE_STREAM, REDUCE_TO_STRING_EMPTY)
216223
{

tests/filters_noisy_finite_stream.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,10 @@ TEST(FILTERS_NOISY_FINITE_STREAM, GET_OUT_OF_RANGE)
245245
}
246246

247247

248-
auto sumReducer = [](auto &&v1, auto &&v2) { v1.value = v1.value + v2.value; return std::move(v1); };
248+
namespace
249+
{
250+
auto sumReducer = [](auto&& v1, auto&& v2) { v1.value = v1.value + v2.value; return std::move(v1); };
251+
}
249252

250253
TEST(FILTERS_NOISY_FINITE_STREAM, REDUCE_EMPTY)
251254
{
@@ -296,8 +299,11 @@ TEST(FILTERS_NOISY_FINITE_STREAM, REDUCE_GENERIC)
296299
ASSERT_EQ(result.value, 55);
297300
}
298301

299-
auto stringReducer = [](auto &&str, auto &&num) { return std::move(str += " " + std::to_string(num.value)); };
300-
auto stringInit = [](auto &&num) { return std::to_string(num.value); };
302+
namespace
303+
{
304+
auto stringReducer = [](auto&& str, auto&& num) { return std::move(str += " " + std::to_string(num.value)); };
305+
auto stringInit = [](auto&& num) { return std::to_string(num.value); };
306+
}
301307

302308
TEST(FILTERS_NOISY_FINITE_STREAM, REDUCE_TO_STRING_EMPTY)
303309
{

0 commit comments

Comments
 (0)