Skip to content

Commit d13c02d

Browse files
authored
Merge pull request #18 from 7bitcoder/dev
Add version 2.1.0
2 parents 14044c7 + 412d38c commit d13c02d

File tree

164 files changed

+7201
-1573
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

164 files changed

+7201
-1573
lines changed

.github/workflows/DevCI.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
runs-on: ${{matrix.os}}
2222

2323
steps:
24-
- uses: actions/checkout@v3
24+
- uses: actions/checkout@v4
2525

2626
- name: Create Build Environment
2727
run: cmake -E make_directory ${{runner.workspace}}/build

.github/workflows/Linux.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858

5959
runs-on: ${{matrix.os}}
6060
steps:
61-
- uses: actions/checkout@v3
61+
- uses: actions/checkout@v4
6262

6363
- name: Create Build Environment
6464
env:

.github/workflows/MacOs.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636

3737
runs-on: ${{matrix.os}}
3838
steps:
39-
- uses: actions/checkout@v3
39+
- uses: actions/checkout@v4
4040

4141
- name: Create Build Environment
4242
if: matrix.compiler.tool != 'apple-clang'

.github/workflows/Windows.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353

5454
runs-on: ${{matrix.os}}
5555
steps:
56-
- uses: actions/checkout@v3
56+
- uses: actions/checkout@v4
5757

5858
- name: Create Build Environment
5959
if: matrix.compiler.tool != 'msvc'

Benchmarks/CMakeLists.txt

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
include(FetchContent)
22
FetchContent_Declare(
3-
benchmark
4-
GIT_REPOSITORY https://github.com/google/benchmark.git
5-
GIT_TAG 344117638c8ff7e239044fd0fa7085839fc03021 # release-1.14.0
3+
benchmark
4+
GIT_REPOSITORY https://github.com/google/benchmark.git
5+
GIT_TAG 344117638c8ff7e239044fd0fa7085839fc03021 # release-1.14.0
66
)
77
FetchContent_MakeAvailable(benchmark)
88

99
enable_testing()
1010

1111
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS *.cpp)
1212

13-
foreach (SOURCE ${SOURCES})
13+
foreach(SOURCE ${SOURCES})
1414
get_filename_component(FILE_NAME ${SOURCE} NAME_WLE)
1515

1616
add_executable(${FILE_NAME}
17-
${SOURCE}
17+
${SOURCE}
1818
)
1919

2020
target_link_libraries(${FILE_NAME}
21-
7bitDI
22-
benchmark::benchmark
21+
7bitDI
22+
benchmark::benchmark
2323
)
24-
endforeach ()
24+
endforeach()

Benchmarks/Classes.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ struct ITestComplexClass6
144144
virtual ~ITestComplexClass6() = default;
145145
};
146146

147-
class TestComplexClass6 : ITestComplexClass6
147+
class TestComplexClass6 : public ITestComplexClass6
148148
{
149149
std::vector<ITestComplexClass1 *> _vec;
150150

CMakeLists.txt

+31-30
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.15.0)
33
set(_7BIT_DI_LIBRARY 7bitDI)
44

55
set(_7BIT_DI_VERSION_MAJOR 2)
6-
set(_7BIT_DI_VERSION_MINOR 0)
6+
set(_7BIT_DI_VERSION_MINOR 1)
77
set(_7BIT_DI_VERSION_PATCH 0)
88

99
set(_7BIT_DI_VERSION ${_7BIT_DI_VERSION_MAJOR}.${_7BIT_DI_VERSION_MINOR}.${_7BIT_DI_VERSION_PATCH})
@@ -12,9 +12,10 @@ project(${_7BIT_DI_LIBRARY} LANGUAGES CXX VERSION ${_7BIT_DI_VERSION})
1212

1313
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Cmake")
1414

15-
if (NOT CMAKE_CXX_STANDARD)
15+
if(NOT CMAKE_CXX_STANDARD)
1616
set(CMAKE_CXX_STANDARD 17)
17-
endif ()
17+
endif()
18+
1819
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1920

2021
include(Setup)
@@ -25,27 +26,27 @@ include_directories(${_7BIT_DI_INCLUDE_DIR})
2526

2627
add_subdirectory(Source)
2728

28-
if (_7BIT_DI_BUILD_DOCS)
29+
if(_7BIT_DI_BUILD_DOCS)
2930
add_subdirectory(Docs)
30-
endif ()
31+
endif()
3132

32-
if (_7BIT_DI_BUILD_TESTS)
33+
if(_7BIT_DI_BUILD_TESTS)
3334
add_subdirectory(Tests)
34-
endif ()
35+
endif()
3536

36-
if (_7BIT_DI_BUILD_EXAMPLES)
37+
if(_7BIT_DI_BUILD_EXAMPLES)
3738
add_subdirectory(Examples)
38-
endif ()
39+
endif()
3940

40-
if (_7BIT_DI_BUILD_BENCHMARKS)
41+
if(_7BIT_DI_BUILD_BENCHMARKS)
4142
add_subdirectory(Benchmarks)
42-
endif ()
43+
endif()
4344

44-
if (_7BIT_DI_BUILD_SINGLE_HEADER)
45+
if(_7BIT_DI_BUILD_SINGLE_HEADER)
4546
add_subdirectory(SingleHeader)
46-
endif ()
47+
endif()
4748

48-
if (_7BIT_DI_INSTALL)
49+
if(_7BIT_DI_INSTALL)
4950
set(PROJECT_CONFIG_IN ${CMAKE_CURRENT_SOURCE_DIR}/Cmake/7bitDIConfig.cmake.in)
5051
set(PROJECT_CONFIG_OUT ${CMAKE_CURRENT_BINARY_DIR}/7bitDIConfig.cmake)
5152
set(CONFIG_TARGETS_FILE 7bitDIConfigTargets.cmake)
@@ -55,29 +56,29 @@ if (_7BIT_DI_INSTALL)
5556
install(DIRECTORY ${_7BIT_DI_INCLUDE_DIR}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
5657

5758
install(
58-
TARGETS 7bitDI
59-
EXPORT 7bitDI
60-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
61-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
62-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
59+
TARGETS 7bitDI
60+
EXPORT 7bitDI
61+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
62+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
63+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
6364

6465
export(
65-
TARGETS 7bitDI
66-
NAMESPACE 7bitDI::
67-
FILE ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_TARGETS_FILE})
66+
TARGETS 7bitDI
67+
NAMESPACE 7bitDI::
68+
FILE ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_TARGETS_FILE})
6869

6970
install(
70-
EXPORT 7bitDI
71-
EXPORT 7bitDI
72-
DESTINATION ${EXPORT_DEST_DIR}
73-
NAMESPACE 7bitDI::
74-
NAMESPACE 7bitDI::
75-
FILE ${CONFIG_TARGETS_FILE})
71+
EXPORT 7bitDI
72+
EXPORT 7bitDI
73+
DESTINATION ${EXPORT_DEST_DIR}
74+
NAMESPACE 7bitDI::
75+
NAMESPACE 7bitDI::
76+
FILE ${CONFIG_TARGETS_FILE})
7677

7778
include(CMakePackageConfigHelpers)
7879

7980
configure_package_config_file(${PROJECT_CONFIG_IN} ${PROJECT_CONFIG_OUT}
80-
INSTALL_DESTINATION ${EXPORT_DEST_DIR})
81+
INSTALL_DESTINATION ${EXPORT_DEST_DIR})
8182

8283
write_basic_package_version_file(${VERSIONS_CONFIG_FILE} COMPATIBILITY SameMajorVersion)
8384

@@ -86,4 +87,4 @@ if (_7BIT_DI_INSTALL)
8687
export(PACKAGE 7bitDI)
8788

8889
include(CPack)
89-
endif ()
90+
endif()

Cmake/Setup.cmake

+37-37
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
include(Functions)
22

3-
if (NOT CMAKE_BUILD_TYPE)
3+
if(NOT CMAKE_BUILD_TYPE)
44
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose Release or Debug" FORCE)
5-
endif ()
5+
endif()
66

77
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
88
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
@@ -33,20 +33,20 @@ set(_7BIT_DI_DETAILS_DIR "${_7BIT_DI_DI_DIR}/Details")
3333
set(_7BIT_DI_MAIN_HEADER "${_7BIT_DI_INCLUDE_DIR}/SevenBit/DI.hpp")
3434
file(GLOB _7BIT_DI_TOP_HEADERS "${_7BIT_DI_DI_DIR}/*.hpp")
3535
file(GLOB _7BIT_DI_DETAILS_HEADERS
36-
"${_7BIT_DI_DETAILS_DIR}/Containers/*.hpp"
37-
"${_7BIT_DI_DETAILS_DIR}/Core/*.hpp"
38-
"${_7BIT_DI_DETAILS_DIR}/Factories/*.hpp"
39-
"${_7BIT_DI_DETAILS_DIR}/Helpers/*.hpp"
40-
"${_7BIT_DI_DETAILS_DIR}/Services/*.hpp"
41-
"${_7BIT_DI_DETAILS_DIR}/Utils/*.hpp"
36+
"${_7BIT_DI_DETAILS_DIR}/Containers/*.hpp"
37+
"${_7BIT_DI_DETAILS_DIR}/Core/*.hpp"
38+
"${_7BIT_DI_DETAILS_DIR}/Factories/*.hpp"
39+
"${_7BIT_DI_DETAILS_DIR}/Helpers/*.hpp"
40+
"${_7BIT_DI_DETAILS_DIR}/Services/*.hpp"
41+
"${_7BIT_DI_DETAILS_DIR}/Utils/*.hpp"
4242
)
4343
file(GLOB _7BIT_DI_IMPL_HEADERS
44-
"${_7BIT_DI_DI_DIR}/Impl/*.hpp"
45-
"${_7BIT_DI_DETAILS_DIR}/Containers/Impl/*.hpp"
46-
"${_7BIT_DI_DETAILS_DIR}/Core/Impl/*.hpp"
47-
"${_7BIT_DI_DETAILS_DIR}/Factories/Impl/*.hpp"
48-
"${_7BIT_DI_DETAILS_DIR}/Helpers/Impl/*.hpp"
49-
"${_7BIT_DI_DETAILS_DIR}/Utils/Impl/*.hpp"
44+
"${_7BIT_DI_DI_DIR}/Impl/*.hpp"
45+
"${_7BIT_DI_DETAILS_DIR}/Containers/Impl/*.hpp"
46+
"${_7BIT_DI_DETAILS_DIR}/Core/Impl/*.hpp"
47+
"${_7BIT_DI_DETAILS_DIR}/Factories/Impl/*.hpp"
48+
"${_7BIT_DI_DETAILS_DIR}/Helpers/Impl/*.hpp"
49+
"${_7BIT_DI_DETAILS_DIR}/Utils/Impl/*.hpp"
5050
)
5151
set(_7BIT_DI_ALL_HEADERS ${_7BIT_DI_MAIN_HEADER} ${_7BIT_DI_TOP_HEADERS} ${_7BIT_DI_DETAILS_HEADERS} ${_7BIT_DI_IMPL_HEADERS})
5252

@@ -63,43 +63,43 @@ option(_7BIT_DI_BUILD_DOCS "Turn on to build documentation (requires sphinx and
6363
option(_7BIT_DI_INSTALL "Installs 7bitDI" OFF)
6464
option(_7BIT_DI_BUILD_SINGLE_HEADER "Builds single header SevenBitDI.hpp" OFF)
6565

66-
if (_7BIT_DI_BUILD_PIC)
66+
if(_7BIT_DI_BUILD_PIC)
6767
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
68-
endif ()
68+
endif()
6969

70-
if (_7BIT_DI_LIBRARY_TYPE STREQUAL "Shared" OR BUILD_SHARED_LIBS)
70+
if(_7BIT_DI_LIBRARY_TYPE STREQUAL "Shared" OR BUILD_SHARED_LIBS)
7171
set(_7BIT_DI_BUILD_LIBRARY_TYPE "Shared")
7272
set(_7BIT_DI_SHARED_LIB ON)
73-
elseif (_7BIT_DI_LIBRARY_TYPE STREQUAL "HeaderOnly")
73+
elseif(_7BIT_DI_LIBRARY_TYPE STREQUAL "HeaderOnly")
7474
set(_7BIT_DI_BUILD_LIBRARY_TYPE "HeaderOnly")
7575
set(_7BIT_DI_HEADER_ONLY_LIB ON)
76-
else ()
76+
else()
7777
set(_7BIT_DI_BUILD_LIBRARY_TYPE "Static")
7878
set(_7BIT_DI_STATIC_LIB ON)
79-
endif ()
79+
endif()
8080

8181
configure_file(${_7BIT_DI_DI_DIR}/CmakeDef.hpp.input ${_7BIT_DI_DI_DIR}/CmakeDef.hpp)
8282

8383
set(BYTE_SIZE 8)
8484
math(EXPR MEMORY_SIZE "${CMAKE_SIZEOF_VOID_P} * ${BYTE_SIZE}")
8585

8686
set(INFOS
87-
"${_7BIT_DI_LIBRARY} ${_7BIT_DI_VERSION}"
88-
"Build type: ${CMAKE_BUILD_TYPE}"
89-
"Library type: ${_7BIT_DI_BUILD_LIBRARY_TYPE}"
90-
"=================================================="
91-
"Cmake version: ${CMAKE_VERSION}"
92-
"Os: ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}"
93-
"Architecture: ${CMAKE_SYSTEM_PROCESSOR} ${MEMORY_SIZE}bit"
94-
"CXX compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}"
95-
"CXX standard: ${CMAKE_CXX_STANDARD}"
96-
"Generator: ${CMAKE_GENERATOR}"
97-
"=================================================="
98-
"Build tests: ${_7BIT_DI_BUILD_TESTS}"
99-
"Build examples: ${_7BIT_DI_BUILD_EXAMPLES}"
100-
"Build benchmarks: ${_7BIT_DI_BUILD_BENCHMARKS}"
101-
"Build documentation: ${_7BIT_DI_BUILD_DOCS}"
102-
"Build single header: ${_7BIT_DI_BUILD_SINGLE_HEADER}"
103-
"Install project: ${_7BIT_DI_INSTALL}"
87+
"${_7BIT_DI_LIBRARY} ${_7BIT_DI_VERSION}"
88+
"Build type: ${CMAKE_BUILD_TYPE}"
89+
"Library type: ${_7BIT_DI_BUILD_LIBRARY_TYPE}"
90+
"=================================================="
91+
"Cmake version: ${CMAKE_VERSION}"
92+
"Os: ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION}"
93+
"Architecture: ${CMAKE_SYSTEM_PROCESSOR} ${MEMORY_SIZE}bit"
94+
"CXX compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}"
95+
"CXX standard: ${CMAKE_CXX_STANDARD}"
96+
"Generator: ${CMAKE_GENERATOR}"
97+
"=================================================="
98+
"Build tests: ${_7BIT_DI_BUILD_TESTS}"
99+
"Build examples: ${_7BIT_DI_BUILD_EXAMPLES}"
100+
"Build benchmarks: ${_7BIT_DI_BUILD_BENCHMARKS}"
101+
"Build documentation: ${_7BIT_DI_BUILD_DOCS}"
102+
"Build single header: ${_7BIT_DI_BUILD_SINGLE_HEADER}"
103+
"Install project: ${_7BIT_DI_INSTALL}"
104104
)
105105
printInfo("${INFOS}" = 50 7 0)

Docs/CMakeLists.txt

+13-13
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ set(SPHINX_OUT ${SPHINX_SOURCE}/conf.py)
1212
configure_file(${SPHINX_IN} ${SPHINX_OUT} @ONLY)
1313

1414
add_custom_command(OUTPUT ${SPHINX_INDEX_FILE}
15-
COMMAND
16-
${SPHINX_EXECUTABLE} -b html
17-
${SPHINX_SOURCE} ${SPHINX_BUILD}
18-
WORKING_DIRECTORY ${SPHINX_SOURCE}
19-
DEPENDS
20-
${SPHINX_RST_FILES}
21-
${EXAMPLES}
22-
${SOURCES}
23-
MAIN_DEPENDENCY ${SPHINX_OUT}
24-
COMMENT "Generating documentation with Sphinx")
15+
COMMAND
16+
${SPHINX_EXECUTABLE} -b html
17+
${SPHINX_SOURCE} ${SPHINX_BUILD}
18+
WORKING_DIRECTORY ${SPHINX_SOURCE}
19+
DEPENDS
20+
${SPHINX_RST_FILES}
21+
${EXAMPLES}
22+
${SOURCES}
23+
MAIN_DEPENDENCY ${SPHINX_OUT}
24+
COMMENT "Generating documentation with Sphinx")
2525

2626
add_custom_target(GenerateDoc
27-
ALL DEPENDS
28-
${SPHINX_INDEX_FILE}
29-
${SPHINX_RST_FILES}
27+
ALL DEPENDS
28+
${SPHINX_INDEX_FILE}
29+
${SPHINX_RST_FILES}
3030
)

Docs/advanced-guides.rst

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ Advanced Guides
66
:titlesonly:
77

88
advanced-guides/using-factories
9+
advanced-guides/using-aliases
910
advanced-guides/external-singleton
1011
advanced-guides/building-library
11-
12-
13-
14-
15-

0 commit comments

Comments
 (0)