refactor: rename testbench to test.
- rename testbench to test. - add benchmark for future development.
This commit is contained in:
@ -10,7 +10,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
# Provide options
|
# Provide options
|
||||||
option(YYCC_BUILD_TESTBENCH "Build testbench of YYCCommonplace." OFF)
|
option(YYCC_BUILD_TEST "Build test of YYCCommonplace." OFF)
|
||||||
|
option(YYCC_BUILD_BENCHMARK "Build benchmark of YYCCommonplace." OFF)
|
||||||
option(YYCC_BUILD_DOC "Build document of YYCCommonplace." OFF)
|
option(YYCC_BUILD_DOC "Build document of YYCCommonplace." OFF)
|
||||||
option(YYCC_ENFORCE_ICONV "Enforce iconv support for this library (e.g. in MSYS2 environment)." OFF)
|
option(YYCC_ENFORCE_ICONV "Enforce iconv support for this library (e.g. in MSYS2 environment)." OFF)
|
||||||
|
|
||||||
@ -26,21 +27,28 @@ set(YYCC_INSTALL_DOC_PATH ${CMAKE_INSTALL_DOCDIR} CACHE PATH
|
|||||||
"Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
"Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
||||||
|
|
||||||
# Include dependency.
|
# Include dependency.
|
||||||
# GTest is required if we build testbench
|
# GTest is required if we build test
|
||||||
if (YYCC_BUILD_TESTBENCH)
|
if (YYCC_BUILD_TEST)
|
||||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
||||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||||
find_package(GTest REQUIRED)
|
find_package(GTest REQUIRED)
|
||||||
endif ()
|
endif ()
|
||||||
|
# Google Benchmark is required if we build benchmark
|
||||||
|
if (YYCC_BUILD_BENCHMARK)
|
||||||
|
find_package(benchmark REQUIRED)
|
||||||
|
endif ()
|
||||||
# Iconv is required if we are not in Windows or user request it
|
# Iconv is required if we are not in Windows or user request it
|
||||||
if (YYCC_ENFORCE_ICONV OR (NOT WIN32))
|
if (YYCC_ENFORCE_ICONV OR (NOT WIN32))
|
||||||
find_package(Iconv REQUIRED)
|
find_package(Iconv REQUIRED)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Import 3 build targets
|
# Import 4 build targets
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
if (YYCC_BUILD_TESTBENCH)
|
if (YYCC_BUILD_TEST)
|
||||||
add_subdirectory(testbench)
|
add_subdirectory(test)
|
||||||
|
endif ()
|
||||||
|
if (YYCC_BUILD_BENCHMARK)
|
||||||
|
add_subdirectory(benchmark)
|
||||||
endif ()
|
endif ()
|
||||||
if (YYCC_BUILD_DOC)
|
if (YYCC_BUILD_DOC)
|
||||||
add_subdirectory(doc)
|
add_subdirectory(doc)
|
||||||
|
@ -11,7 +11,7 @@ It means that it is not stable and work in progress.
|
|||||||
* CMake 3.23 at least.
|
* CMake 3.23 at least.
|
||||||
* The common compiler supporting C++ 23 (GCC / Clang / MSVC).
|
* The common compiler supporting C++ 23 (GCC / Clang / MSVC).
|
||||||
* Iconv (Optional on Windows. Required on other systems).
|
* Iconv (Optional on Windows. Required on other systems).
|
||||||
* [GoogleTest](https://github.com/google/googletest) (Required if you build testbench).
|
* [GoogleTest](https://github.com/google/googletest) (Required if you build test).
|
||||||
* Doxygen (Required if you build documentation).
|
* Doxygen (Required if you build documentation).
|
||||||
* Python and Astral UV (Required if you use "User Build" method)
|
* Python and Astral UV (Required if you use "User Build" method)
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ It means that it is not stable and work in progress.
|
|||||||
|
|
||||||
### GoogleTest
|
### GoogleTest
|
||||||
|
|
||||||
GoogleTest is required if you need to build testbench.
|
GoogleTest is required if you need to build test.
|
||||||
If you don't need this please skip this chapter.
|
If you don't need this please skip this chapter.
|
||||||
|
|
||||||
We use GoogleTest v1.17.0.
|
We use GoogleTest v1.17.0.
|
||||||
@ -89,7 +89,7 @@ TODO...
|
|||||||
|
|
||||||
There is a list listing all variables you may configure during compiling.
|
There is a list listing all variables you may configure during compiling.
|
||||||
|
|
||||||
* `YYCC_BUILD_TESTBENCH`: Set it to `ON` to build testbench. `OFF` in default.
|
* `YYCC_BUILD_TEST`: Set it to `ON` to build test. `OFF` in default.
|
||||||
It is useful for the developer of this project.
|
It is useful for the developer of this project.
|
||||||
It also suit for the user who has runtime issues on their platforms to check whether this project works as expected.
|
It also suit for the user who has runtime issues on their platforms to check whether this project works as expected.
|
||||||
* `YYCC_BUILD_DOC`: Set it to `ON` to build documentation. `OFF` in default.
|
* `YYCC_BUILD_DOC`: Set it to `ON` to build documentation. `OFF` in default.
|
||||||
|
24
benchmark/CMakeLists.txt
Normal file
24
benchmark/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Create executable benchmark
|
||||||
|
add_executable(YYCCBenchmark "")
|
||||||
|
# Setup test sources
|
||||||
|
target_sources(YYCCBenchmark
|
||||||
|
PRIVATE
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
# target_sources(YYCCBenchmark
|
||||||
|
# PRIVATE
|
||||||
|
# FILE_SET HEADERS
|
||||||
|
# FILES
|
||||||
|
# shared/literals.hpp
|
||||||
|
# )
|
||||||
|
# Setup headers
|
||||||
|
target_include_directories(YYCCBenchmark
|
||||||
|
PUBLIC
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}"
|
||||||
|
)
|
||||||
|
# Setup libraries
|
||||||
|
target_link_libraries(YYCCBenchmark
|
||||||
|
PRIVATE
|
||||||
|
YYCCommonplace
|
||||||
|
benchmark::benchmark
|
||||||
|
)
|
4
benchmark/main.cpp
Normal file
4
benchmark/main.cpp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
int main(int argc, char* argv[]) {
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1031,7 +1031,7 @@ EXCLUDE_SYMBOLS =
|
|||||||
# that contain example code fragments that are included (see the \include
|
# that contain example code fragments that are included (see the \include
|
||||||
# command).
|
# command).
|
||||||
|
|
||||||
EXAMPLE_PATH = @CMAKE_CURRENT_LIST_DIR@/../testbench
|
EXAMPLE_PATH = @CMAKE_CURRENT_LIST_DIR@/../test
|
||||||
|
|
||||||
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
||||||
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
|
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
m_StringArgument(YYCC_U8("string"), YYCC::ArgParser::AbstractArgument::NO_SHORT_NAME, nullptr, nullptr, true),
|
m_StringArgument(YYCC_U8("string"), YYCC::ArgParser::AbstractArgument::NO_SHORT_NAME, nullptr, nullptr, true),
|
||||||
m_BoolArgument(nullptr, YYCC_U8_CHAR('b'), nullptr),
|
m_BoolArgument(nullptr, YYCC_U8_CHAR('b'), nullptr),
|
||||||
m_ClampedFloatArgument(YYCC_U8("clamped-float"), YYCC::ArgParser::AbstractArgument::NO_SHORT_NAME, nullptr, nullptr, true, YYCC::Constraints::GetMinMaxRangeConstraint<float>(-1.0f, 1.0f)),
|
m_ClampedFloatArgument(YYCC_U8("clamped-float"), YYCC::ArgParser::AbstractArgument::NO_SHORT_NAME, nullptr, nullptr, true, YYCC::Constraints::GetMinMaxRangeConstraint<float>(-1.0f, 1.0f)),
|
||||||
m_OptionContext(YYCC_U8("TestArgParser"), YYCC_U8("This is the testbench of argument parser."), {
|
m_OptionContext(YYCC_U8("TestArgParser"), YYCC_U8("This is the test of argument parser."), {
|
||||||
&m_IntArgument, &m_FloatArgument, &m_StringArgument,
|
&m_IntArgument, &m_FloatArgument, &m_StringArgument,
|
||||||
&m_BoolArgument, &m_ClampedFloatArgument
|
&m_BoolArgument, &m_ClampedFloatArgument
|
||||||
}) {}
|
}) {}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Create executable testbench
|
# Create executable test
|
||||||
add_executable(YYCCTestbench "")
|
add_executable(YYCCTest "")
|
||||||
# Setup testbench sources
|
# Setup test sources
|
||||||
target_sources(YYCCTestbench
|
target_sources(YYCCTest
|
||||||
PRIVATE
|
PRIVATE
|
||||||
main.cpp
|
main.cpp
|
||||||
|
|
||||||
@ -42,19 +42,19 @@ PRIVATE
|
|||||||
yycc/carton/tabulate.cpp
|
yycc/carton/tabulate.cpp
|
||||||
yycc/carton/clap.cpp
|
yycc/carton/clap.cpp
|
||||||
)
|
)
|
||||||
target_sources(YYCCTestbench
|
target_sources(YYCCTest
|
||||||
PRIVATE
|
PRIVATE
|
||||||
FILE_SET HEADERS
|
FILE_SET HEADERS
|
||||||
FILES
|
FILES
|
||||||
shared/literals.hpp
|
shared/literals.hpp
|
||||||
)
|
)
|
||||||
# Setup headers
|
# Setup headers
|
||||||
target_include_directories(YYCCTestbench
|
target_include_directories(YYCCTest
|
||||||
PUBLIC
|
PUBLIC
|
||||||
"${CMAKE_CURRENT_LIST_DIR}"
|
"${CMAKE_CURRENT_LIST_DIR}"
|
||||||
)
|
)
|
||||||
# Setup libraries
|
# Setup libraries
|
||||||
target_link_libraries(YYCCTestbench
|
target_link_libraries(YYCCTest
|
||||||
PRIVATE
|
PRIVATE
|
||||||
YYCCommonplace
|
YYCCommonplace
|
||||||
GTest::gtest_main
|
GTest::gtest_main
|
||||||
@ -62,4 +62,4 @@ PRIVATE
|
|||||||
|
|
||||||
# Discover all test
|
# Discover all test
|
||||||
include(GoogleTest)
|
include(GoogleTest)
|
||||||
gtest_discover_tests(YYCCTestbench)
|
gtest_discover_tests(YYCCTest)
|
Reference in New Issue
Block a user